istlpreconditionerwrappers.hh File Reference

Provides wrapper classes for the (non-AMG) preconditioners provided by dune-istl. More...

#include <dune/common/version.hh>
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/simulators/linalg/linalgparameters.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <opm/simulators/linalg/ilufirstelement.hh>
#include <dune/istl/preconditioners.hh>
Include dependency graph for istlpreconditionerwrappers.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Opm::Linear::PreconditionerWrapperILU< TypeTag >
 

Namespaces

namespace  Opm
 
namespace  Opm::Linear
 

Macros

#define EWOMS_WRAP_ISTL_PRECONDITIONER(PREC_NAME, ISTL_PREC_TYPE)
 
#define EWOMS_WRAP_ISTL_SIMPLE_PRECONDITIONER(PREC_NAME, ISTL_PREC_TYPE)
 

Detailed Description

Provides wrapper classes for the (non-AMG) preconditioners provided by dune-istl.

In conjunction with a suitable solver backend, preconditioner wrappers work by specifying the "PreconditionerWrapper" property:

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

Macro Definition Documentation

◆ EWOMS_WRAP_ISTL_PRECONDITIONER

#define EWOMS_WRAP_ISTL_PRECONDITIONER (   PREC_NAME,
  ISTL_PREC_TYPE 
)

◆ EWOMS_WRAP_ISTL_SIMPLE_PRECONDITIONER

#define EWOMS_WRAP_ISTL_SIMPLE_PRECONDITIONER (   PREC_NAME,
  ISTL_PREC_TYPE 
)