template<class X, class Xstar, class Regularization = NoRegularization>
class Kaskade::TCG< X, Xstar, Regularization >
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 79 of file tcg.hh.
|
template<class Int = int, class enable = typename std::enable_if<!std::is_same<Regularization,NoRegularization>::value && std::is_same<Int,int>::value>::type> |
| TCG (Dune::LinearOperator< X, Xstar > &op_, Dune::Preconditioner< X, Xstar > &prec_, DualPairing< X, Xstar > const &dp_, Regularization ®ularization_, double relTol_=1e-3, size_t maxSteps_=100, Int verbose_=0) |
| Set up conjugate gradient solver with absolute energy error termination criterion. More...
|
|
template<class Int = int, class enable = typename std::enable_if<std::is_same<Regularization,NoRegularization>::value && std::is_same<Int,int>::value>::type> |
| TCG (Dune::LinearOperator< X, Xstar > &op_, Dune::Preconditioner< X, Xstar > &prec_, DualPairing< X, Xstar > const &dp_, double relTol_=1e-3, size_t maxSteps_=100, Int verbose_=0) |
| Set up conjugate gradient solver with absolute energy error termination criterion. More...
|
|
virtual int | apply (X &u, X &q, Xstar &b, Dune::InverseOperatorResult &res) |
| Apply inverse operator. More...
|
|
virtual void | apply (X &u, Xstar &b, Dune::InverseOperatorResult &res) |
| Apply tcg and possibly forget second descent direction. More...
|
|
void | apply (X &u, Xstar &b) |
|
virtual void | apply (X &x, X &b, double relTol, Dune::InverseOperatorResult &res) |
| Apply inverse operator with given absolute tolerance. More...
|
|
void | setRelativeAccuracy (double relTol_) |
|
void | setMaxSteps (size_t maxSteps_) |
|
bool | localConvergenceLikely () const |
|
bool | encounteredNonConvexity () const |
|
template<class X , class Xstar , class Regularization = NoRegularization>
template<class Int = int, class enable = typename std::enable_if<!std::is_same<Regularization,NoRegularization>::value && std::is_same<Int,int>::value>::type>
Kaskade::TCG< X, Xstar, Regularization >::TCG |
( |
Dune::LinearOperator< X, Xstar > & |
op_, |
|
|
Dune::Preconditioner< X, Xstar > & |
prec_, |
|
|
DualPairing< X, Xstar > const & |
dp_, |
|
|
Regularization & |
regularization_, |
|
|
double |
relTol_ = 1e-3 , |
|
|
size_t |
maxSteps_ = 100 , |
|
|
Int |
verbose_ = 0 |
|
) |
| |
|
inline |
Set up conjugate gradient solver with absolute energy error termination criterion.
- Parameters
-
Definition at line 93 of file tcg.hh.
template<class X , class Xstar , class Regularization = NoRegularization>
template<class Int = int, class enable = typename std::enable_if<std::is_same<Regularization,NoRegularization>::value && std::is_same<Int,int>::value>::type>
Kaskade::TCG< X, Xstar, Regularization >::TCG |
( |
Dune::LinearOperator< X, Xstar > & |
op_, |
|
|
Dune::Preconditioner< X, Xstar > & |
prec_, |
|
|
DualPairing< X, Xstar > const & |
dp_, |
|
|
double |
relTol_ = 1e-3 , |
|
|
size_t |
maxSteps_ = 100 , |
|
|
Int |
verbose_ = 0 |
|
) |
| |
|
inline |
Set up conjugate gradient solver with absolute energy error termination criterion.
- Parameters
-
Definition at line 110 of file tcg.hh.