parallelistlbackend.hh File Reference
#include "linalgproperties.hh"
#include "parallelbasebackend.hh"
#include "istlsolverwrappers.hh"
#include "istlsparsematrixadapter.hh"
#include <dune/common/version.hh>
Include dependency graph for parallelistlbackend.hh:

Go to the source code of this file.

Classes

struct  Opm::Properties::TTag::ParallelIstlLinearSolver
 
class  Opm::Linear::ParallelIstlSolverBackend< TypeTag >
 Provides all unmodified linear solvers from dune-istl. More...
 
struct  Opm::Properties::LinearSolverBackend< TypeTag, TTag::ParallelIstlLinearSolver >
 
struct  Opm::Properties::LinearSolverWrapper< TypeTag, TTag::ParallelIstlLinearSolver >
 
struct  Opm::Properties::PreconditionerWrapper< TypeTag, TTag::ParallelIstlLinearSolver >
 
struct  Opm::Properties::GMResRestart< TypeTag, TTag::ParallelIstlLinearSolver >
 set the GMRes restart parameter to 10 by default More...
 

Namespaces

namespace  Opm
 
namespace  Opm::Properties
 
namespace  Opm::Properties::TTag
 The generic type tag for problems using the immiscible multi-phase model.
 
namespace  Opm::Linear
 

Detailed Description

Provides all unmodified linear solvers from dune-istl.

To set the linear solver, use

template<class TypeTag>
struct LinearSolverWrapper<TypeTag, TTag::YourTypeTag>
{ using type = Opm::Linear::SolverWrapper$SOLVER<TypeTag>; };

The possible choices for '$SOLVER' are:

  • Richardson: A fixpoint solver using the Richardson iteration
  • SteepestDescent: The steepest descent solver
  • ConjugatedGradients: A conjugated gradients solver
  • BiCGStab: A stabilized bi-conjugated gradients solver
  • MinRes: A solver based on the minimized residual algorithm
  • RestartedGMRes: A restarted GMRES solver

Chosing the preconditioner works in an analogous way:

template<class TypeTag>
struct PreconditionerWrapper<TypeTag, TTag::YourTypeTag>
{ using type = Opm::Linear::PreconditionerWrapper$PRECONDITIONER<TypeTag>; };

Where the choices possible for '$PRECONDITIONER' are:

  • Jacobi: A Jacobi preconditioner
  • GaussSeidel: A Gauss-Seidel preconditioner
  • SSOR: A symmetric successive overrelaxation (SSOR) preconditioner
  • SOR: A successive overrelaxation (SOR) preconditioner
  • ILUn: An ILU(n) preconditioner
  • ILU0: A specialized (and optimized) ILU(0) preconditioner