![]() |
Reference documentation for deal.II version 9.1.1
|
#include <deal.II/lac/precondition.h>
Classes | |
struct | AdditionalData |
Public Types | |
using | size_type = types::global_dof_index |
Public Member Functions | |
PreconditionIdentity () | |
template<typename MatrixType > | |
void | initialize (const MatrixType &matrix, const AdditionalData &additional_data=AdditionalData()) |
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 |
![]() | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
size_type | n_rows |
size_type | n_columns |
Additional Inherited Members | |
![]() | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
No preconditioning. This class helps you, if you want to use a linear solver without preconditioning. All solvers in LAC require a preconditioner. Therefore, you must use the identity provided here to avoid preconditioning. It can be used in the following way:
See the step-3 tutorial program for an example and additional explanations.
Alternatively, the IdentityMatrix class can be used to precondition in this way.
Definition at line 78 of file precondition.h.
Declare type for container size.
Definition at line 84 of file precondition.h.
PreconditionIdentity::PreconditionIdentity | ( | ) |
Constructor, sets the domain and range sizes to their defaults.
void PreconditionIdentity::initialize | ( | const MatrixType & | matrix, |
const AdditionalData & | additional_data = AdditionalData() |
||
) |
The matrix argument is ignored and here just for compatibility with more complex preconditioners.
void PreconditionIdentity::vmult | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply preconditioner.
void PreconditionIdentity::Tvmult | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply transpose preconditioner. Since this is the identity, this function is the same as vmult().
void PreconditionIdentity::vmult_add | ( | VectorType & | , |
const VectorType & | |||
) | const |
Apply preconditioner, adding to the previous value.
void PreconditionIdentity::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 147 of file precondition.h.
size_type PreconditionIdentity::m | ( | ) | const |
Return the dimension of the codomain (or range) space. Note that the matrix is of dimension \(m \times n\).
size_type PreconditionIdentity::n | ( | ) | const |
Return the dimension of the domain space. Note that the matrix is of dimension \(m \times n\).
|
private |
The dimension of the range space.
Definition at line 174 of file precondition.h.
|
private |
The dimension of the domain space.
Definition at line 179 of file precondition.h.