KASKADE 7 development version
|
regularized preconditioned conjugate gradient method More...
#include <cgImplementation.hh>
regularized preconditioned conjugate gradient method
This implements a preconditioned IterateType::CG iteration for an operator \( A: X\to x^* \), preconditioned by a preconditioner \( B^{-1}: X^* \to X \). The termination is based on an estimate of the absolute energy error.
The implementation follows Deuflhard/Weiser, Section 5.3.3.
Definition at line 222 of file cgImplementation.hh.
Public Types | |
typedef ScalarTraits< typenameGetScalar< X >::type >::Real | Real |
the real field type corresponding to X::field_type or X::Scalar More... | |
Public Member Functions | |
CGBase (Dune::LinearOperator< X, Xstar > &op_, Dune::Preconditioner< X, Xstar > &prec_, DualPairing< X, Xstar > const &dp_, PCGTerminationCriterion< Real > &terminate_, int verbose_=0, double eps_=1e-15) | |
Set up conjugate gradient solver with termination criterion. More... | |
CGBase (Dune::LinearOperator< X, Xstar > &op_, Dune::Preconditioner< X, Xstar > &prec_, DualPairing< X, Xstar > const &dp_, PCGTerminationCriterion< Real > &terminate_, Functor f_, int verbose_=0, double eps_=1e-15) | |
void | apply (X &u, Xstar &b) |
virtual void | apply (X &u, Xstar &b, Real tolerance, Dune::InverseOperatorResult &res) |
virtual void | apply (X &u, Xstar &b, Dune::InverseOperatorResult &res) |
int | cgLoop (X &u, Xstar &b, Dune::InverseOperatorResult &res) |
bool | encounteredNonConvexity () const |
double | getSolutionEnergyNormEstimate () |
virtual Dune::SolverCategory::Category | category () const override |
returns the category of the operator More... | |
void | resumeMVTimer () |
void | resumeDPTimer () |
void | resumeAPTimer () |
void | resumePRTimer () |
void | stopMVTimer () |
void | stopDPTimer () |
void | stopAPTimer () |
void | stopPRTimer () |
void | printTimers () |
typedef ScalarTraits<typenameGetScalar<X>::type>::Real Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::Real |
the real field type corresponding to X::field_type or X::Scalar
Definition at line 233 of file cgImplementation.hh.
|
inline |
Set up conjugate gradient solver with termination criterion.
verbose |
Definition at line 240 of file cgImplementation.hh.
|
inline |
Definition at line 245 of file cgImplementation.hh.
|
inline |
Definition at line 251 of file cgImplementation.hh.
Referenced by Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::apply().
|
inlinevirtual |
Definition at line 269 of file cgImplementation.hh.
|
inlinevirtual |
u | initial guess |
b | right hand side |
tolerance | tolerance of the termination criterion |
res | contains, number of iterations, residual reduction, ... |
Definition at line 263 of file cgImplementation.hh.
|
inlineoverridevirtual |
returns the category of the operator
From the Dune doxygen documentation it is unclear what this is supposed to mean. We return a dummy here.
Definition at line 463 of file cgImplementation.hh.
|
inline |
Definition at line 297 of file cgImplementation.hh.
Referenced by Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::apply().
|
inline |
Definition at line 454 of file cgImplementation.hh.
|
inline |
Definition at line 456 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 102 of file cgImplementation.hh.
Referenced by Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::apply().
|
inlineinherited |
Definition at line 94 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 93 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 92 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 95 of file cgImplementation.hh.
Referenced by Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::cgLoop().
|
inlineinherited |
Definition at line 99 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 98 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 97 of file cgImplementation.hh.
|
inlineinherited |
Definition at line 100 of file cgImplementation.hh.
Referenced by Kaskade::CGBase< X, Xstar, impl, TimerPolicy, Functor >::cgLoop().