1 #ifndef MUELU_BOTTOM_SOLVER_H
2 #define MUELU_BOTTOM_SOLVER_H
11 #include <MueLu_Level.hpp>
12 #include <MueLu_Utilities.hpp>
14 #include <MueLu_ParameterListInterpreter.hpp>
16 template <
class Level>
18 Teuchos::RCP<amr::multivector_t>,
36 typedef MueLu::Hierarchy<scalar_t, lo_t, go_t, node_t>
hierarchy_t;
38 typedef Xpetra::Matrix<scalar_t, lo_t, go_t, node_t>
xmatrix_t;
39 typedef Xpetra::MultiVector<scalar_t, lo_t, go_t, node_t>
xmv_t;
40 typedef MueLu::Utilities<scalar_t, lo_t, go_t, node_t>
util_t;
43 typedef MueLu::HierarchyManager<scalar_t, lo_t, go_t, node_t>
manager_t;
48 const std::string& reuse);
50 void solve(
const Teuchos::RCP<mv_t>& x,
51 const Teuchos::RCP<mv_t>& b);
54 Level* level_p =
nullptr);
72 Teuchos::RCP<xmatrix_t>
A_mp;
void solve(const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
MueLu::HierarchyManager< scalar_t, lo_t, go_t, node_t > manager_t
void setOperator(const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
MueLu::Hierarchy< scalar_t, lo_t, go_t, node_t > hierarchy_t
MueLuBottomSolver(const bool &rebalance, const std::string &reuse)
MueLu::Utilities< scalar_t, lo_t, go_t, node_t > util_t
amr::AmrIntVect_t AmrIntVect_t
Xpetra::MultiVector< scalar_t, lo_t, go_t, node_t > xmv_t
amrex::IntVect AmrIntVect_t
KokkosClassic::DefaultNode::DefaultNodeType node_t
void initMueLuList_m(const std::string &reuse)
Teuchos::RCP< hierarchy_t > hierarchy_mp
manages the multigrid hierarchy
Abstract base class for all base level solvers.
static std::string convertToMueLuReuseOption(const std::string &reuse)
std::size_t getNumIters()
IpplTimings::TimerRef setupTimer_m
Teuchos::RCP< manager_t > factory_mp
sets up hierarchy
lo_t nSweeps_m
the number of multigrid iterations
Tpetra::CrsMatrix< scalar_t, local_ordinal_t, global_ordinal_t, node_t > matrix_t
MueLu::ParameterListInterpreter< scalar_t, lo_t, go_t, node_t > pListInterpreter_t
Tpetra::MultiVector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > multivector_t
Tpetra::Operator< scalar_t, local_ordinal_t, global_ordinal_t, node_t > operator_t
amr::global_ordinal_t go_t
Teuchos::ParameterList mueluList_m
Timing::TimerRef TimerRef
Tpetra::Vector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > vector_t
Teuchos::RCP< xmatrix_t > A_mp
MueLu requires Xpetra.
Xpetra::Matrix< scalar_t, lo_t, go_t, node_t > xmatrix_t
amr::local_ordinal_t lo_t
bool rebalance_m
use subcommunicators (less communication)