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.