Provides the common code which is required by most linear solvers. More...
#include <parallelbasebackend.hh>
Public Member Functions | |
ParallelBaseBackend (const Simulator &simulator) | |
void | eraseMatrix () |
Causes the solve() method to discared the structure of the linear system of equations the next time it is called. | |
void | prepareMatrix (const Matrix &M) |
void | prepareRhs (const Matrix &M, Vector &b) |
bool | solve (Vector &x) |
Actually solve the linear system of equations. More... | |
Static Public Member Functions | |
static void | registerParameters () |
Register all run-time parameters for the linear solver. | |
Protected Types | |
enum | { dimWorld = GridView::dimensionworld } |
typedef PreconditionerWrapper::SequentialPreconditioner | SequentialPreconditioner |
typedef Ewoms::Linear::OverlappingPreconditioner < SequentialPreconditioner, Overlap > | ParallelPreconditioner |
typedef Ewoms::Linear::OverlappingScalarProduct < OverlappingVector, Overlap > | ParallelScalarProduct |
typedef Ewoms::Linear::OverlappingOperator < OverlappingMatrix, OverlappingVector, OverlappingVector > | ParallelOperator |
Protected Member Functions | |
typedef | GET_PROP_TYPE (TypeTag, LinearSolverBackend) Implementation |
typedef | GET_PROP_TYPE (TypeTag, Simulator) Simulator |
typedef | GET_PROP_TYPE (TypeTag, Scalar) Scalar |
typedef | GET_PROP_TYPE (TypeTag, JacobianMatrix) Matrix |
typedef | GET_PROP_TYPE (TypeTag, GlobalEqVector) Vector |
typedef | GET_PROP_TYPE (TypeTag, BorderListCreator) BorderListCreator |
typedef | GET_PROP_TYPE (TypeTag, GridView) GridView |
typedef | GET_PROP_TYPE (TypeTag, Overlap) Overlap |
typedef | GET_PROP_TYPE (TypeTag, OverlappingVector) OverlappingVector |
typedef | GET_PROP_TYPE (TypeTag, OverlappingMatrix) OverlappingMatrix |
typedef | GET_PROP_TYPE (TypeTag, PreconditionerWrapper) PreconditionerWrapper |
Implementation & | asImp_ () |
const Implementation & | asImp_ () const |
void | prepare_ (const Matrix &M) |
void | rescale_ () |
void | cleanup_ () |
std::shared_ptr < ParallelPreconditioner > | preparePreconditioner_ () |
void | cleanupPreconditioner_ () |
void | writeOverlapToVTK_ () |
Protected Attributes | |
const Simulator & | simulator_ |
int | gridSequenceNumber_ |
OverlappingMatrix * | overlappingMatrix_ |
OverlappingVector * | overlappingb_ |
OverlappingVector * | overlappingx_ |
PreconditionerWrapper | precWrapper_ |
Provides the common code which is required by most linear solvers.
This class provides access to all preconditioners offered by dune-istl using the PreconditionerWrapper property:
Where the choices possible for '$PRECONDITIONER'
are:
Jacobi:
A Jacobi preconditionerGaussSeidel:
A Gauss-Seidel preconditionerSSOR:
A symmetric successive overrelaxation (SSOR) preconditionerSOR:
A successive overrelaxation (SOR) preconditionerILUn:
An ILU(n) preconditionerILU0:
An ILU(0) preconditioner. The results of this preconditioner are the same as setting the PreconditionerOrder property to 0 and using the ILU(n) preconditioner. The reason for the existence of ILU0 is that it is computationally cheaper because it does not need to consider things which are only required for higher orders
|
inline |
Actually solve the linear system of equations.