Public Member Functions | |
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 |
SolverControl solver_control (1000, 1e-12); SolverCG<> cg (solver_control); cg.solve (system_matrix, solution, system_rhs, PreconditionIdentity());
See the step-3 tutorial program for an example and additional explanations.
Alternatively, the IdentityMatrix class can be used to precondition in this way.
void PreconditionIdentity::vmult | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply preconditioner.
void PreconditionIdentity::Tvmult | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply transpose preconditioner. Since this is the identity, this function is the same as vmult().
void PreconditionIdentity::vmult_add | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply preconditioner, adding to the previous value.
void PreconditionIdentity::Tvmult_add | ( | VECTOR & | , | |
const VECTOR & | ||||
) | const [inline] |
Apply transpose preconditioner, adding. Since this is the identity, this function is the same as vmult_add().