![]() |
Reference documentation for deal.II version 8.4.2
|
#include <deal.II/lac/precondition_block.h>
Public Types | |
| typedef types::global_dof_index | size_type |
| typedef MatrixType::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 |
Public Member Functions inherited from Subscriptor | |
| 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."<< "\"<< "(Additional information: "<< arg3<< ")\"<< "See the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "a lot more information on what this error means and "<< "how to fix programs in which it happens.") | |
| DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier <"<< arg2<< "> subscribes to this object of class "<< arg1<< ". Consequently, it cannot be unsubscribed.") | |
| template<class Archive > | |
| void | serialize (Archive &ar, const unsigned int version) |
Additional Inherited Members | |
Private Types inherited from PreconditionBlockSOR< MatrixType, inverse_type > | |
| typedef types::global_dof_index | size_type |
| typedef MatrixType::value_type | number |
Private Member Functions inherited from PreconditionBlockSOR< MatrixType, inverse_type > | |
| 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. This class satisfies the relaxation concept.
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 794 of file precondition_block.h.
| typedef types::global_dof_index PreconditionBlockSSOR< MatrixType, inverse_type >::size_type |
Declare type for container size.
Definition at line 801 of file precondition_block.h.
| typedef MatrixType::value_type PreconditionBlockSSOR< MatrixType, inverse_type >::number |
Define number type of matrix.
Definition at line 806 of file precondition_block.h.
| PreconditionBlockSSOR< MatrixType, inverse_type >::PreconditionBlockSSOR | ( | ) |
Constructor.
| template void PreconditionBlockSSOR< MatrixType, inverse_type >::vmult< double > | ( | Vector< number2 > & | , |
| const Vector< number2 > & | |||
| ) | 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.
| template void PreconditionBlockSSOR< MatrixType, inverse_type >::Tvmult< double > | ( | Vector< number2 > & | , |
| const Vector< number2 > & | |||
| ) | const |
Same as vmult()
| void PreconditionBlockSSOR< MatrixType, inverse_type >::step | ( | Vector< number2 > & | dst, |
| const Vector< number2 > & | rhs | ||
| ) | const |
Perform one step of the SOR iteration.
| void PreconditionBlockSSOR< MatrixType, inverse_type >::Tstep | ( | Vector< number2 > & | dst, |
| const Vector< number2 > & | rhs | ||
| ) | const |
Perform one step of the transposed SOR iteration.
1.8.12