3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::ParallelAMGBackend< GridView, AmgTraits > Class Template Reference

A linear solver based on the ISTL AMG preconditioner and the ISTL BiCGSTAB solver. More...

#include <dumux/linear/amgbackend.hh>

Inheritance diagram for Dumux::ParallelAMGBackend< GridView, AmgTraits >:
Inheritance graph

Description

template<class GridView, class AmgTraits>
class Dumux::ParallelAMGBackend< GridView, AmgTraits >

A linear solver based on the ISTL AMG preconditioner and the ISTL BiCGSTAB solver.

Public Types

using Scalar = double

Public Member Functions

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

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

◆ ParallelAMGBackend() [1/2]

template<class GridView, class AmgTraits>
Dumux::ParallelAMGBackend< GridView, AmgTraits >::ParallelAMGBackend ( const std::string & paramGroup = "")
inline

Construct the backend for the sequential case only.

Parameters
paramGroupthe parameter group for parameter lookup

◆ ParallelAMGBackend() [2/2]

template<class GridView, class AmgTraits>
Dumux::ParallelAMGBackend< GridView, AmgTraits >::ParallelAMGBackend ( const GridView & gridView,
const DofMapper & dofMapper,
const std::string & paramGroup = "" )
inline

Construct the backend for parallel or sequential runs.

Parameters
gridViewthe grid view on which we are performing the multi-grid
dofMapperan index mapper for dof entities
paramGroupthe parameter group for parameter lookup

Member Function Documentation

◆ maxIter()

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

the maximum number of linear solver iterations

◆ name()

template<class GridView, class AmgTraits>
std::string Dumux::ParallelAMGBackend< GridView, AmgTraits >::name ( ) const
inline

The name of the solver.

◆ paramGroup()

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

the parameter group for getting parameter from the parameter tree

◆ precondIter()

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

the number of preconditioner iterations

◆ relaxation()

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

the linear solver relaxation factor

◆ residReduction()

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

the linear solver residual reduction

◆ result()

template<class GridView, class AmgTraits>
const Dune::InverseOperatorResult & Dumux::ParallelAMGBackend< GridView, AmgTraits >::result ( ) const
inline

The result containing the convergence history.

◆ setMaxIter()

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

set the maximum number of linear solver iterations

◆ setPrecondIter()

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

set the number of preconditioner iterations

◆ setRelaxation()

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

set the linear solver relaxation factor

◆ setResidualReduction()

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

set the linear solver residual reduction

◆ setVerbosity()

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

set the verbosity level

◆ solve() [1/2]

template<class Matrix, class Vector>
bool Dumux::LinearSolver::solve ( const Matrix & A,
Vector & x,
const Vector & b )
inlineinherited

Solve the linear system Ax = b.

Note
This has to be overloaded by the actual solver

◆ solve() [2/2]

template<class GridView, class AmgTraits>
template<class Matrix, class Vector>
bool Dumux::ParallelAMGBackend< GridView, AmgTraits >::solve ( Matrix & A,
Vector & x,
Vector & b )
inline

Solve a linear system.

Parameters
Athe matrix
xthe seeked solution vector, containing the initial solution upon entry
bthe right hand side vector
Todo
Check whether the default accumulation mode atOnceAccu is needed.
Todo
Todo
make parameters changeable at runtime from input file / parameter tree

◆ verbosity()

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

the verbosity level


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