version 3.9-dev
Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG > Class Template Reference

Preconditioned iterative solver for the incompressible Stokes problem. More...

#include <dumux/linear/stokes_solver.hh>

Inheritance diagram for Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >:

Description

template<class Matrix, class Vector, class VelocityGG, class PressureGG>
class Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >
Note
Uses StokesPreconditioner as preconditioner (tailored to the incompressible Stokes problem)
No MPI parallelization implemented, some shared-memory parallelism is enabled

Public Types

using Scalar = double
 

Public Member Functions

 StokesSolver (std::shared_ptr< const VelocityGG > vGridGeometry, std::shared_ptr< const PressureGG > pGridGeometry, const Vector &dirichletDofs, const std::string &paramGroup="")
 Constructor. More...
 
bool solve (const Matrix &A, Vector &x, const Vector &b)
 
Scalar norm (const Vector &b) const
 
std::string name () const
 
const Dune::InverseOperatorResult & result () 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

◆ StokesSolver()

template<class Matrix , class Vector , class VelocityGG , class PressureGG >
Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >::StokesSolver ( std::shared_ptr< const VelocityGG >  vGridGeometry,
std::shared_ptr< const PressureGG >  pGridGeometry,
const Vector &  dirichletDofs,
const std::string &  paramGroup = "" 
)
inline
Parameters
vGridGeometrygrid geometry of the velocity discretization
pGridGeometrygrid geometry of the pressure discretization
dirichletDofsa vector (same size and shape as right hand side) where the dirichlet dofs are marked with 1.0 and all other entries are 0.0.
paramGroupgroup prefix when looking up keys in the parameter tree

Member Function Documentation

◆ maxIter()

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

◆ name()

template<class Matrix , class Vector , class VelocityGG , class PressureGG >
std::string Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >::name ( ) const
inline

◆ norm()

template<class Matrix , class Vector , class VelocityGG , class PressureGG >
Scalar Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >::norm ( const Vector &  b) const
inline

◆ 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 Matrix , class Vector , class VelocityGG , class PressureGG >
const Dune::InverseOperatorResult & Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >::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()

template<class Matrix , class Vector , class VelocityGG , class PressureGG >
bool Dumux::StokesSolver< Matrix, Vector, VelocityGG, PressureGG >::solve ( const Matrix &  A,
Vector &  x,
const Vector &  b 
)
inline

◆ verbosity()

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

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