![]() |
Reference documentation for deal.II version 9.1.1
|
#include <deal.II/lac/matrix_lib.h>
Public Types | |
using | size_type = types::global_dof_index |
Public Member Functions | |
MeanValueFilter (const size_type component=numbers::invalid_size_type) | |
template<typename number > | |
void | filter (Vector< number > &v) const |
template<typename number > | |
void | filter (BlockVector< number > &v) const |
template<typename number > | |
void | vmult (Vector< number > &dst, const Vector< number > &src) const |
template<typename number > | |
void | vmult_add (Vector< number > &dst, const Vector< number > &src) const |
template<typename number > | |
void | vmult (BlockVector< number > &dst, const BlockVector< number > &src) const |
template<typename number > | |
void | vmult_add (BlockVector< number > &dst, const BlockVector< number > &src) const |
template<typename VectorType > | |
void | Tvmult (VectorType &, const VectorType &) const |
template<typename VectorType > | |
void | Tvmult_add (VectorType &, const VectorType &) 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 | |
const size_type | component |
Additional Inherited Members | |
![]() | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Mean value filter. The vmult() functions of this matrix filter out mean values of the vector. If the vector is of type BlockVector, then an additional parameter selects a single component for this operation.
In mathematical terms, this class acts as if it was the matrix \(I-\frac 1n{\mathbf 1}_n{\mathbf 1}_n^T\) where \({\mathbf 1}_n\) is a vector of size \(n\) that has only ones as its entries. Thus, taking the dot product between a vector \(\mathbf v\) and \(\frac 1n {\mathbf 1}_n\) yields the mean value of the entries of \({\mathbf v}\). Consequently, \( \left[I-\frac 1n{\mathbf 1}_n{\mathbf 1}_n^T\right] \mathbf v = \mathbf v - \left[\frac 1n {\mathbf v} \cdot {\mathbf 1}_n\right]{\mathbf 1}_n\) subtracts from every vector element the mean value of all elements.
Definition at line 58 of file matrix_lib.h.
Declare type for container size.
Definition at line 64 of file matrix_lib.h.
MeanValueFilter::MeanValueFilter | ( | const size_type | component = numbers::invalid_size_type | ) |
Constructor, optionally selecting a component.
Definition at line 21 of file matrix_lib.cc.
void MeanValueFilter::filter | ( | Vector< number > & | v | ) | const |
Subtract mean value from v
.
void MeanValueFilter::filter | ( | BlockVector< number > & | v | ) | const |
Subtract mean value from v
.
void MeanValueFilter::vmult | ( | Vector< number > & | dst, |
const Vector< number > & | src | ||
) | const |
Return the source vector with subtracted mean value.
void MeanValueFilter::vmult_add | ( | Vector< number > & | dst, |
const Vector< number > & | src | ||
) | const |
Add source vector with subtracted mean value to dest.
void MeanValueFilter::vmult | ( | BlockVector< number > & | dst, |
const BlockVector< number > & | src | ||
) | const |
Return the source vector with subtracted mean value in selected component.
void MeanValueFilter::vmult_add | ( | BlockVector< number > & | dst, |
const BlockVector< number > & | src | ||
) | const |
Add a source to dest, where the mean value in the selected component is subtracted.
|
inline |
Not implemented.
Definition at line 145 of file matrix_lib.h.
|
inline |
Not implemented.
Definition at line 153 of file matrix_lib.h.
|
private |
Component for filtering block vectors.
Definition at line 134 of file matrix_lib.h.