dune-istl 2.10
|
Generalized preconditioned conjugate gradient solver. More...
#include <dune/istl/solvers.hh>
Public Types | |
typedef X | domain_type |
Type of the domain of the operator to be inverted. | |
typedef X | range_type |
Type of the range of the operator to be inverted. | |
typedef X::field_type | field_type |
The field type of the operator. | |
typedef FieldTraits< field_type >::real_type | real_type |
The real type of the field type (is the same if using real numbers, but differs for std::complex) | |
typedef Simd::Scalar< real_type > | scalar_real_type |
scalar type underlying the field_type | |
Public Member Functions | |
GeneralizedPCGSolver (const LinearOperator< X, X > &op, Preconditioner< X, X > &prec, scalar_real_type reduction, int maxit, int verbose, int restart=10) | |
Set up nonlinear preconditioned conjugate gradient solver. | |
GeneralizedPCGSolver (const LinearOperator< X, X > &op, const ScalarProduct< X > &sp, Preconditioner< X, X > &prec, scalar_real_type reduction, int maxit, int verbose, int restart=10) | |
Set up nonlinear preconditioned conjugate gradient solver. | |
GeneralizedPCGSolver (std::shared_ptr< const LinearOperator< X, X > > op, std::shared_ptr< Preconditioner< X, X > > prec, const ParameterTree &configuration) | |
Constructor. | |
GeneralizedPCGSolver (std::shared_ptr< const LinearOperator< X, X > > op, std::shared_ptr< const ScalarProduct< X > > sp, std::shared_ptr< Preconditioner< X, X > > prec, const ParameterTree &configuration) | |
GeneralizedPCGSolver (std::shared_ptr< const LinearOperator< X, X > > op, std::shared_ptr< const ScalarProduct< X > > sp, std::shared_ptr< Preconditioner< X, X > > prec, scalar_real_type reduction, int maxit, int verbose, int restart=10) | |
Set up nonlinear preconditioned conjugate gradient solver. | |
virtual void | apply (X &x, X &b, InverseOperatorResult &res) |
Apply inverse operator. | |
virtual void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) |
Apply inverse operator with given reduction factor. | |
virtual SolverCategory::Category | category () const |
Category of the solver (see SolverCategory::Category) | |
std::string | name () const |
Protected Types | |
enum | |
Protected Member Functions | |
void | printHeader (std::ostream &s) const |
helper function for printing header of solver output | |
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm, const DataType &norm_old) const |
helper function for printing solver output | |
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const |
helper function for printing solver output | |
Protected Attributes | |
std::shared_ptr< const LinearOperator< X, X > > | _op |
std::shared_ptr< Preconditioner< X, X > > | _prec |
std::shared_ptr< const ScalarProduct< X > > | _sp |
scalar_real_type | _reduction |
int | _maxit |
int | _verbose |
SolverCategory::Category | _category |
Generalized preconditioned conjugate gradient solver.
A preconditioned conjugate gradient that allows the preconditioner to change between iterations.
One example for such preconditioner is AMG when used without a direct coarse solver. In this case the number of iterations performed on the coarsest level might change between applications.
In contrast to CGSolver the search directions are stored and the orthogonalization is done explicitly.
|
inherited |
Type of the domain of the operator to be inverted.
|
inherited |
The field type of the operator.
|
inherited |
Type of the range of the operator to be inverted.
|
inherited |
The real type of the field type (is the same if using real numbers, but differs for std::complex)
|
inherited |
scalar type underlying the field_type
|
protectedinherited |
|
inline |
Set up nonlinear preconditioned conjugate gradient solver.
restart | number of GMRes cycles before restart |
|
inline |
Set up nonlinear preconditioned conjugate gradient solver.
restart | When to restart the construction of the Krylov search space. |
|
inline |
Constructor.
Additional parameter:
ParameterTree Key | Meaning |
---|---|
restart | number of PCG cycles before restart |
See ISTL_Factory for the ParameterTree layout and examples.
|
inline |
|
inline |
Set up nonlinear preconditioned conjugate gradient solver.
restart | When to restart the construction of the Krylov search space. |
|
inlinevirtual |
Apply inverse operator.
Apply inverse operator,.
x | The left hand side to store the result in. |
b | The right hand side |
res | Object to store the statistics about applying the operator. |
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
|
inlinevirtualinherited |
Apply inverse operator with given reduction factor.
apply inverse operator, with given convergence criteria.
x | The left hand side to store the result in. |
b | The right hand side |
reduction | The minimum defect reduction to achieve. |
res | Object to store the statistics about applying the operator. |
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
Reimplemented in Dune::RestartedGMResSolver< X, X >.
|
inlinevirtualinherited |
Category of the solver (see SolverCategory::Category)
Implements Dune::InverseOperator< X, X >.
|
inlineinherited |
|
inlineprotectedinherited |
helper function for printing header of solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |