6 #include <BelosLinearProblem.hpp>
7 #include <BelosTpetraAdapter.hpp>
8 #include <BelosSolverFactory.hpp>
16 template <
class Level>
18 Teuchos::RCP<amr::multivector_t>,
31 typedef Belos::SolverManager<scalar_t, mv_t, op_t>
solver_t;
32 typedef Belos::LinearProblem<scalar_t, mv_t, op_t>
problem_t;
43 const std::shared_ptr<prec_t>& prec_p =
nullptr);
45 void solve(
const Teuchos::RCP<mv_t>& x,
46 const Teuchos::RCP<mv_t>& b);
49 Level* level_p =
nullptr);
65 Teuchos::RCP<matrix_t>
A_mp;
Teuchos::RCP< matrix_t > A_mp
copy of matrix (has to be positive definite)
std::shared_ptr< prec_t > prec_mp
preconditioner
Belos::LinearProblem< scalar_t, mv_t, op_t > problem_t
Bottom solver preconditioners.
void setOperator(const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
Teuchos::RCP< solver_t > solver_mp
solver instance
std::size_t getNumIters()
KokkosClassic::DefaultNode::DefaultNodeType node_t
amr::local_ordinal_t lo_t
Abstract base class for all base level solvers.
amr::global_ordinal_t go_t
void solve(const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
Teuchos::RCP< problem_t > problem_mp
represents linear problem
void initSolver_m(std::string solvertype)
BelosBottomSolver(std::string solvertype="Pseudoblock CG", const std::shared_ptr< prec_t > &prec_p=nullptr)
AmrPreconditioner< matrix_t, Level > prec_t
Belos::SolverManager< scalar_t, mv_t, op_t > solver_t
Teuchos::RCP< Teuchos::ParameterList > params_mp
parameter list of solver
Interface to Belos solvers of the Trilinos package.
Tpetra::CrsMatrix< scalar_t, local_ordinal_t, global_ordinal_t, node_t > matrix_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
Tpetra::Vector< scalar_t, local_ordinal_t, global_ordinal_t, node_t > vector_t
int maxiter_m
allowed number of steps for iterative solvers
scalar_t reltol_m
relative tolerance