My Project
Loading...
Searching...
No Matches
parallelbasebackend.hh File Reference

Provides the common code which is required by most linear solvers. More...

#include <dune/common/fvector.hh>
#include <dune/common/version.hh>
#include <dune/grid/io/file/vtk/vtkwriter.hh>
#include <opm/common/Exceptions.hpp>
#include <opm/models/utils/genericguard.hh>
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hpp>
#include <opm/simulators/linalg/istlpreconditionerwrappers.hh>
#include <opm/simulators/linalg/istlsparsematrixadapter.hh>
#include <opm/simulators/linalg/linalgparameters.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <opm/simulators/linalg/matrixblock.hh>
#include <opm/simulators/linalg/overlappingbcrsmatrix.hh>
#include <opm/simulators/linalg/overlappingblockvector.hh>
#include <opm/simulators/linalg/overlappingoperator.hh>
#include <opm/simulators/linalg/overlappingpreconditioner.hh>
#include <opm/simulators/linalg/overlappingscalarproduct.hh>
#include <iostream>
#include <memory>
#include <sstream>

Go to the source code of this file.

Classes

struct  Opm::Properties::TTag::ParallelBaseLinearSolver
 
struct  Opm::Properties::SparseMatrixAdapter< TypeTag, TTag::ParallelBaseLinearSolver >
 Set the type of a global jacobian matrix for linear solvers that are based on dune-istl. More...
 
class  Opm::Linear::ParallelBaseBackend< TypeTag >
 Provides the common code which is required by most linear solvers. More...
 
struct  Opm::Properties::LinearSolverScalar< TypeTag, TTag::ParallelBaseLinearSolver >
 by default use the same kind of floating point values for the linearization and for the linear solve More...
 
struct  Opm::Properties::OverlappingMatrix< TypeTag, TTag::ParallelBaseLinearSolver >
 
struct  Opm::Properties::Overlap< TypeTag, TTag::ParallelBaseLinearSolver >
 
struct  Opm::Properties::OverlappingVector< TypeTag, TTag::ParallelBaseLinearSolver >
 
struct  Opm::Properties::OverlappingScalarProduct< TypeTag, TTag::ParallelBaseLinearSolver >
 
struct  Opm::Properties::OverlappingLinearOperator< TypeTag, TTag::ParallelBaseLinearSolver >
 
struct  Opm::Properties::PreconditionerWrapper< TypeTag, TTag::ParallelBaseLinearSolver >
 

Namespaces

namespace  Opm
 This file contains a set of helper functions used by VFPProd / VFPInj.
 
namespace  Opm::Properties::TTag
 The generic type tag for problems using the immiscible multi-phase model.
 

Detailed Description

Provides the common code which is required by most linear solvers.

This class provides access to all preconditioners offered by dune-istl using 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: An ILU(0) preconditioner. The results of this preconditioner are the same as setting the PreconditionerOrder property to 0 and using the ILU(n) preconditioner. The reason for the existence of ILU0 is that it is computationally cheaper because it does not need to consider things which are only required for higher orders