parallelbasebackend.hh File Reference

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

#include <ewoms/linear/overlappingbcrsmatrix.hh>
#include <ewoms/linear/overlappingblockvector.hh>
#include <ewoms/linear/overlappingpreconditioner.hh>
#include <ewoms/linear/overlappingscalarproduct.hh>
#include <ewoms/linear/overlappingoperator.hh>
#include <ewoms/linear/parallelbasebackend.hh>
#include <ewoms/linear/istlpreconditionerwrappers.hh>
#include <ewoms/common/genericguard.hh>
#include <ewoms/common/propertysystem.hh>
#include <ewoms/common/parametersystem.hh>
#include <dune/grid/io/file/vtk/vtkwriter.hh>
#include <dune/common/fvector.hh>
#include <sstream>
#include <memory>
#include <iostream>

Go to the source code of this file.

Classes

class  Ewoms::Linear::ParallelBaseBackend< TypeTag >
 Provides the common code which is required by most linear solvers. More...
 

Functions

 Ewoms::Properties::NEW_TYPE_TAG (ParallelBaseLinearSolver)
 
 Ewoms::Properties::NEW_PROP_TAG (Simulator)
 Manages the simulation time. More...
 
 Ewoms::Properties::NEW_PROP_TAG (Scalar)
 Property to specify the type of scalar values. More...
 
 Ewoms::Properties::NEW_PROP_TAG (NumEq)
 The number of balance equations. More...
 
 Ewoms::Properties::NEW_PROP_TAG (JacobianMatrix)
 Type of the global jacobian matrix. More...
 
 Ewoms::Properties::NEW_PROP_TAG (GlobalEqVector)
 Vector containing a quantity of for equation for each DOF of the whole grid. More...
 
 Ewoms::Properties::NEW_PROP_TAG (VertexMapper)
 The mapper to find the global index of a vertex.
 
 Ewoms::Properties::NEW_PROP_TAG (GridView)
 The type of the grid view.
 
 Ewoms::Properties::NEW_PROP_TAG (BorderListCreator)
 The class which marks the border indices associated with the degrees of freedom on a process boundary. More...
 
 Ewoms::Properties::NEW_PROP_TAG (Overlap)
 
 Ewoms::Properties::NEW_PROP_TAG (OverlappingVector)
 
 Ewoms::Properties::NEW_PROP_TAG (OverlappingMatrix)
 
 Ewoms::Properties::NEW_PROP_TAG (OverlappingScalarProduct)
 
 Ewoms::Properties::NEW_PROP_TAG (OverlappingLinearOperator)
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverBackend)
 The type of the linear solver to be used. More...
 
 Ewoms::Properties::NEW_PROP_TAG (PreconditionerWrapper)
 the preconditioner used by the linear solver
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverScalar)
 The floating point type used internally by the linear solver.
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverOverlapSize)
 The size of the algebraic overlap of the linear solver. More...
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverTolerance)
 Maximum accepted error of the solution of the linear solver.
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverVerbosity)
 Specifies the verbosity of the linear solver. More...
 
 Ewoms::Properties::NEW_PROP_TAG (LinearSolverMaxIterations)
 Maximum number of iterations eyecuted by the linear solver.
 
 Ewoms::Properties::NEW_PROP_TAG (PreconditionerOrder)
 The order of the sequential preconditioner.
 
 Ewoms::Properties::NEW_PROP_TAG (PreconditionerRelaxation)
 The relaxation factor of the preconditioner.
 
 Ewoms::Properties::SET_INT_PROP (ParallelBaseLinearSolver, LinearSolverVerbosity, 0)
 make the linear solver shut up by default
 
 Ewoms::Properties::SET_SCALAR_PROP (ParallelBaseLinearSolver, PreconditionerRelaxation, 1.0)
 set the preconditioner relaxation parameter to 1.0 by default
 
 Ewoms::Properties::SET_INT_PROP (ParallelBaseLinearSolver, PreconditionerOrder, 0)
 set the preconditioner order to 0 by default
 
 Ewoms::Properties::SET_TYPE_PROP (ParallelBaseLinearSolver, LinearSolverScalar, typename GET_PROP_TYPE(TypeTag, Scalar))
 by default use the same kind of floating point values for the linearization and for the linear solve
 
 Ewoms::Properties::SET_PROP (ParallelBaseLinearSolver, OverlappingMatrix)
 
 Ewoms::Properties::SET_TYPE_PROP (ParallelBaseLinearSolver, Overlap, typename GET_PROP_TYPE(TypeTag, OverlappingMatrix)::Overlap)
 
 Ewoms::Properties::SET_PROP (ParallelBaseLinearSolver, OverlappingVector)
 
 Ewoms::Properties::SET_PROP (ParallelBaseLinearSolver, OverlappingScalarProduct)
 
 Ewoms::Properties::SET_PROP (ParallelBaseLinearSolver, OverlappingLinearOperator)
 
 Ewoms::Properties::SET_TYPE_PROP (ParallelBaseLinearSolver, PreconditionerWrapper, Ewoms::Linear::PreconditionerWrapperILU0< TypeTag >)
 
 Ewoms::Properties::SET_INT_PROP (ParallelBaseLinearSolver, LinearSolverOverlapSize, 2)
 set the default overlap size to 2
 
 Ewoms::Properties::SET_INT_PROP (ParallelBaseLinearSolver, LinearSolverMaxIterations, 1000)
 set the default number of maximum iterations for the linear solver
 

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:

SET_TYPE_PROP(YourTypeTag, PreconditionerWrapper,
Ewoms::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

Function Documentation

◆ NEW_PROP_TAG() [1/9]

Ewoms::Properties::NEW_PROP_TAG ( Scalar  )

Property to specify the type of scalar values.

The type of scalar values.

◆ NEW_PROP_TAG() [2/9]

Ewoms::Properties::NEW_PROP_TAG ( GlobalEqVector  )

Vector containing a quantity of for equation for each DOF of the whole grid.

Vector containing a quantity of for equation on the whole grid.

◆ NEW_PROP_TAG() [3/9]

Ewoms::Properties::NEW_PROP_TAG ( JacobianMatrix  )

Type of the global jacobian matrix.

Specifies the type of a global Jacobian matrix.

◆ NEW_PROP_TAG() [4/9]

Ewoms::Properties::NEW_PROP_TAG ( LinearSolverVerbosity  )

Specifies the verbosity of the linear solver.

By default it is 0, i.e. it doesn't print anything. Setting this property to 1 prints aggregated convergence rates, 2 prints the convergence rate of every iteration of the scheme.

◆ NEW_PROP_TAG() [5/9]

Ewoms::Properties::NEW_PROP_TAG ( NumEq  )

The number of balance equations.

Number of equations in the system of PDEs.

◆ NEW_PROP_TAG() [6/9]

Ewoms::Properties::NEW_PROP_TAG ( LinearSolverBackend  )

The type of the linear solver to be used.

Specifies the type of the linear solver to be used.

◆ NEW_PROP_TAG() [7/9]

Ewoms::Properties::NEW_PROP_TAG ( Simulator  )

Manages the simulation time.

The simulation management class of the simulation.

◆ NEW_PROP_TAG() [8/9]

Ewoms::Properties::NEW_PROP_TAG ( LinearSolverOverlapSize  )

The size of the algebraic overlap of the linear solver.

Algebraic overlaps can be thought as being the same as the overlap of a grid, but it is only existant for the linear system of equations.

◆ NEW_PROP_TAG() [9/9]

Ewoms::Properties::NEW_PROP_TAG ( BorderListCreator  )

The class which marks the border indices associated with the degrees of freedom on a process boundary.

This is required for the algebraic overlap stuff.