Classes | |
class | AdditionalData |
Public Member Functions | |
PreconditionRichardson () | |
void | initialize (const AdditionalData parameters) |
template<class MATRIX > | |
void | initialize (const MATRIX &, const AdditionalData parameters) |
template<class VECTOR > | |
void | vmult (VECTOR &, const VECTOR &) const |
template<class VECTOR > | |
void | Tvmult (VECTOR &, const VECTOR &) const |
template<class VECTOR > | |
void | vmult_add (VECTOR &, const VECTOR &) const |
template<class VECTOR > | |
void | Tvmult_add (VECTOR &, const VECTOR &) const |
Private Attributes | |
double | relaxation |
In Krylov-space methods, this preconditioner should not have any effect. Using SolverRichardson, the two relaxation parameters will be just multiplied. Still, this class is usefull in multigrid smoother objects (MGSmootherRelaxation).
PreconditionRichardson::PreconditionRichardson | ( | ) |
Constructor, sets the relaxation parameter to its default.
void PreconditionRichardson::initialize | ( | const AdditionalData | parameters | ) |
Change the relaxaton parameter.
void PreconditionRichardson::initialize | ( | const MATRIX & | , | |
const AdditionalData | parameters | |||
) | [inline] |
Change the relaxaton parameter in a way consistent with other preconditioners. The matrix argument is ignored and here just for compatibility with more complex preconditioners.
void PreconditionRichardson::vmult | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply preconditioner.
void PreconditionRichardson::Tvmult | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply transpose preconditioner. Since this is the identity, this function is the same as vmult().
void PreconditionRichardson::vmult_add | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply preconditioner, adding to the previous value.
void PreconditionRichardson::Tvmult_add | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply transpose preconditioner, adding. Since this is the identity, this function is the same as vmult_add().
double PreconditionRichardson::relaxation [private] |
The relaxation parameter multiplied with the vectors.