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;
68 const std::string& reuse);
70 void solve(
const Teuchos::RCP<mv_t>& x,
71 const Teuchos::RCP<mv_t>& b);
74 Level* level_p =
nullptr);
92 Teuchos::RCP<xmatrix_t>
A_mp;
Tpetra::Operator< scalar_t, local_ordinal_t, global_ordinal_t, node_t > operator_t
KokkosClassic::DefaultNode::DefaultNodeType node_t
amrex::IntVect AmrIntVect_t
Tpetra::Vector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > vector_t
Tpetra::MultiVector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > multivector_t
Tpetra::CrsMatrix< scalar_t, local_ordinal_t, global_ordinal_t, node_t > matrix_t
IpplTimings::TimerRef setupTimer_m
MueLu::Hierarchy< scalar_t, lo_t, go_t, node_t > hierarchy_t
void setOperator(const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
MueLu::ParameterListInterpreter< scalar_t, lo_t, go_t, node_t > pListInterpreter_t
MueLu::Utilities< scalar_t, lo_t, go_t, node_t > util_t
std::size_t getNumIters()
amr::global_ordinal_t go_t
MueLuBottomSolver(const bool &rebalance, const std::string &reuse)
void solve(const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
Teuchos::RCP< xmatrix_t > A_mp
MueLu requires Xpetra.
Xpetra::MultiVector< scalar_t, lo_t, go_t, node_t > xmv_t
amr::AmrIntVect_t AmrIntVect_t
Teuchos::RCP< manager_t > factory_mp
sets up hierarchy
static std::string convertToMueLuReuseOption(const std::string &reuse)
void initMueLuList_m(const std::string &reuse)
MueLu::HierarchyManager< scalar_t, lo_t, go_t, node_t > manager_t
Teuchos::ParameterList mueluList_m
bool rebalance_m
use subcommunicators (less communication)
amr::local_ordinal_t lo_t
Teuchos::RCP< hierarchy_t > hierarchy_mp
manages the multigrid hierarchy
Xpetra::Matrix< scalar_t, lo_t, go_t, node_t > xmatrix_t
lo_t nSweeps_m
the number of multigrid iterations
Timing::TimerRef TimerRef