Reference documentation for deal.II version 9.3.3
|
#include <deal.II/multigrid/mg_matrix.h>
Public Member Functions | |
MGMatrixSelect (const unsigned int row=0, const unsigned int col=0, MGLevelObject< MatrixType > *matrix=0) | |
void | set_matrix (MGLevelObject< MatrixType > *M) |
void | select_block (const unsigned int row, const unsigned int col) |
virtual void | vmult (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const |
virtual void | vmult_add (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const |
virtual void | Tvmult (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const |
virtual void | Tvmult_add (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const |
virtual unsigned int | get_minlevel () const=0 |
virtual unsigned int | get_maxlevel () const=0 |
Private Attributes | |
SmartPointer< MGLevelObject< MatrixType >, MGMatrixSelect< MatrixType, number > > | matrix |
unsigned int | row |
unsigned int | col |
Subscriptor functionality | |
Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class. | |
std::atomic< unsigned int > | counter |
std::map< std::string, unsigned int > | counter_map |
std::vector< std::atomic< bool > * > | validity_pointers |
const std::type_info * | object_info |
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) |
using | map_value_type = decltype(counter_map)::value_type |
using | map_iterator = decltype(counter_map)::iterator |
static std::mutex | mutex |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
void | check_no_subscribers () const noexcept |
Multilevel matrix selecting from block matrices. This class implements the interface defined by MGMatrixBase. The template parameter MatrixType
should be a block matrix class like BlockSparseMatrix or BlockSparseMatrixEZ
. Then, this class stores a pointer to a MGLevelObject of this matrix class. In each vmult
, the block selected on initialization will be multiplied with the vector provided.
Definition at line 121 of file mg_matrix.h.
MGMatrixSelect< MatrixType, number >::MGMatrixSelect | ( | const unsigned int | row = 0 , |
const unsigned int | col = 0 , |
||
MGLevelObject< MatrixType > * | matrix = 0 |
||
) |
Constructor. row
and col
are the coordinate of the selected block. The other argument is handed over to the SmartPointer
constructor.
Definition at line 320 of file mg_matrix.h.
void MGMatrixSelect< MatrixType, number >::set_matrix | ( | MGLevelObject< MatrixType > * | M | ) |
Set the matrix object to be used. The matrix object must exist longer as the MGMatrixSelect
object, since only a pointer is stored.
Definition at line 332 of file mg_matrix.h.
void MGMatrixSelect< MatrixType, number >::select_block | ( | const unsigned int | row, |
const unsigned int | col | ||
) |
Select the block for multiplication.
Definition at line 341 of file mg_matrix.h.
|
virtual |
Matrix-vector-multiplication on a certain level.
Implements MGMatrixBase< Vector< number > >.
Definition at line 352 of file mg_matrix.h.
|
virtual |
Adding matrix-vector-multiplication on a certain level.
Implements MGMatrixBase< Vector< number > >.
Definition at line 366 of file mg_matrix.h.
|
virtual |
Transpose matrix-vector-multiplication on a certain level.
Implements MGMatrixBase< Vector< number > >.
Definition at line 380 of file mg_matrix.h.
|
virtual |
Adding transpose matrix-vector-multiplication on a certain level.
Implements MGMatrixBase< Vector< number > >.
Definition at line 394 of file mg_matrix.h.
|
pure virtualinherited |
Return the minimal level for which matrices are stored.
|
pure virtualinherited |
Return the minimal level for which matrices are stored.
|
private |
Pointer to the matrix objects on each level.
Definition at line 182 of file mg_matrix.h.
|
private |
Row coordinate of selected block.
Definition at line 186 of file mg_matrix.h.
|
private |
Column coordinate of selected block.
Definition at line 190 of file mg_matrix.h.