![]() |
Reference documentation for deal.II version 9.2.0
|
#include <deal.II/multigrid/mg_block_smoother.h>
Public Member Functions | |
| MGSmootherBlock (const unsigned int steps=1, const bool variable=false, const bool symmetric=false, const bool transpose=false, const bool reverse=false) | |
| template<class MGMatrixType , class MGRelaxationType > | |
| void | initialize (const MGMatrixType &matrices, const MGRelaxationType &smoothers) |
| void | clear () |
| void | set_reverse (const bool) |
| virtual void | smooth (const unsigned int level, BlockVector< number > &u, const BlockVector< number > &rhs) const |
| std::size_t | memory_consumption () const |
Public Member Functions inherited from MGSmoother< BlockVector< number > > | |
| MGSmoother (const unsigned int steps=1, const bool variable=false, const bool symmetric=false, const bool transpose=false) | |
| void | set_steps (const unsigned int) |
| void | set_variable (const bool) |
| void | set_symmetric (const bool) |
| void | set_transpose (const bool) |
| void | set_debug (const unsigned int level) |
Public Member Functions inherited from MGSmootherBase< BlockVector< number > > | |
| virtual | ~MGSmootherBase () override=default |
| virtual void | apply (const unsigned int level, BlockVector< number > &u, const BlockVector< number > &rhs) 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 (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 | |
| MGLevelObject< LinearOperator< BlockVector< number > > > | matrices |
| MGLevelObject< LinearOperator< BlockVector< number > > > | smoothers |
| bool | reverse |
| SmartPointer< VectorMemory< BlockVector< number > >, MGSmootherBlock< MatrixType, RelaxationType, number > > | mem |
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) |
Protected Attributes inherited from MGSmoother< BlockVector< number > > | |
| GrowingVectorMemory< BlockVector< number > > | vector_memory |
| unsigned int | steps |
| bool | variable |
| bool | symmetric |
| bool | transpose |
| unsigned int | debug |
General smoother class for block vectors. This class gives complete freedom to the choice of a block smoother by being initialized with a matrix and a smoother object. Therefore, the smoother object for each level must be constructed by hand.
Definition at line 51 of file mg_block_smoother.h.
| MGSmootherBlock< MatrixType, RelaxationType, number >::MGSmootherBlock | ( | const unsigned int | steps = 1, |
| const bool | variable = false, |
||
| const bool | symmetric = false, |
||
| const bool | transpose = false, |
||
| const bool | reverse = false |
||
| ) |
Constructor.
| void MGSmootherBlock< MatrixType, RelaxationType, number >::initialize | ( | const MGMatrixType & | matrices, |
| const MGRelaxationType & | smoothers | ||
| ) |
Initialize for matrices. The parameter matrices can be any object having functions get_minlevel() and get_maxlevel() as well as an operator[] returning a reference to MatrixType.
The same convention is used for the parameter smoothers, such that operator[] returns the object doing the block-smoothing on a single level.
This function stores pointers to the level matrices and smoothing operator for each level.
|
virtual |
Empty all vectors.
Implements MGSmootherBase< BlockVector< number > >.
| void MGSmootherBlock< MatrixType, RelaxationType, number >::set_reverse | ( | const bool | ) |
Switch on/off reversed. This is mutually exclusive with transpose().
|
virtual |
Implementation of the interface for Multigrid. This function does nothing, which by comparison with the definition of this function means that the smoothing operator equals the null operator.
Implements MGSmootherBase< BlockVector< number > >.
| std::size_t MGSmootherBlock< MatrixType, RelaxationType, number >::memory_consumption | ( | ) | const |
Memory used by this object.
|
private |
Pointer to the matrices.
Definition at line 112 of file mg_block_smoother.h.
|
private |
Pointer to the matrices.
Definition at line 117 of file mg_block_smoother.h.
|
private |
Reverse?
Definition at line 122 of file mg_block_smoother.h.
|
private |
Memory for auxiliary vectors.
Definition at line 129 of file mg_block_smoother.h.