27 #ifndef EWOMS_PARALLEL_ISTL_BACKEND_HH 28 #define EWOMS_PARALLEL_ISTL_BACKEND_HH 35 #include <dune/common/version.hh> 80 template <
class TypeTag>
91 using OverlappingVector =
typename ParentType::OverlappingVector;
95 using MatrixBlock =
typename SparseMatrixAdapter::MatrixBlock;
96 using RawLinearSolver =
typename LinearSolverWrapper::RawSolver;
99 "The ParallelIstlSolverBackend linear solver backend requires the IstlSparseMatrixAdapter");
113 LinearSolverWrapper::registerParameters();
119 std::shared_ptr<RawLinearSolver> prepareSolver_(ParallelOperator& parOperator,
120 ParallelScalarProduct& parScalarProduct,
121 ParallelPreconditioner& parPreCond)
123 return solverWrapper_.get(parOperator,
128 void cleanupSolver_()
130 solverWrapper_.cleanup();
133 std::pair<bool, int> runSolver_(std::shared_ptr<RawLinearSolver> solver)
135 Dune::InverseOperatorResult result;
136 solver->apply(*this->overlappingx_, *this->overlappingb_, result);
137 return std::make_pair(result.converged, result.iterations);
140 LinearSolverWrapper solverWrapper_;
147 template<
class TypeTag>
151 template<
class TypeTag>
153 {
using type = Opm::Linear::SolverWrapperBiCGStab<TypeTag>; };
155 template<
class TypeTag>
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(...))
Definition: propertysystem.hh:233
Provides the common code which is required by most linear solvers.
Definition: parallelbasebackend.hh:108
Provides all unmodified linear solvers from dune-istl.
Definition: parallelistlbackend.hh:81
Definition: parallelistlbackend.hh:40
An overlap aware preconditioner for any ISTL linear solver.
Definition: overlappingpreconditioner.hh:45
the preconditioner used by the linear solver
Definition: linalgproperties.hh:42
static void registerParameters()
Register all run-time parameters for the linear solver.
Definition: parallelistlbackend.hh:109
Definition: istlpreconditionerwrappers.hh:152
A sparse matrix interface backend for BCRSMatrix from dune-istl.
Definition: bicgstabsolver.hh:42
static void registerParameters()
Register all run-time parameters for the linear solver.
Definition: parallelbasebackend.hh:153
An overlap aware ISTL scalar product.
Definition: overlappingscalarproduct.hh:40
Provides wrapper classes for the iterative linear solvers available in dune-istl. ...
The generic type tag for problems using the immiscible multi-phase model.
Definition: blackoilmodel.hh:82
A sparse matrix interface backend for BCRSMatrix from dune-istl.
Definition: istlsparsematrixadapter.hh:42
Definition: blackoilmodel.hh:80
Definition: linalgproperties.hh:57
Declares the properties required by the black oil model.
An overlap aware linear operator usable by ISTL.
Definition: overlappingoperator.hh:40
The type of the linear solver to be used.
Definition: linalgproperties.hh:38
Provides the common code which is required by most linear solvers.