21 #ifndef MUELU_BOTTOM_SOLVER_H
22 #define MUELU_BOTTOM_SOLVER_H
31 #include <MueLu_Level.hpp>
32 #include <MueLu_Utilities.hpp>
34 #include <MueLu_ParameterListInterpreter.hpp>
36 template <
class Level>
38 Teuchos::RCP<amr::multivector_t>,
56 typedef MueLu::Hierarchy<scalar_t, lo_t, go_t, node_t>
hierarchy_t;
58 typedef Xpetra::Matrix<scalar_t, lo_t, go_t, node_t>
xmatrix_t;
59 typedef Xpetra::MultiVector<scalar_t, lo_t, go_t, node_t>
xmv_t;
60 typedef MueLu::Utilities<scalar_t, lo_t, go_t, node_t>
util_t;
63 typedef MueLu::HierarchyManager<scalar_t, lo_t, go_t, node_t>
manager_t;
67 const std::string& reuse);
69 void solve(
const Teuchos::RCP<mv_t>& x,
70 const Teuchos::RCP<mv_t>& b);
73 Level* level_p =
nullptr);
89 Teuchos::RCP<xmatrix_t>
A_mp;
void solve(const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
Tpetra::CrsMatrix< scalar_t, local_ordinal_t, global_ordinal_t, node_t > matrix_t
MueLu::HierarchyManager< scalar_t, lo_t, go_t, node_t > manager_t
void initMueLuList_m(const std::string &reuse)
amr::AmrIntVect_t AmrIntVect_t
Xpetra::Matrix< scalar_t, lo_t, go_t, node_t > xmatrix_t
Tpetra::Operator< scalar_t, local_ordinal_t, global_ordinal_t, node_t > operator_t
amrex::IntVect AmrIntVect_t
Teuchos::ParameterList mueluList_m
Timing::TimerRef TimerRef
Teuchos::RCP< xmatrix_t > A_mp
MueLu requires Xpetra.
amr::local_ordinal_t lo_t
IpplTimings::TimerRef setupTimer_m
void setOperator(const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
Tpetra::Vector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > vector_t
amr::global_ordinal_t go_t
Teuchos::RCP< hierarchy_t > hierarchy_mp
manages the multigrid hierarchy
MueLuBottomSolver(const bool &rebalance, const std::string &reuse)
Xpetra::MultiVector< scalar_t, lo_t, go_t, node_t > xmv_t
MueLu::Utilities< scalar_t, lo_t, go_t, node_t > util_t
bool rebalance_m
use subcommunicators (less communication)
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
MueLu::Hierarchy< scalar_t, lo_t, go_t, node_t > hierarchy_t
Teuchos::RCP< manager_t > factory_mp
sets up hierarchy
std::size_t getNumIters()
lo_t nSweeps_m
the number of multigrid iterations
static std::string convertToMueLuReuseOption(const std::string &reuse)
KokkosClassic::DefaultNode::DefaultNodeType node_t