28 const std::shared_ptr<prec_t>& prec_p)
30 Teuchos::RCP<
amr::multivector_t>,
44 const Teuchos::RCP<mv_t>& b)
57 Belos::ReturnType ret =
solver_mp->solve();
59 if ( ret != Belos::Converged ) {
60 *
gmsg <<
"Warning: Bottom solver not converged. Achieved tolerance"
61 <<
" after " <<
solver_mp->getNumIters() <<
" iterations is "
82 "No problem defined.");
103 "No solver initialized.");
109template <
class Level>
112 Belos::SolverFactory<scalar_t, mv_t, op_t> factory;
118 params_mp->set(
"Adaptive Block Size",
false);
119 params_mp->set(
"Use Single Reduction",
true);
120 params_mp->set(
"Explicit Residual Scaling",
"Norm of RHS");
122 params_mp->set(
"Verbosity", Belos::Errors + Belos::Warnings);
boost::numeric::ublas::matrix< double > matrix_t
Inform & endl(Inform &inf)
Some AMR types used a lot.
void initSolver_m(std::string solvertype)
Belos::LinearProblem< scalar_t, mv_t, op_t > problem_t
Teuchos::RCP< Teuchos::ParameterList > params_mp
parameter list of solver
int maxiter_m
allowed number of steps for iterative solvers
Teuchos::RCP< matrix_t > A_mp
copy of matrix (has to be positive definite)
Teuchos::RCP< solver_t > solver_mp
solver instance
std::shared_ptr< prec_t > prec_mp
preconditioner
void solve(const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
Teuchos::RCP< problem_t > problem_mp
represents linear problem
scalar_t reltol_m
relative tolerance
BelosBottomSolver(std::string solvertype="Pseudoblock CG", const std::shared_ptr< prec_t > &prec_p=nullptr)
void setOperator(const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
std::size_t getNumIters()
The base class for all OPAL exceptions.
Timing::TimerRef TimerRef
static TimerRef getTimer(const char *nm)
static void stopTimer(TimerRef t)
static void startTimer(TimerRef t)