CPR preconditioner.
More...
#include <CPRPreconditioner.hpp>
|
enum | { category
} |
|
typedef P | ParallelInformation |
| The type describing the parallel information. More...
|
|
typedef Dune::remove_const< M >
::type | matrix_type |
| The matrix type the preconditioner is for. More...
|
|
typedef X | domain_type |
| The domain type of the preconditioner. More...
|
|
typedef Y | range_type |
| The range type of the preconditioner. More...
|
|
typedef X::field_type | field_type |
| The field type of the preconditioner. More...
|
|
typedef CPRSelector< M, X, X,
P >::Operator | Operator |
| Elliptic Operator. More...
|
|
typedef Dune::Preconditioner
< X, X > | WholeSystemPreconditioner |
| preconditioner for the whole system (here either ILU(0) or ILU(n) More...
|
|
typedef CPRSelector< M, X, X,
P >
::EllipticPreconditionerPointer | EllipticPreconditionerPointer |
| type of the unique pointer to the ilu-0 preconditioner used the for the elliptic system More...
|
|
typedef CPRSelector< M, X, X,
P >::AMG | AMG |
| amg preconditioner for the elliptic system More...
|
|
template<class M, class X, class Y, class P = Dune::Amg::SequentialInformation>
class Opm::CPRPreconditioner< M, X, Y, P >
CPR preconditioner.
This is a two-stage preconditioner, combining an elliptic-type partial solution with ILU0 for the whole system.
- Template Parameters
-
M | The matrix type to operate on |
X | Type of the update |
Y | Type of the defect |
P | Type of the parallel information. If not provided this will be Dune::Amg::SequentialInformation. The preconditioner is parallel if this is Dune::OwnerOverlapCopyCommunication<int,int> |
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
amg preconditioner for the elliptic system
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The domain type of the preconditioner.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
type of the unique pointer to the ilu-0 preconditioner used the for the elliptic system
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The field type of the preconditioner.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The matrix type the preconditioner is for.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The type describing the parallel information.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The range type of the preconditioner.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
preconditioner for the whole system (here either ILU(0) or ILU(n)
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
Enumerator |
---|
category |
The category the preconditioner is part of.
|
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
Constructor.
Constructor gets all parameters to operate the prec. - Parameters
-
A | The matrix to operate on. |
Ae | The top-left elliptic part of A. |
relax | The ILU0 relaxation factor. |
useAMG | if true, AMG is used as a preconditioner for the elliptic sub-system, otherwise ilu-0 (default) |
useBiCG | if true, BiCG solver is used (default), otherwise CG solver |
paralleInformation | The information about the parallelization, if this is a parallel run |
References Opm::CPRPreconditioner< M, X, Y, P >::A_, Opm::CPRPreconditioner< M, X, Y, P >::comm_, Opm::CPRPreconditioner< M, X, Y, P >::commAe_, Opm::CPRParameter::cpr_ilu_n_, Opm::CPRParameter::cpr_relax_, Opm::CPRParameter::cpr_use_amg_, Opm::CPRPreconditioner< M, X, Y, P >::createEllipticPreconditioner(), Opm::CPRPreconditioner< M, X, Y, P >::param_, and Opm::CPRPreconditioner< M, X, Y, P >::pre_.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
Apply the preconditoner.
References Opm::CPRPreconditioner< M, X, Y, P >::A_, Opm::CPRPreconditioner< M, X, Y, P >::comm_, Opm::CPRParameter::cpr_relax_, Opm::CPRPreconditioner< M, X, Y, P >::de_, Opm::CPRPreconditioner< M, X, Y, P >::dmodified_, Opm::CPRPreconditioner< M, X, Y, P >::param_, Opm::CPRPreconditioner< M, X, Y, P >::pre_, Opm::CPRPreconditioner< M, X, Y, P >::solveElliptic(), Opm::CPRPreconditioner< M, X, Y, P >::ve_, and Opm::CPRPreconditioner< M, X, Y, P >::vilu_.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
Prepare the preconditioner.
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
References Opm::CPRPreconditioner< M, X, Y, P >::amg_, Opm::CPRPreconditioner< M, X, Y, P >::comm_, Opm::CPRPreconditioner< M, X, Y, P >::commAe_, Opm::CPRParameter::cpr_max_ell_iter_, Opm::CPRParameter::cpr_solver_tol_, Opm::CPRParameter::cpr_solver_verbose_, Opm::CPRParameter::cpr_use_bicgstab_, Opm::CPRPreconditioner< M, X, Y, P >::opAe_, Opm::CPRPreconditioner< M, X, Y, P >::param_, and Opm::CPRPreconditioner< M, X, Y, P >::precond_.
Referenced by Opm::CPRPreconditioner< M, X, Y, P >::apply().
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The information about the parallelization of the whole system.
Referenced by Opm::CPRPreconditioner< M, X, Y, P >::apply(), Opm::CPRPreconditioner< M, X, Y, P >::CPRPreconditioner(), and Opm::CPRPreconditioner< M, X, Y, P >::solveElliptic().
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
Parameter collection for CPR.
Referenced by Opm::CPRPreconditioner< M, X, Y, P >::apply(), Opm::CPRPreconditioner< M, X, Y, P >::CPRPreconditioner(), and Opm::CPRPreconditioner< M, X, Y, P >::solveElliptic().
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
template<class M , class X , class Y , class P = Dune::Amg::SequentialInformation>
The documentation for this class was generated from the following file:
|