![]() |
Reference documentation for deal.II version 8.1.0
|
#include <precondition_block.h>
Public Types | |
typedef types::global_dof_index | size_type |
typedef MATRIX::value_type | number |
Public Member Functions | |
PreconditionBlockSSOR () | |
template<typename number2 > | |
void | vmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | Tvmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | step (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
template<typename number2 > | |
void | Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
![]() | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
void | subscribe (const char *identifier=0) const |
void | unsubscribe (const char *identifier=0) const |
unsigned int | n_subscriptions () const |
void | list_subscribers () const |
DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.") | |
DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1) | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Additional Inherited Members | |
![]() | |
typedef types::global_dof_index | size_type |
typedef MATRIX::value_type | number |
![]() | |
PreconditionBlockSOR () | |
template<typename number2 > | |
void | vmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | vmult_add (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | Tvmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | Tvmult_add (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | step (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
template<typename number2 > | |
void | Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
PreconditionBlockSOR (bool store) | |
template<typename number2 > | |
void | forward (Vector< number2 > &, const Vector< number2 > &, const bool transpose_diagonal, const bool adding) const |
template<typename number2 > | |
void | backward (Vector< number2 > &, const Vector< number2 > &, const bool transpose_diagonal, const bool adding) const |
Block SSOR preconditioning.
The functions vmult
and Tvmult
execute a block-SSOR step, based on the implementation in PreconditionBlockSOR. This class requires storage of the diagonal blocks and their inverses.
See PreconditionBlock for requirements on the matrix. The blocks used in this class must be contiguous and non-overlapping. An overlapping Schwarz relaxation method can be found in RelaxationBlockSSOR; that class does not offer preconditioning, though.
<float> and <double>
; others can be generated in application programs (see the section on Template instantiations in the manual).Definition at line 974 of file precondition_block.h.
typedef types::global_dof_index PreconditionBlockSSOR< MATRIX, inverse_type >::size_type |
Declare type for container size.
Definition at line 981 of file precondition_block.h.
typedef MATRIX::value_type PreconditionBlockSSOR< MATRIX, inverse_type >::number |
Define number type of matrix.
Definition at line 986 of file precondition_block.h.
PreconditionBlockSSOR< MATRIX, inverse_type >::PreconditionBlockSSOR | ( | ) |
Constructor.
Definition at line 979 of file precondition_block.templates.h.
void PreconditionBlockSSOR< MATRIX, inverse_type >::vmult | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Execute block SSOR preconditioning.
This function will automatically use the inverse matrices if they exist, if not then BlockSOR will waste much time inverting the diagonal block matrices in each preconditioning step.
Definition at line 987 of file precondition_block.templates.h.
void PreconditionBlockSSOR< MATRIX, inverse_type >::Tvmult | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Same as vmult()
Definition at line 1018 of file precondition_block.templates.h.
void PreconditionBlockSSOR< MATRIX, inverse_type >::step | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | rhs | ||
) | const |
Perform one step of the SOR iteration.
Definition at line 1051 of file precondition_block.templates.h.
void PreconditionBlockSSOR< MATRIX, inverse_type >::Tstep | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | rhs | ||
) | const |
Perform one step of the transposed SOR iteration.
Definition at line 1062 of file precondition_block.templates.h.