version 3.10-dev
Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits > Class Template Reference

A linear solver using the dune-istl solver factory to choose the solver and preconditioner at runtime. More...

#include <dumux/linear/istlsolverfactorybackend.hh>

Inheritance diagram for Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >:

Description

template<class LinearSolverTraits, class LinearAlgebraTraits>
class Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >
Note
the solvers are configured via the input file

Public Types

using Scalar = double
 

Public Member Functions

 IstlSolverFactoryBackend (const std::string &paramGroup="")
 Construct the backend for the sequential case only. More...
 
 IstlSolverFactoryBackend (const typename LinearSolverTraits::GridView &gridView, const typename LinearSolverTraits::DofMapper &dofMapper, const std::string &paramGroup="")
 Construct the backend for parallel or sequential runs. More...
 
bool solve (Matrix &A, Vector &x, Vector &b)
 Solve a linear system. More...
 
const Dune::InverseOperatorResult & result () const
 
const std::string & name () const
 
Scalar norm (const Vector &x) const
 
template<class Matrix , class Vector >
bool solve (const Matrix &A, Vector &x, const Vector &b)
 Solve the linear system Ax = b. More...
 
template<class Vector >
auto norm (const Vector &x) const
 
const std::string & paramGroup () const
 the parameter group for getting parameter from the parameter tree More...
 
int verbosity () const
 the verbosity level More...
 
void setVerbosity (int v)
 set the verbosity level More...
 
int maxIter () const
 the maximum number of linear solver iterations More...
 
void setMaxIter (int i)
 set the maximum number of linear solver iterations More...
 
Scalar residReduction () const
 the linear solver residual reduction More...
 
void setResidualReduction (Scalar r)
 set the linear solver residual reduction More...
 
Scalar relaxation () const
 the linear solver relaxation factor More...
 
void setRelaxation (Scalar r)
 set the linear solver relaxation factor More...
 
int precondIter () const
 the number of preconditioner iterations More...
 
void setPrecondIter (int i)
 set the number of preconditioner iterations More...
 
int precondVerbosity () const
 the preconditioner verbosity More...
 
void setPrecondVerbosity (int verbosityLevel)
 set the preconditioner verbosity More...
 

Member Typedef Documentation

◆ Scalar

using Dumux::LinearSolver::Scalar = double
inherited

export Scalar type (might be needed to set parameters from output) TODO: Do we need this?

Constructor & Destructor Documentation

◆ IstlSolverFactoryBackend() [1/2]

template<class LinearSolverTraits , class LinearAlgebraTraits >
Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::IstlSolverFactoryBackend ( const std::string &  paramGroup = "")
inline
Parameters
paramGroupthe parameter group for parameter lookup

◆ IstlSolverFactoryBackend() [2/2]

template<class LinearSolverTraits , class LinearAlgebraTraits >
Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::IstlSolverFactoryBackend ( const typename LinearSolverTraits::GridView &  gridView,
const typename LinearSolverTraits::DofMapper &  dofMapper,
const std::string &  paramGroup = "" 
)
inline
Parameters
gridViewthe grid view for parallel communication via the grid
dofMapperan index mapper for dof entities
paramGroupthe parameter group for parameter lookup

Member Function Documentation

◆ maxIter()

int Dumux::LinearSolver::maxIter ( ) const
inlineinherited

◆ name()

template<class LinearSolverTraits , class LinearAlgebraTraits >
const std::string & Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::name ( ) const
inline

◆ norm() [1/2]

template<class LinearSolverTraits , class LinearAlgebraTraits >
Scalar Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::norm ( const Vector &  x) const
inline

◆ norm() [2/2]

template<class Vector >
auto Dumux::LinearSolver::norm ( const Vector &  x) const
inlineinherited

◆ paramGroup()

const std::string & Dumux::LinearSolver::paramGroup ( ) const
inlineinherited

◆ precondIter()

int Dumux::LinearSolver::precondIter ( ) const
inlineinherited

◆ precondVerbosity()

int Dumux::LinearSolver::precondVerbosity ( ) const
inlineinherited

◆ relaxation()

Scalar Dumux::LinearSolver::relaxation ( ) const
inlineinherited

◆ residReduction()

Scalar Dumux::LinearSolver::residReduction ( ) const
inlineinherited

◆ result()

template<class LinearSolverTraits , class LinearAlgebraTraits >
const Dune::InverseOperatorResult & Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::result ( ) const
inline

◆ setMaxIter()

void Dumux::LinearSolver::setMaxIter ( int  i)
inlineinherited

◆ setPrecondIter()

void Dumux::LinearSolver::setPrecondIter ( int  i)
inlineinherited

◆ setPrecondVerbosity()

void Dumux::LinearSolver::setPrecondVerbosity ( int  verbosityLevel)
inlineinherited

◆ setRelaxation()

void Dumux::LinearSolver::setRelaxation ( Scalar  r)
inlineinherited

◆ setResidualReduction()

void Dumux::LinearSolver::setResidualReduction ( Scalar  r)
inlineinherited

◆ setVerbosity()

void Dumux::LinearSolver::setVerbosity ( int  v)
inlineinherited

◆ solve() [1/2]

template<class Matrix , class Vector >
bool Dumux::LinearSolver::solve ( const Matrix &  A,
Vector &  x,
const Vector &  b 
)
inlineinherited
Note
This has to be overloaded by the actual solver

◆ solve() [2/2]

template<class LinearSolverTraits , class LinearAlgebraTraits >
bool Dumux::IstlSolverFactoryBackend< LinearSolverTraits, LinearAlgebraTraits >::solve ( Matrix &  A,
Vector &  x,
Vector &  b 
)
inline
Parameters
Athe matrix
xthe seeked solution vector, containing the initial solution upon entry
bthe right hand side vector

◆ verbosity()

int Dumux::LinearSolver::verbosity ( ) const
inlineinherited

The documentation for this class was generated from the following file: