|
template<class L , class P > |
| GeneralizedPCGSolver (L &op, P &prec, real_type reduction, int maxit, int verbose, int restart=10) |
| Set up nonlinear preconditioned conjugate gradient solver. More...
|
|
template<class L , class P , class S > |
| GeneralizedPCGSolver (L &op, S &sp, P &prec, real_type reduction, int maxit, int verbose, int restart=10) |
| Set up nonlinear preconditioned conjugate gradient solver. More...
|
|
virtual void | apply (X &x, X &b, Dune::InverseOperatorResult &res) |
| Apply inverse operator. More...
|
|
virtual const
Ewoms::ConvergenceCriterion< X > & | convergenceCriterion () const |
| Return the criterion to be used to check for convergence of the linear solver. More...
|
|
virtual
Ewoms::ConvergenceCriterion< X > & | convergenceCriterion () |
| Return the criterion to be used to check for convergence of the linear solver. More...
|
|
virtual void | setConvergenceCriterion (std::shared_ptr< Ewoms::ConvergenceCriterion< X > > convCrit) |
| Set the criterion to be used to check for convergence of the linear solver. More...
|
|
template<class X>
class Ewoms::GeneralizedPCGSolver< X >
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.