Reference documentation for deal.II version 9.0.0
|
#include <deal.II/lac/precondition.h>
Classes | |
class | AdditionalData |
Public Types | |
typedef types::global_dof_index | size_type |
Public Member Functions | |
PreconditionRichardson () | |
void | initialize (const AdditionalData ¶meters) |
template<typename MatrixType > | |
void | initialize (const MatrixType &matrix, const AdditionalData ¶meters) |
template<class VectorType > | |
void | vmult (VectorType &, const VectorType &) const |
template<class VectorType > | |
void | Tvmult (VectorType &, const VectorType &) const |
template<class VectorType > | |
void | vmult_add (VectorType &, const VectorType &) const |
template<class VectorType > | |
void | Tvmult_add (VectorType &, const VectorType &) const |
void | clear () |
size_type | m () const |
size_type | n () const |
Public Member Functions inherited from Subscriptor | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (const char *identifier=nullptr) const |
void | unsubscribe (const char *identifier=nullptr) const |
unsigned int | n_subscriptions () const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
double | relaxation |
size_type | n_rows |
size_type | n_columns |
Additional Inherited Members | |
Static Public Member Functions inherited from Subscriptor | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Preconditioning with Richardson's method. This preconditioner just scales the vector with a constant relaxation factor provided by the AdditionalData object.
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 useful in multigrid smoother objects (MGSmootherRelaxation).
Definition at line 183 of file precondition.h.
Declare type for container size.
Definition at line 189 of file precondition.h.
PreconditionRichardson::PreconditionRichardson | ( | ) |
Constructor, sets the relaxation parameter, domain and range sizes to their default.
void PreconditionRichardson::initialize | ( | const AdditionalData & | parameters | ) |
Change the relaxation parameter.
void PreconditionRichardson::initialize | ( | const MatrixType & | matrix, |
const AdditionalData & | parameters | ||
) |
Change the relaxation 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 | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply preconditioner.
void PreconditionRichardson::Tvmult | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply transpose preconditioner. Since this is the identity, this function is the same as vmult().
void PreconditionRichardson::vmult_add | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply preconditioner, adding to the previous value.
void PreconditionRichardson::Tvmult_add | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply transpose preconditioner, adding. Since this is the identity, this function is the same as vmult_add().
|
inline |
This function is only present to provide the interface of a preconditioner to be handed to a smoother. This does nothing.
Definition at line 258 of file precondition.h.
size_type PreconditionRichardson::m | ( | ) | const |
Return the dimension of the codomain (or range) space. Note that the matrix is of dimension \(m \times n\).
size_type PreconditionRichardson::n | ( | ) | const |
Return the dimension of the domain space. Note that the matrix is of dimension \(m \times n\).
|
private |
The relaxation parameter multiplied with the vectors.
Definition at line 282 of file precondition.h.
|
private |
The dimension of the range space.
Definition at line 287 of file precondition.h.
|
private |
The dimension of the domain space.
Definition at line 292 of file precondition.h.