Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Modules | Classes | Typedefs | Functions | Variables

These matrices are built on top of the basic matrices. They perform special operations using the interface defined by the MatrixType concept. More...

Collaboration diagram for Derived matrices:

Modules

 Exceptions and assertions
 This module contains classes that are used in the exception mechanism of deal.II.
 

Classes

class  BlockMatrixArray< number, BlockVectorType >
 
class  BlockMatrixArray< number, BlockVectorType >::Entry
 
class  BlockTrianglePrecondition< number, BlockVectorType >
 
class  FilteredMatrix< VectorType >
 
struct  FilteredMatrix< VectorType >::PairComparison
 
class  FilteredMatrix< VectorType >::const_iterator
 
class  FilteredMatrix< VectorType >::Accessor
 
class  Householder< number >
 
class  MatrixBlock< MatrixType >
 
class  MeanValueFilter
 
class  PointerMatrixBase< VectorType >
 
class  PointerMatrix< MatrixType, VectorType >
 
class  PointerMatrixAux< MatrixType, VectorType >
 
class  PointerMatrixVector< number >
 

Typedefs

using BlockMatrixArray< number, BlockVectorType >::size_type = types::global_dof_index
 
using BlockTrianglePrecondition< number, BlockVectorType >::size_type = types::global_dof_index
 
using FilteredMatrix< VectorType >::size_type = types::global_dof_index
 
using FilteredMatrix< VectorType >::IndexValuePair = std::pair< size_type, double >
 
using Householder< number >::size_type = types::global_dof_index
 
using MeanValueFilter::size_type = types::global_dof_index
 
using PointerMatrixBase< VectorType >::value_type = typename VectorType::value_type
 

Functions

 BlockMatrixArray< number, BlockVectorType >::BlockMatrixArray ()
 
 BlockMatrixArray< number, BlockVectorType >::BlockMatrixArray (const unsigned int n_block_rows, const unsigned int n_block_cols)
 
void BlockMatrixArray< number, BlockVectorType >::initialize (const unsigned int n_block_rows, const unsigned int n_block_cols)
 
void BlockMatrixArray< number, BlockVectorType >::reinit (const unsigned int n_block_rows, const unsigned int n_block_cols)
 
template<typename MatrixType >
void BlockMatrixArray< number, BlockVectorType >::enter (const MatrixType &matrix, const unsigned int row, const unsigned int col, const number prefix=1., const bool transpose=false)
 
void BlockMatrixArray< number, BlockVectorType >::clear ()
 
unsigned int BlockMatrixArray< number, BlockVectorType >::n_block_rows () const
 
unsigned int BlockMatrixArray< number, BlockVectorType >::n_block_cols () const
 
void BlockMatrixArray< number, BlockVectorType >::vmult (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockMatrixArray< number, BlockVectorType >::vmult_add (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockMatrixArray< number, BlockVectorType >::Tvmult (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockMatrixArray< number, BlockVectorType >::Tvmult_add (BlockVectorType &dst, const BlockVectorType &src) const
 
number BlockMatrixArray< number, BlockVectorType >::matrix_scalar_product (const BlockVectorType &u, const BlockVectorType &v) const
 
number BlockMatrixArray< number, BlockVectorType >::matrix_norm_square (const BlockVectorType &u) const
 
template<class StreamType >
void BlockMatrixArray< number, BlockVectorType >::print_latex (StreamType &out) const
 
template<typename MatrixType >
 BlockMatrixArray< number, BlockVectorType >::Entry::Entry (const MatrixType &matrix, size_type row, size_type col, number prefix, bool transpose)
 
 BlockMatrixArray< number, BlockVectorType >::Entry::Entry (const Entry &)
 
 BlockMatrixArray< number, BlockVectorType >::Entry::~Entry ()
 
EntryBlockMatrixArray< number, BlockVectorType >::Entry::operator= (const Entry &)=delete
 
 BlockTrianglePrecondition< number, BlockVectorType >::BlockTrianglePrecondition ()
 
 BlockTrianglePrecondition< number, BlockVectorType >::BlockTrianglePrecondition (const unsigned int n_blocks)
 
void BlockTrianglePrecondition< number, BlockVectorType >::reinit (const unsigned int n_block_rows)
 
template<typename MatrixType >
void BlockTrianglePrecondition< number, BlockVectorType >::enter (const MatrixType &matrix, const size_type row, const size_type col, const number prefix=1., const bool transpose=false)
 
void BlockTrianglePrecondition< number, BlockVectorType >::vmult (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockTrianglePrecondition< number, BlockVectorType >::vmult_add (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockTrianglePrecondition< number, BlockVectorType >::Tvmult (BlockVectorType &dst, const BlockVectorType &src) const
 
void BlockTrianglePrecondition< number, BlockVectorType >::Tvmult_add (BlockVectorType &dst, const BlockVectorType &src) const
 
 FilteredMatrix< VectorType >::Accessor::Accessor (const FilteredMatrix< VectorType > *matrix, const size_type index)
 
size_type FilteredMatrix< VectorType >::Accessor::row () const
 
size_type FilteredMatrix< VectorType >::Accessor::column () const
 
double FilteredMatrix< VectorType >::Accessor::value () const
 
void FilteredMatrix< VectorType >::Accessor::advance ()
 
 FilteredMatrix< VectorType >::const_iterator::const_iterator (const FilteredMatrix< VectorType > *matrix, const size_type index)
 
const_iteratorFilteredMatrix< VectorType >::const_iterator::operator++ ()
 
const_iteratorFilteredMatrix< VectorType >::const_iterator::operator++ (int)
 
const AccessorFilteredMatrix< VectorType >::const_iterator::operator* () const
 
const AccessorFilteredMatrix< VectorType >::const_iterator::operator-> () const
 
bool FilteredMatrix< VectorType >::const_iterator::operator== (const const_iterator &) const
 
bool FilteredMatrix< VectorType >::const_iterator::operator!= (const const_iterator &) const
 
bool FilteredMatrix< VectorType >::const_iterator::operator< (const const_iterator &) const
 
bool FilteredMatrix< VectorType >::const_iterator::operator> (const const_iterator &) const
 
bool FilteredMatrix< VectorType >::PairComparison::operator() (const IndexValuePair &i1, const IndexValuePair &i2) const
 
 Householder< number >::Householder ()=default
 
template<typename number2 >
 Householder< number >::Householder (const FullMatrix< number2 > &A)
 
template<typename number2 >
void Householder< number >::initialize (const FullMatrix< number2 > &A)
 
template<typename number2 >
double Householder< number >::least_squares (Vector< number2 > &dst, const Vector< number2 > &src) const
 
template<typename number2 >
double Householder< number >::least_squares (BlockVector< number2 > &dst, const BlockVector< number2 > &src) const
 
template<class VectorType >
void Householder< number >::vmult (VectorType &dst, const VectorType &src) const
 
template<class VectorType >
void Householder< number >::Tvmult (VectorType &dst, const VectorType &src) const
 
 MeanValueFilter::MeanValueFilter (const size_type component=numbers::invalid_size_type)
 
template<typename number >
void MeanValueFilter::filter (Vector< number > &v) const
 
template<typename number >
void MeanValueFilter::filter (BlockVector< number > &v) const
 
template<typename number >
void MeanValueFilter::vmult (Vector< number > &dst, const Vector< number > &src) const
 
template<typename number >
void MeanValueFilter::vmult_add (Vector< number > &dst, const Vector< number > &src) const
 
template<typename number >
void MeanValueFilter::vmult (BlockVector< number > &dst, const BlockVector< number > &src) const
 
template<typename number >
void MeanValueFilter::vmult_add (BlockVector< number > &dst, const BlockVector< number > &src) const
 
template<typename VectorType >
void MeanValueFilter::Tvmult (VectorType &, const VectorType &) const
 
template<typename VectorType >
void MeanValueFilter::Tvmult_add (VectorType &, const VectorType &) const
 
virtual PointerMatrixBase< VectorType >::~PointerMatrixBase () override=default
 
virtual void PointerMatrixBase< VectorType >::clear ()=0
 
virtual void PointerMatrixBase< VectorType >::vmult (VectorType &dst, const VectorType &src) const =0
 
virtual void PointerMatrixBase< VectorType >::Tvmult (VectorType &dst, const VectorType &src) const =0
 
virtual void PointerMatrixBase< VectorType >::vmult_add (VectorType &dst, const VectorType &src) const =0
 
virtual void PointerMatrixBase< VectorType >::Tvmult_add (VectorType &dst, const VectorType &src) const =0
 
 PointerMatrix< MatrixType, VectorType >::PointerMatrix (const MatrixType *M=nullptr)
 
 PointerMatrix< MatrixType, VectorType >::PointerMatrix (const char *name)
 
 PointerMatrix< MatrixType, VectorType >::PointerMatrix (const MatrixType *M, const char *name)
 
virtual void PointerMatrix< MatrixType, VectorType >::clear () override
 
bool PointerMatrix< MatrixType, VectorType >::empty () const
 
const PointerMatrixPointerMatrix< MatrixType, VectorType >::operator= (const MatrixType *M)
 
virtual void PointerMatrix< MatrixType, VectorType >::vmult (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrix< MatrixType, VectorType >::Tvmult (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrix< MatrixType, VectorType >::vmult_add (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrix< MatrixType, VectorType >::Tvmult_add (VectorType &dst, const VectorType &src) const override
 
 PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux (VectorMemory< VectorType > *mem=0, const MatrixType *M=0)
 
 PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux (VectorMemory< VectorType > *mem, const char *name)
 
 PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux (VectorMemory< VectorType > *mem, const MatrixType *M, const char *name)
 
virtual void PointerMatrixAux< MatrixType, VectorType >::clear () override
 
bool PointerMatrixAux< MatrixType, VectorType >::empty () const
 
void PointerMatrixAux< MatrixType, VectorType >::set_memory (VectorMemory< VectorType > *mem)
 
const PointerMatrixAuxPointerMatrixAux< MatrixType, VectorType >::operator= (const MatrixType *M)
 
virtual void PointerMatrixAux< MatrixType, VectorType >::vmult (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrixAux< MatrixType, VectorType >::Tvmult (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrixAux< MatrixType, VectorType >::vmult_add (VectorType &dst, const VectorType &src) const override
 
virtual void PointerMatrixAux< MatrixType, VectorType >::Tvmult_add (VectorType &dst, const VectorType &src) const override
 
 PointerMatrixVector< number >::PointerMatrixVector (const Vector< number > *M=0)
 
 PointerMatrixVector< number >::PointerMatrixVector (const char *name)
 
 PointerMatrixVector< number >::PointerMatrixVector (const Vector< number > *M, const char *name)
 
virtual void PointerMatrixVector< number >::clear ()
 
bool PointerMatrixVector< number >::empty () const
 
const PointerMatrixVectorPointerMatrixVector< number >::operator= (const Vector< number > *M)
 
virtual void PointerMatrixVector< number >::vmult (Vector< number > &dst, const Vector< number > &src) const
 
virtual void PointerMatrixVector< number >::Tvmult (Vector< number > &dst, const Vector< number > &src) const
 
virtual void PointerMatrixVector< number >::vmult_add (Vector< number > &dst, const Vector< number > &src) const
 
virtual void PointerMatrixVector< number >::Tvmult_add (Vector< number > &dst, const Vector< number > &src) const
 
template<typename VectorType , typename MatrixType >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (MatrixType &matrix, const VectorType &, const char *name="PointerMatrixAux")
 
template<typename numberv >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const IdentityMatrix &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const FullMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const LAPACKFullMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const SparseMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (const BlockSparseMatrix< numberm > &matrix, const VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const SparseMatrixEZ< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (const BlockSparseMatrixEZ< numberm > &matrix, const VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm , typename BLOCK_VectorType >
PointerMatrixBase< BLOCK_VectorType > * new_pointer_matrix_base (const BlockMatrixArray< numberm, BLOCK_VectorType > &matrix, const BLOCK_VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const TridiagonalMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename VectorType , typename MatrixType >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (MatrixType &matrix, const VectorType &, const char *name="PointerMatrixAux")
 
template<typename numberv >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const IdentityMatrix &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const FullMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const LAPACKFullMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const SparseMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (const BlockSparseMatrix< numberm > &matrix, const VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const SparseMatrixEZ< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 
template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base (const BlockSparseMatrixEZ< numberm > &matrix, const VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm , typename BLOCK_VectorType >
PointerMatrixBase< BLOCK_VectorType > * new_pointer_matrix_base (const BlockMatrixArray< numberm, BLOCK_VectorType > &matrix, const BLOCK_VectorType &, const char *name="PointerMatrix")
 
template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base (const TridiagonalMatrix< numberm > &matrix, const Vector< numberv > &, const char *name="PointerMatrix")
 

Variables

size_type BlockMatrixArray< number, BlockVectorType >::Entry::row
 
size_type BlockMatrixArray< number, BlockVectorType >::Entry::col
 
number BlockMatrixArray< number, BlockVectorType >::Entry::prefix
 
bool BlockMatrixArray< number, BlockVectorType >::Entry::transpose
 
PointerMatrixBase< typename BlockVectorType::BlockType > * BlockMatrixArray< number, BlockVectorType >::Entry::matrix
 
std::vector< EntryBlockMatrixArray< number, BlockVectorType >::entries
 
unsigned int BlockMatrixArray< number, BlockVectorType >::block_rows
 
unsigned int BlockMatrixArray< number, BlockVectorType >::block_cols
 
const FilteredMatrix< VectorType > * FilteredMatrix< VectorType >::Accessor::matrix
 
size_type FilteredMatrix< VectorType >::Accessor::index
 
Accessor FilteredMatrix< VectorType >::const_iterator::accessor
 
std::vector< number > Householder< number >::diagonal
 
FullMatrix< double > Householder< number >::storage
 
const size_type MeanValueFilter::component
 
SmartPointer< const MatrixType, PointerMatrix< MatrixType, VectorType > > PointerMatrix< MatrixType, VectorType >::m
 
GrowingVectorMemory< VectorType > PointerMatrixAux< MatrixType, VectorType >::my_memory
 
SmartPointer< VectorMemory< VectorType >, PointerMatrixAux< MatrixType, VectorType > > PointerMatrixAux< MatrixType, VectorType >::mem
 
SmartPointer< const MatrixType, PointerMatrixAux< MatrixType, VectorType > > PointerMatrixAux< MatrixType, VectorType >::m
 
SmartPointer< const Vector< number >, PointerMatrixVector< number > > PointerMatrixVector< number >::m
 

Constructors and initialization

 FilteredMatrix< VectorType >::FilteredMatrix ()
 
 FilteredMatrix< VectorType >::FilteredMatrix (const FilteredMatrix &fm)
 
template<typename MatrixType >
 FilteredMatrix< VectorType >::FilteredMatrix (const MatrixType &matrix, const bool expect_constrained_source=false)
 
FilteredMatrixFilteredMatrix< VectorType >::operator= (const FilteredMatrix &fm)
 
template<typename MatrixType >
void FilteredMatrix< VectorType >::initialize (const MatrixType &m, const bool expect_constrained_source=false)
 
void FilteredMatrix< VectorType >::clear ()
 

Managing constraints

void FilteredMatrix< VectorType >::add_constraint (const size_type i, const double v)
 
template<class ConstraintList >
void FilteredMatrix< VectorType >::add_constraints (const ConstraintList &new_constraints)
 
void FilteredMatrix< VectorType >::clear_constraints ()
 
void FilteredMatrix< VectorType >::apply_constraints (VectorType &v, const bool matrix_is_symmetric) const
 
void FilteredMatrix< VectorType >::apply_constraints (VectorType &v) const
 
void FilteredMatrix< VectorType >::vmult (VectorType &dst, const VectorType &src) const
 
void FilteredMatrix< VectorType >::Tvmult (VectorType &dst, const VectorType &src) const
 
void FilteredMatrix< VectorType >::vmult_add (VectorType &dst, const VectorType &src) const
 
void FilteredMatrix< VectorType >::Tvmult_add (VectorType &dst, const VectorType &src) const
 

Iterators

using FilteredMatrix< VectorType >::const_index_value_iterator = typename std::vector< IndexValuePair >::const_iterator
 
bool FilteredMatrix< VectorType >::expect_constrained_source
 
std::shared_ptr< PointerMatrixBase< VectorType > > FilteredMatrix< VectorType >::matrix
 
std::vector< IndexValuePairFilteredMatrix< VectorType >::constraints
 
class FilteredMatrix< VectorType >::Accessor
 
class FilteredMatrix< VectorType >::FilteredMatrixBlock< VectorType >
 
const_iterator FilteredMatrix< VectorType >::begin () const
 
const_iterator FilteredMatrix< VectorType >::end () const
 
std::size_t FilteredMatrix< VectorType >::memory_consumption () const
 
void FilteredMatrix< VectorType >::pre_filter (VectorType &v) const
 
void FilteredMatrix< VectorType >::post_filter (const VectorType &in, VectorType &out) const
 

Detailed Description

These matrices are built on top of the basic matrices. They perform special operations using the interface defined by the MatrixType concept.

Typedef Documentation

◆ size_type [1/5]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
using BlockMatrixArray< number, BlockVectorType >::size_type = types::global_dof_index

Declare the type for container size.

Definition at line 124 of file block_matrix_array.h.

◆ size_type [2/5]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
using BlockTrianglePrecondition< number, BlockVectorType >::size_type = types::global_dof_index

Declare type for container size.

Definition at line 428 of file block_matrix_array.h.

◆ size_type [3/5]

template<typename VectorType>
using FilteredMatrix< VectorType >::size_type = types::global_dof_index

Declare the type of container size.

Definition at line 207 of file filtered_matrix.h.

◆ IndexValuePair

template<typename VectorType>
using FilteredMatrix< VectorType >::IndexValuePair = std::pair<size_type, double>

Typedef defining a type that represents a pair of degree of freedom index and the value it shall have.

Definition at line 332 of file filtered_matrix.h.

◆ const_index_value_iterator

template<typename VectorType>
using FilteredMatrix< VectorType >::const_index_value_iterator = typename std::vector<IndexValuePair>::const_iterator
private

Declare an abbreviation for an iterator into the array constraint pairs, since that data type is so often used and is rather awkward to write out each time.

Definition at line 524 of file filtered_matrix.h.

◆ size_type [4/5]

template<typename number>
using Householder< number >::size_type = types::global_dof_index

Declare type of container size type.

Definition at line 86 of file householder.h.

◆ size_type [5/5]

Declare type for container size.

Definition at line 64 of file matrix_lib.h.

◆ value_type

template<typename VectorType>
using PointerMatrixBase< VectorType >::value_type = typename VectorType::value_type

Value type of this matrix. since the matrix itself is unknown, we take the value type of the vector. Therefore, matrix entries must be convertible to vector entries.

This was defined to make this matrix a possible template argument to BlockMatrixArray.

Definition at line 74 of file pointer_matrix.h.

Function Documentation

◆ BlockMatrixArray() [1/2]

template<typename number , typename BlockVectorType >
BlockMatrixArray< number, BlockVectorType >::BlockMatrixArray ( )

Default constructor creating a useless object. initialize() must be called before using it.

Definition at line 49 of file block_matrix_array.cc.

◆ BlockMatrixArray() [2/2]

template<typename number , typename BlockVectorType >
BlockMatrixArray< number, BlockVectorType >::BlockMatrixArray ( const unsigned int  n_block_rows,
const unsigned int  n_block_cols 
)

Constructor fixing the dimensions.

Definition at line 57 of file block_matrix_array.cc.

◆ initialize() [1/3]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::initialize ( const unsigned int  n_block_rows,
const unsigned int  n_block_cols 
)

Initialize object completely. This is the function to call for an object created by the default constructor.

Definition at line 67 of file block_matrix_array.cc.

◆ reinit() [1/2]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::reinit ( const unsigned int  n_block_rows,
const unsigned int  n_block_cols 
)

Adjust the matrix to a new size and delete all blocks.

Definition at line 79 of file block_matrix_array.cc.

◆ enter() [1/2]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
template<typename MatrixType >
void BlockMatrixArray< number, BlockVectorType >::enter ( const MatrixType &  matrix,
const unsigned int  row,
const unsigned int  col,
const number  prefix = 1.,
const bool  transpose = false 
)

Add a block matrix entry. The matrix is entered into a list of blocks for multiplication, together with its coordinates row and col as well as optional multiplication factor prefix and transpose flag transpose.

Note
No check for consistency of block sizes is made. Therefore, entering a block of wrong dimension here will only lead to a ExcDimensionMismatch in one of the multiplication functions.

◆ clear() [1/6]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::clear ( )

Delete all entries, i.e. reset the matrix to an empty state.

Definition at line 92 of file block_matrix_array.cc.

◆ n_block_rows()

template<typename number , typename BlockVectorType >
unsigned int BlockMatrixArray< number, BlockVectorType >::n_block_rows ( ) const

Number of block-entries per column.

Definition at line 239 of file block_matrix_array.cc.

◆ n_block_cols()

template<typename number , typename BlockVectorType >
unsigned int BlockMatrixArray< number, BlockVectorType >::n_block_cols ( ) const

Number of block-entries per row.

Definition at line 248 of file block_matrix_array.cc.

◆ vmult() [1/10]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::vmult ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Matrix-vector multiplication.

Definition at line 132 of file block_matrix_array.cc.

◆ vmult_add() [1/9]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::vmult_add ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Matrix-vector multiplication adding to dst.

Definition at line 100 of file block_matrix_array.cc.

◆ Tvmult() [1/9]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::Tvmult ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Transposed matrix-vector multiplication.

Definition at line 176 of file block_matrix_array.cc.

◆ Tvmult_add() [1/8]

template<typename number , typename BlockVectorType >
void BlockMatrixArray< number, BlockVectorType >::Tvmult_add ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Transposed matrix-vector multiplication adding to dst.

Definition at line 144 of file block_matrix_array.cc.

◆ matrix_scalar_product()

template<typename number , typename BlockVectorType >
number BlockMatrixArray< number, BlockVectorType >::matrix_scalar_product ( const BlockVectorType &  u,
const BlockVectorType &  v 
) const

Matrix scalar product between two vectors (at least for a symmetric matrix).

Definition at line 188 of file block_matrix_array.cc.

◆ matrix_norm_square()

template<typename number , typename BlockVectorType >
number BlockMatrixArray< number, BlockVectorType >::matrix_norm_square ( const BlockVectorType &  u) const

Compute $u^T M u$. This is the square of the norm induced by the matrix assuming the matrix is symmetric positive definitive.

Definition at line 229 of file block_matrix_array.cc.

◆ print_latex()

template<typename number = double, typename BlockVectorType = BlockVector<number>>
template<class StreamType >
void BlockMatrixArray< number, BlockVectorType >::print_latex ( StreamType &  out) const

Print the block structure as a LaTeX-array. This output will not be very intuitive, since the current object lacks knowledge about what the individual blocks represent or how they should be named. Instead, what you will see is an entry for each block showing all the matrices with their multiplication factors and possibly transpose marks. The matrices itself are named successively as they are encountered. If the same matrix is entered several times, it will be listed with different names.

As an example, consider the following code:

block.enter(A1,0,0);
block.enter(A2,0,0,2,true);
block.enter(B,0,1,-3.);
block.enter(B,0,1,-3.,true);
block.enter(C,1,1,1.,true);
block.print_latex(std::cout);

The current function will then produce output of the following kind:

\begin{array}{cc}
M0+2xM1^T & -3xM2-3xM3^T\\
& M4^T
\end{array}

Note how the individual blocks here are just numbered successively as M0 to M4 and that the output misses the fact that M2 and M3 are, in fact, the same matrix. Nevertheless, the output at least gives some kind of idea of the block structure of this matrix.

◆ Entry() [1/2]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
template<typename MatrixType >
BlockMatrixArray< number, BlockVectorType >::Entry::Entry ( const MatrixType &  matrix,
size_type  row,
size_type  col,
number  prefix,
bool  transpose 
)

Constructor initializing all data fields. A PointerMatrix object is generated for matrix.

◆ Entry() [2/2]

template<typename number , typename BlockVectorType >
BlockMatrixArray< number, BlockVectorType >::Entry::Entry ( const Entry e)

Copy constructor invalidating the old object. Since it is only used for entering temporary objects into a vector, this is ok.

For a deep copy, we would need a reproduction operator in PointerMatixBase.

Definition at line 27 of file block_matrix_array.cc.

◆ ~Entry()

template<typename number , typename BlockVectorType >
BlockMatrixArray< number, BlockVectorType >::Entry::~Entry ( )

Destructor, where we delete the PointerMatrix created by the constructor.

Definition at line 41 of file block_matrix_array.cc.

◆ operator=() [1/5]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
Entry& BlockMatrixArray< number, BlockVectorType >::Entry::operator= ( const Entry )
delete

Assignment operator.

Note
Since the copy constructor is destructive (see its documentation) and only exists for convenience there is no reasonable way to implement this, so it is explicitly deleted.

◆ BlockTrianglePrecondition() [1/2]

template<typename number , typename BlockVectorType >
BlockTrianglePrecondition< number, BlockVectorType >::BlockTrianglePrecondition ( )

Default constructor creating a useless object. initialize() must be called before using it.

Definition at line 258 of file block_matrix_array.cc.

◆ BlockTrianglePrecondition() [2/2]

template<typename number , typename BlockVectorType >
BlockTrianglePrecondition< number, BlockVectorType >::BlockTrianglePrecondition ( const unsigned int  n_blocks)

Constructor. This matrix must be block-quadratic, and n_blocks is the number of blocks in each direction.

Definition at line 265 of file block_matrix_array.cc.

◆ reinit() [2/2]

template<typename number , typename BlockVectorType >
void BlockTrianglePrecondition< number, BlockVectorType >::reinit ( const unsigned int  n_block_rows)

Resize preconditioner to a new size and clear all blocks.

Definition at line 274 of file block_matrix_array.cc.

◆ enter() [2/2]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
template<typename MatrixType >
void BlockTrianglePrecondition< number, BlockVectorType >::enter ( const MatrixType &  matrix,
const size_type  row,
const size_type  col,
const number  prefix = 1.,
const bool  transpose = false 
)

Enter a block. This calls BlockMatrixArray::enter(). Remember that the diagonal blocks should actually be inverse matrices or preconditioners.

◆ vmult() [2/10]

template<typename number , typename BlockVectorType >
void BlockTrianglePrecondition< number, BlockVectorType >::vmult ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Preconditioning.

Definition at line 387 of file block_matrix_array.cc.

◆ vmult_add() [2/9]

template<typename number , typename BlockVectorType >
void BlockTrianglePrecondition< number, BlockVectorType >::vmult_add ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Preconditioning adding to dst.

Definition at line 368 of file block_matrix_array.cc.

◆ Tvmult() [2/9]

template<typename number , typename BlockVectorType >
void BlockTrianglePrecondition< number, BlockVectorType >::Tvmult ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Transposed preconditioning

Definition at line 412 of file block_matrix_array.cc.

◆ Tvmult_add() [2/8]

template<typename number , typename BlockVectorType >
void BlockTrianglePrecondition< number, BlockVectorType >::Tvmult_add ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const

Transposed preconditioning adding to dst.

Definition at line 422 of file block_matrix_array.cc.

◆ Accessor()

template<typename VectorType >
FilteredMatrix< VectorType >::Accessor::Accessor ( const FilteredMatrix< VectorType > *  matrix,
const size_type  index 
)
inlineprivate

Constructor. Since we use accessors only for read access, a const matrix pointer is sufficient.

Definition at line 579 of file filtered_matrix.h.

◆ row()

template<typename VectorType >
types::global_dof_index FilteredMatrix< VectorType >::Accessor::row ( ) const
inline

Row number of the element represented by this object.

Definition at line 593 of file filtered_matrix.h.

◆ column()

template<typename VectorType >
types::global_dof_index FilteredMatrix< VectorType >::Accessor::column ( ) const
inline

Column number of the element represented by this object.

Definition at line 602 of file filtered_matrix.h.

◆ value()

template<typename VectorType >
double FilteredMatrix< VectorType >::Accessor::value ( ) const
inline

Value of the right hand side for this row.

Definition at line 611 of file filtered_matrix.h.

◆ advance()

template<typename VectorType >
void FilteredMatrix< VectorType >::Accessor::advance ( )
inlineprivate

Advance to next entry

Definition at line 620 of file filtered_matrix.h.

◆ const_iterator()

template<typename VectorType >
FilteredMatrix< VectorType >::const_iterator::const_iterator ( const FilteredMatrix< VectorType > *  matrix,
const size_type  index 
)
inline

Constructor.

Definition at line 629 of file filtered_matrix.h.

◆ operator++() [1/2]

template<typename VectorType >
FilteredMatrix< VectorType >::const_iterator & FilteredMatrix< VectorType >::const_iterator::operator++ ( )
inline

Prefix increment.

Definition at line 639 of file filtered_matrix.h.

◆ operator++() [2/2]

template<typename VectorType>
const_iterator& FilteredMatrix< VectorType >::const_iterator::operator++ ( int  )

Postfix increment.

◆ operator*()

template<typename number >
const FilteredMatrix< number >::Accessor & FilteredMatrix< number >::const_iterator::operator* ( ) const
inline

Dereferencing operator.

Definition at line 648 of file filtered_matrix.h.

◆ operator->()

template<typename number >
const FilteredMatrix< number >::Accessor * FilteredMatrix< number >::const_iterator::operator-> ( ) const
inline

Dereferencing operator.

Definition at line 656 of file filtered_matrix.h.

◆ operator==()

template<typename number >
bool FilteredMatrix< number >::const_iterator::operator== ( const const_iterator other) const
inline

Comparison. True, if both iterators point to the same matrix position.

Definition at line 665 of file filtered_matrix.h.

◆ operator!=()

template<typename number >
bool FilteredMatrix< number >::const_iterator::operator!= ( const const_iterator other) const
inline

Inverse of ==.

Definition at line 675 of file filtered_matrix.h.

◆ operator<()

template<typename VectorType>
bool FilteredMatrix< VectorType >::const_iterator::operator< ( const const_iterator ) const

Comparison operator. Result is true if either the first row number is smaller or if the row numbers are equal and the first index is smaller.

◆ operator>()

template<typename VectorType>
bool FilteredMatrix< VectorType >::const_iterator::operator> ( const const_iterator ) const

Comparison operator. Compares just the other way around than the operator above.

◆ FilteredMatrix() [1/3]

template<typename VectorType >
FilteredMatrix< VectorType >::FilteredMatrix ( )
inline

Default constructor. You will have to set the matrix to be used later using initialize().

Definition at line 723 of file filtered_matrix.h.

◆ FilteredMatrix() [2/3]

template<typename VectorType >
FilteredMatrix< VectorType >::FilteredMatrix ( const FilteredMatrix< VectorType > &  fm)
inline

Copy constructor. Use the matrix and the constraints set in the given object for the present one as well.

Definition at line 730 of file filtered_matrix.h.

◆ FilteredMatrix() [3/3]

template<typename VectorType >
template<typename MatrixType >
FilteredMatrix< VectorType >::FilteredMatrix ( const MatrixType &  matrix,
const bool  expect_constrained_source = false 
)
inline

Constructor. Use the given matrix for future operations.

  • m: The matrix being used in multiplications.

Definition at line 741 of file filtered_matrix.h.

◆ operator=() [2/5]

template<typename VectorType >
FilteredMatrix< VectorType > & FilteredMatrix< VectorType >::operator= ( const FilteredMatrix< VectorType > &  fm)
inline

Copy operator. Take over matrix and constraints from the other object.

Definition at line 752 of file filtered_matrix.h.

◆ initialize() [2/3]

template<typename VectorType >
template<typename MatrixType >
void FilteredMatrix< VectorType >::initialize ( const MatrixType &  m,
const bool  expect_constrained_source = false 
)
inline

Set the matrix to be used further on. You will probably also want to call the clear_constraints() function if constraints were previously added.

  • m: The matrix being used in multiplications.

Definition at line 713 of file filtered_matrix.h.

◆ clear() [2/6]

template<typename VectorType >
void FilteredMatrix< VectorType >::clear ( )
inline

Delete all constraints and the matrix pointer.

Definition at line 808 of file filtered_matrix.h.

◆ add_constraint()

template<typename VectorType >
void FilteredMatrix< VectorType >::add_constraint ( const size_type  i,
const double  v 
)
inline

Add the constraint that the value with index i should have the value v.

Definition at line 764 of file filtered_matrix.h.

◆ add_constraints()

template<typename VectorType >
template<class ConstraintList >
void FilteredMatrix< VectorType >::add_constraints ( const ConstraintList &  new_constraints)
inline

Add a list of constraints to the ones already managed by this object. The actual data type of this list must be so that dereferenced iterators are pairs of indices and the corresponding values to be enforced on the respective solution vector's entry. Thus, the data type might be, for example, a std::list or std::vector of IndexValuePair objects, but also a std::map<unsigned, double>.

The second component of these pairs will only be used in apply_constraints(). The first is used to set values to zero in matrix vector multiplications.

It is an error if the argument contains an entry for a degree of freedom that has already been constrained previously.

Definition at line 776 of file filtered_matrix.h.

◆ clear_constraints()

template<typename VectorType >
void FilteredMatrix< VectorType >::clear_constraints ( )
inline

Delete the list of constraints presently in use.

Definition at line 797 of file filtered_matrix.h.

◆ apply_constraints() [1/2]

template<typename VectorType >
void FilteredMatrix< VectorType >::apply_constraints ( VectorType &  v,
const bool  matrix_is_symmetric 
) const
inline

Vector operations Apply the constraints to a right hand side vector. This needs to be done before starting to solve with the filtered matrix. If the matrix is symmetric (i.e. the matrix itself, not only its sparsity pattern), set the second parameter to true to use a faster algorithm. Note: This method is deprecated as matrix_is_symmetric parameter is no longer used.

Definition at line 818 of file filtered_matrix.h.

◆ apply_constraints() [2/2]

template<typename VectorType >
void FilteredMatrix< VectorType >::apply_constraints ( VectorType &  v) const
inline

Apply the constraints to a right hand side vector. This needs to be done before starting to solve with the filtered matrix.

Definition at line 828 of file filtered_matrix.h.

◆ vmult() [3/10]

template<typename VectorType >
void FilteredMatrix< VectorType >::vmult ( VectorType &  dst,
const VectorType &  src 
) const
inline

Matrix-vector multiplication: this operation performs pre_filter(), multiplication with the stored matrix and post_filter() in that order.

Definition at line 889 of file filtered_matrix.h.

◆ Tvmult() [3/9]

template<typename VectorType >
void FilteredMatrix< VectorType >::Tvmult ( VectorType &  dst,
const VectorType &  src 
) const
inline

Matrix-vector multiplication: this operation performs pre_filter(), transposed multiplication with the stored matrix and post_filter() in that order.

Definition at line 916 of file filtered_matrix.h.

◆ vmult_add() [3/9]

template<typename VectorType >
void FilteredMatrix< VectorType >::vmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inline

Adding matrix-vector multiplication.

Note
The result vector of this multiplication will have the constraint entries set to zero, independent of the previous value of dst. We expect that in most cases this is the required behavior.

Definition at line 943 of file filtered_matrix.h.

◆ Tvmult_add() [3/8]

template<typename VectorType >
void FilteredMatrix< VectorType >::Tvmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inline

Adding transpose matrix-vector multiplication:

Note
The result vector of this multiplication will have the constraint entries set to zero, independent of the previous value of dst. We expect that in most cases this is the required behavior.

Definition at line 971 of file filtered_matrix.h.

◆ begin()

template<typename number >
FilteredMatrix< number >::const_iterator FilteredMatrix< number >::begin ( ) const
inline

Iterator to the first constraint.

Definition at line 686 of file filtered_matrix.h.

◆ end()

template<typename number >
FilteredMatrix< number >::const_iterator FilteredMatrix< number >::end ( ) const
inline

Final iterator.

Definition at line 694 of file filtered_matrix.h.

◆ memory_consumption()

template<typename VectorType >
std::size_t FilteredMatrix< VectorType >::memory_consumption ( ) const
inline

Determine an estimate for the memory consumption (in bytes) of this object. Since we are not the owner of the matrix referenced, its memory consumption is not included.

Definition at line 999 of file filtered_matrix.h.

◆ operator()()

template<typename VectorType >
bool FilteredMatrix< VectorType >::PairComparison::operator() ( const IndexValuePair i1,
const IndexValuePair i2 
) const
inline

Function comparing the pairs i1 and i2 for their keys.

Definition at line 703 of file filtered_matrix.h.

◆ pre_filter()

template<typename VectorType >
void FilteredMatrix< VectorType >::pre_filter ( VectorType &  v) const
inlineprivate

Do the pre-filtering step, i.e. zero out those components that belong to constrained degrees of freedom.

Definition at line 857 of file filtered_matrix.h.

◆ post_filter()

template<typename VectorType >
void FilteredMatrix< VectorType >::post_filter ( const VectorType &  in,
VectorType &  out 
) const
inlineprivate

Do the postfiltering step, i.e. set constrained degrees of freedom to the value of the input vector, as the matrix contains only ones on the diagonal for these degrees of freedom.

Definition at line 871 of file filtered_matrix.h.

◆ Householder() [1/2]

template<typename number>
Householder< number >::Householder ( )
default

Create an empty object.

◆ Householder() [2/2]

template<typename number>
template<typename number2 >
Householder< number >::Householder ( const FullMatrix< number2 > &  A)

Create an object holding the QR-decomposition of the matrix $A$.

◆ initialize() [3/3]

template<typename number>
template<typename number2 >
void Householder< number >::initialize ( const FullMatrix< number2 > &  A)

Compute the QR-decomposition of the given matrix $A$.

This overwrites any previously computed QR decomposition.

◆ least_squares() [1/2]

template<typename number>
template<typename number2 >
double Householder< number >::least_squares ( Vector< number2 > &  dst,
const Vector< number2 > &  src 
) const

Solve the least-squares problem for the right hand side src. The returned scalar value is the Euclidean norm of the approximation error.

  • dst contains the solution of the least squares problem on return.
  • src contains the right hand side b of the least squares problem. It will be changed during the algorithm and is unusable on return.

◆ least_squares() [2/2]

template<typename number>
template<typename number2 >
double Householder< number >::least_squares ( BlockVector< number2 > &  dst,
const BlockVector< number2 > &  src 
) const

This function does the same as the previous one, but for BlockVectors.

◆ vmult() [4/10]

template<typename number>
template<class VectorType >
void Householder< number >::vmult ( VectorType &  dst,
const VectorType &  src 
) const

A wrapper to least_squares(), implementing the standard MatrixType interface.

◆ Tvmult() [4/9]

template<typename number>
template<class VectorType >
void Householder< number >::Tvmult ( VectorType &  dst,
const VectorType &  src 
) const

A wrapper to least_squares() that implements multiplication with the transpose matrix.

◆ MeanValueFilter()

MeanValueFilter::MeanValueFilter ( const size_type  component = numbers::invalid_size_type)

Constructor, optionally selecting a component.

Definition at line 21 of file matrix_lib.cc.

◆ filter() [1/2]

template<typename number >
void MeanValueFilter::filter ( Vector< number > &  v) const

Subtract mean value from v.

◆ filter() [2/2]

template<typename number >
void MeanValueFilter::filter ( BlockVector< number > &  v) const

Subtract mean value from v.

◆ vmult() [5/10]

template<typename number >
void MeanValueFilter::vmult ( Vector< number > &  dst,
const Vector< number > &  src 
) const

Return the source vector with subtracted mean value.

◆ vmult_add() [4/9]

template<typename number >
void MeanValueFilter::vmult_add ( Vector< number > &  dst,
const Vector< number > &  src 
) const

Add source vector with subtracted mean value to dest.

◆ vmult() [6/10]

template<typename number >
void MeanValueFilter::vmult ( BlockVector< number > &  dst,
const BlockVector< number > &  src 
) const

Return the source vector with subtracted mean value in selected component.

◆ vmult_add() [5/9]

template<typename number >
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.

◆ Tvmult() [5/9]

template<typename VectorType >
void MeanValueFilter::Tvmult ( VectorType &  ,
const VectorType &   
) const
inline

Not implemented.

Definition at line 145 of file matrix_lib.h.

◆ Tvmult_add() [4/8]

template<typename VectorType >
void MeanValueFilter::Tvmult_add ( VectorType &  ,
const VectorType &   
) const
inline

Not implemented.

Definition at line 153 of file matrix_lib.h.

◆ ~PointerMatrixBase()

template<typename VectorType>
virtual PointerMatrixBase< VectorType >::~PointerMatrixBase ( )
overridevirtualdefault

Virtual destructor. Does nothing except making sure that the destructor of any derived class is called whenever a pointer-to-base-class object is destroyed.

◆ clear() [3/6]

template<typename VectorType>
virtual void PointerMatrixBase< VectorType >::clear ( )
pure virtual

◆ vmult() [7/10]

template<typename VectorType>
virtual void PointerMatrixBase< VectorType >::vmult ( VectorType &  dst,
const VectorType &  src 
) const
pure virtual

◆ Tvmult() [6/9]

template<typename VectorType>
virtual void PointerMatrixBase< VectorType >::Tvmult ( VectorType &  dst,
const VectorType &  src 
) const
pure virtual

◆ vmult_add() [6/9]

template<typename VectorType>
virtual void PointerMatrixBase< VectorType >::vmult_add ( VectorType &  dst,
const VectorType &  src 
) const
pure virtual

◆ Tvmult_add() [5/8]

template<typename VectorType>
virtual void PointerMatrixBase< VectorType >::Tvmult_add ( VectorType &  dst,
const VectorType &  src 
) const
pure virtual

Transposed matrix-vector product, adding to dst.

Implemented in PointerMatrixAux< MatrixType, VectorType >, PointerMatrix< MatrixType, VectorType >, and PointerMatrixVector< number >.

◆ PointerMatrix() [1/3]

template<typename MatrixType , typename VectorType >
PointerMatrix< MatrixType, VectorType >::PointerMatrix ( const MatrixType *  M = nullptr)

Constructor. The pointer in the argument is stored in this class. As usual, the lifetime of *M must be longer than the one of the PointerMatrix.

If M is zero, no matrix is stored.

Definition at line 633 of file pointer_matrix.h.

◆ PointerMatrix() [2/3]

template<typename MatrixType , typename VectorType >
PointerMatrix< MatrixType, VectorType >::PointerMatrix ( const char *  name)

Constructor.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 639 of file pointer_matrix.h.

◆ PointerMatrix() [3/3]

template<typename MatrixType , typename VectorType >
PointerMatrix< MatrixType, VectorType >::PointerMatrix ( const MatrixType *  M,
const char *  name 
)

Constructor. M points to a matrix which must live longer than the PointerMatrix.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 645 of file pointer_matrix.h.

◆ clear() [4/6]

template<typename MatrixType , typename VectorType >
void PointerMatrix< MatrixType, VectorType >::clear ( )
inlineoverridevirtual

Reset the object to its original state.

Implements PointerMatrixBase< VectorType >.

Definition at line 653 of file pointer_matrix.h.

◆ empty() [1/3]

template<typename MatrixType , typename VectorType >
bool PointerMatrix< MatrixType, VectorType >::empty ( ) const
inline

Return whether the object is empty.

Definition at line 670 of file pointer_matrix.h.

◆ operator=() [3/5]

template<typename MatrixType , typename VectorType >
const PointerMatrix< MatrixType, VectorType > & PointerMatrix< MatrixType, VectorType >::operator= ( const MatrixType *  M)
inline

Assign a new matrix pointer. Deletes the old pointer and releases its matrix.

See also
SmartPointer

Definition at line 661 of file pointer_matrix.h.

◆ vmult() [8/10]

template<typename MatrixType , typename VectorType >
void PointerMatrix< MatrixType, VectorType >::vmult ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Matrix-vector product.

Implements PointerMatrixBase< VectorType >.

Definition at line 679 of file pointer_matrix.h.

◆ Tvmult() [7/9]

template<typename MatrixType , typename VectorType >
void PointerMatrix< MatrixType, VectorType >::Tvmult ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Transposed matrix-vector product.

Implements PointerMatrixBase< VectorType >.

Definition at line 689 of file pointer_matrix.h.

◆ vmult_add() [7/9]

template<typename MatrixType , typename VectorType >
void PointerMatrix< MatrixType, VectorType >::vmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Matrix-vector product, adding to dst.

Implements PointerMatrixBase< VectorType >.

Definition at line 699 of file pointer_matrix.h.

◆ Tvmult_add() [6/8]

template<typename MatrixType , typename VectorType >
void PointerMatrix< MatrixType, VectorType >::Tvmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Transposed matrix-vector product, adding to dst.

Implements PointerMatrixBase< VectorType >.

Definition at line 709 of file pointer_matrix.h.

◆ PointerMatrixAux() [1/3]

template<typename MatrixType , typename VectorType >
PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux ( VectorMemory< VectorType > *  mem = 0,
const MatrixType *  M = 0 
)

Constructor. The pointer in the argument is stored in this class. As usual, the lifetime of *M must be longer than the one of the PointerMatrixAux.

If M is zero, no matrix is stored.

If mem is zero, then GrowingVectorMemory is used.

Definition at line 722 of file pointer_matrix.h.

◆ PointerMatrixAux() [2/3]

template<typename MatrixType , typename VectorType >
PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux ( VectorMemory< VectorType > *  mem,
const char *  name 
)

Constructor not using a matrix.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 734 of file pointer_matrix.h.

◆ PointerMatrixAux() [3/3]

template<typename MatrixType , typename VectorType >
PointerMatrixAux< MatrixType, VectorType >::PointerMatrixAux ( VectorMemory< VectorType > *  mem,
const MatrixType *  M,
const char *  name 
)

Constructor. M points to a matrix which must live longer than the PointerMatrixAux.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 746 of file pointer_matrix.h.

◆ clear() [5/6]

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::clear ( )
inlineoverridevirtual

Reset the object to its original state.

Implements PointerMatrixBase< VectorType >.

Definition at line 760 of file pointer_matrix.h.

◆ empty() [2/3]

template<typename MatrixType , typename VectorType >
bool PointerMatrixAux< MatrixType, VectorType >::empty ( ) const
inline

Return whether the object is empty.

Definition at line 788 of file pointer_matrix.h.

◆ set_memory()

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::set_memory ( VectorMemory< VectorType > *  mem)
inline

Assign a new VectorMemory object for getting auxiliary vectors.

Definition at line 777 of file pointer_matrix.h.

◆ operator=() [4/5]

template<typename MatrixType , typename VectorType >
const PointerMatrixAux< MatrixType, VectorType > & PointerMatrixAux< MatrixType, VectorType >::operator= ( const MatrixType *  M)
inline

Assign a new matrix pointer. Deletes the old pointer and releases its matrix.

See also
SmartPointer

Definition at line 768 of file pointer_matrix.h.

◆ vmult() [9/10]

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::vmult ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Matrix-vector product.

Implements PointerMatrixBase< VectorType >.

Definition at line 797 of file pointer_matrix.h.

◆ Tvmult() [8/9]

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::Tvmult ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Transposed matrix-vector product.

Implements PointerMatrixBase< VectorType >.

Definition at line 810 of file pointer_matrix.h.

◆ vmult_add() [8/9]

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::vmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Matrix-vector product, adding to dst.

Implements PointerMatrixBase< VectorType >.

Definition at line 823 of file pointer_matrix.h.

◆ Tvmult_add() [7/8]

template<typename MatrixType , typename VectorType >
void PointerMatrixAux< MatrixType, VectorType >::Tvmult_add ( VectorType &  dst,
const VectorType &  src 
) const
inlineoverridevirtual

Transposed matrix-vector product, adding to dst.

Implements PointerMatrixBase< VectorType >.

Definition at line 840 of file pointer_matrix.h.

◆ PointerMatrixVector() [1/3]

template<typename number >
PointerMatrixVector< number >::PointerMatrixVector ( const Vector< number > *  M = 0)

Constructor. The pointer in the argument is stored in this class. As usual, the lifetime of *M must be longer than the one of the PointerMatrix.

If M is zero, no matrix is stored.

Definition at line 860 of file pointer_matrix.h.

◆ PointerMatrixVector() [2/3]

template<typename number >
PointerMatrixVector< number >::PointerMatrixVector ( const char *  name)

Constructor.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 866 of file pointer_matrix.h.

◆ PointerMatrixVector() [3/3]

template<typename number >
PointerMatrixVector< number >::PointerMatrixVector ( const Vector< number > *  M,
const char *  name 
)

Constructor. M points to a matrix which must live longer than the PointerMatrix.

This class internally stores a pointer to a matrix via a SmartPointer object. The SmartPointer class allows to associate a name with the object pointed to that identifies the object that has the pointer, in order to identify objects that still refer to the object pointed to. The name argument to this function is used to this end, i.e., you can in essence assign a name to the current PointerMatrix object.

Definition at line 872 of file pointer_matrix.h.

◆ clear() [6/6]

template<typename number >
void PointerMatrixVector< number >::clear ( )
inlinevirtual

Reset the object to its original state.

Implements PointerMatrixBase< Vector< number > >.

Definition at line 880 of file pointer_matrix.h.

◆ empty() [3/3]

template<typename number >
bool PointerMatrixVector< number >::empty ( ) const
inline

Return whether the object is empty.

Definition at line 897 of file pointer_matrix.h.

◆ operator=() [5/5]

template<typename number >
const PointerMatrixVector< number > & PointerMatrixVector< number >::operator= ( const Vector< number > *  M)
inline

Assign a new matrix pointer. Deletes the old pointer and releases its matrix.

See also
SmartPointer

Definition at line 888 of file pointer_matrix.h.

◆ vmult() [10/10]

template<typename number >
void PointerMatrixVector< number >::vmult ( Vector< number > &  dst,
const Vector< number > &  src 
) const
inlinevirtual

Matrix-vector product, actually the scalar product of src and the vector representing this matrix.

The dimension of dst is 1, while that of src is the size of the vector representing this matrix.

Implements PointerMatrixBase< Vector< number > >.

Definition at line 906 of file pointer_matrix.h.

◆ Tvmult() [9/9]

template<typename number >
void PointerMatrixVector< number >::Tvmult ( Vector< number > &  dst,
const Vector< number > &  src 
) const
inlinevirtual

Transposed matrix-vector product, actually the multiplication of the vector representing this matrix with src(0).

The dimension of src is 1, while that of dst is the size of the vector representing this matrix.

Implements PointerMatrixBase< Vector< number > >.

Definition at line 918 of file pointer_matrix.h.

◆ vmult_add() [9/9]

template<typename number >
void PointerMatrixVector< number >::vmult_add ( Vector< number > &  dst,
const Vector< number > &  src 
) const
inlinevirtual

Matrix-vector product, adding to dst.

The dimension of dst is 1, while that of src is the size of the vector representing this matrix.

Implements PointerMatrixBase< Vector< number > >.

Definition at line 930 of file pointer_matrix.h.

◆ Tvmult_add() [8/8]

template<typename number >
void PointerMatrixVector< number >::Tvmult_add ( Vector< number > &  dst,
const Vector< number > &  src 
) const
inlinevirtual

Transposed matrix-vector product, adding to dst.

The dimension of src is 1, while that of dst is the size of the vector representing this matrix.

Implements PointerMatrixBase< Vector< number > >.

Definition at line 942 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [1/20]

template<typename VectorType , typename MatrixType >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( MatrixType &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrixAux" 
)
inline

This function helps you creating a PointerMatrixBase object if you do not want to provide the full template arguments of PointerMatrix or PointerMatrixAux.

Note that this function by default creates a PointerMatrixAux, emulating the functions vmult_add and Tvmult_add, using an auxiliary vector. It is overloaded for the library matrix classes implementing these functions themselves. If you have such a class, you should overload the function in order to save memory and time.

The result is a PointerMatrixBase* pointing to matrix. The VectorType argument is a dummy just used to determine the template arguments.

Definition at line 477 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [2/20]

template<typename numberv >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const IdentityMatrix matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for IdentityMatrix.

Definition at line 491 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [3/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const FullMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for FullMatrix.

Definition at line 506 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [4/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const LAPACKFullMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for LAPACKFullMatrix.

Definition at line 521 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [5/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const SparseMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for SparseMatrix.

Definition at line 537 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [6/20]

template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( const BlockSparseMatrix< numberm > &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for BlockSparseMatrix.

Definition at line 553 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [7/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const SparseMatrixEZ< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for SparseMatrixEZ.

Definition at line 569 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [8/20]

template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( const BlockSparseMatrixEZ< numberm > &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for BlockSparseMatrixEZ.

Definition at line 585 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [9/20]

template<typename numberv , typename numberm , typename BLOCK_VectorType >
PointerMatrixBase< BLOCK_VectorType > * new_pointer_matrix_base ( const BlockMatrixArray< numberm, BLOCK_VectorType > &  matrix,
const BLOCK_VectorType &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for BlockMatrixArray.

Definition at line 601 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [10/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const TridiagonalMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix" 
)

Specialized version for TridiagonalMatrix.

Definition at line 618 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [11/20]

template<typename VectorType , typename MatrixType >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( MatrixType &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrixAux< MatrixType, VectorType >" 
)
related

This function helps you creating a PointerMatrixBase object if you do not want to provide the full template arguments of PointerMatrix or PointerMatrixAux.

Note that this function by default creates a PointerMatrixAux, emulating the functions vmult_add and Tvmult_add, using an auxiliary vector. It is overloaded for the library matrix classes implementing these functions themselves. If you have such a class, you should overload the function in order to save memory and time.

The result is a PointerMatrixBase* pointing to matrix. The VectorType argument is a dummy just used to determine the template arguments.

Definition at line 477 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [12/20]

template<typename numberv >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const IdentityMatrix matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for IdentityMatrix.

Definition at line 491 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [13/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const FullMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for FullMatrix.

Definition at line 506 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [14/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const LAPACKFullMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for LAPACKFullMatrix.

Definition at line 521 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [15/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const SparseMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for SparseMatrix.

Definition at line 537 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [16/20]

template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( const BlockSparseMatrix< numberm > &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for BlockSparseMatrix.

Definition at line 553 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [17/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const SparseMatrixEZ< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for SparseMatrixEZ.

Definition at line 569 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [18/20]

template<typename VectorType , typename numberm >
PointerMatrixBase< VectorType > * new_pointer_matrix_base ( const BlockSparseMatrixEZ< numberm > &  matrix,
const VectorType &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for BlockSparseMatrixEZ.

Definition at line 585 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [19/20]

template<typename numberv , typename numberm , typename BLOCK_VectorType >
PointerMatrixBase< BLOCK_VectorType > * new_pointer_matrix_base ( const BlockMatrixArray< numberm, BLOCK_VectorType > &  matrix,
const BLOCK_VectorType &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for BlockMatrixArray.

Definition at line 601 of file pointer_matrix.h.

◆ new_pointer_matrix_base() [20/20]

template<typename numberv , typename numberm >
PointerMatrixBase< Vector< numberv > > * new_pointer_matrix_base ( const TridiagonalMatrix< numberm > &  matrix,
const Vector< numberv > &  ,
const char *  name = "PointerMatrix< MatrixType, VectorType >" 
)
related

Specialized version for TridiagonalMatrix.

Definition at line 618 of file pointer_matrix.h.

Variable Documentation

◆ row

template<typename number = double, typename BlockVectorType = BlockVector<number>>
size_type BlockMatrixArray< number, BlockVectorType >::Entry::row

Row number in the block matrix.

Definition at line 311 of file block_matrix_array.h.

◆ col

template<typename number = double, typename BlockVectorType = BlockVector<number>>
size_type BlockMatrixArray< number, BlockVectorType >::Entry::col

Column number in the block matrix.

Definition at line 316 of file block_matrix_array.h.

◆ prefix

template<typename number = double, typename BlockVectorType = BlockVector<number>>
number BlockMatrixArray< number, BlockVectorType >::Entry::prefix

Factor in front of the matrix block.

Definition at line 321 of file block_matrix_array.h.

◆ transpose

template<typename number = double, typename BlockVectorType = BlockVector<number>>
bool BlockMatrixArray< number, BlockVectorType >::Entry::transpose

Indicates that matrix block must be transposed for multiplication.

Definition at line 326 of file block_matrix_array.h.

◆ matrix [1/3]

template<typename number = double, typename BlockVectorType = BlockVector<number>>
PointerMatrixBase<typename BlockVectorType::BlockType>* BlockMatrixArray< number, BlockVectorType >::Entry::matrix

The matrix block itself.

Definition at line 331 of file block_matrix_array.h.

◆ entries

template<typename number = double, typename BlockVectorType = BlockVector<number>>
std::vector<Entry> BlockMatrixArray< number, BlockVectorType >::entries
protected

Array of block entries in the matrix.

Definition at line 347 of file block_matrix_array.h.

◆ block_rows

template<typename number = double, typename BlockVectorType = BlockVector<number>>
unsigned int BlockMatrixArray< number, BlockVectorType >::block_rows
private

Number of blocks per column.

Definition at line 353 of file block_matrix_array.h.

◆ block_cols

template<typename number = double, typename BlockVectorType = BlockVector<number>>
unsigned int BlockMatrixArray< number, BlockVectorType >::block_cols
private

number of blocks per row.

Definition at line 357 of file block_matrix_array.h.

◆ matrix [2/3]

template<typename VectorType>
const FilteredMatrix<VectorType>* FilteredMatrix< VectorType >::Accessor::matrix
private

The matrix accessed.

Definition at line 249 of file filtered_matrix.h.

◆ index

template<typename VectorType>
size_type FilteredMatrix< VectorType >::Accessor::index
private

Current row number.

Definition at line 254 of file filtered_matrix.h.

◆ accessor

template<typename VectorType>
Accessor FilteredMatrix< VectorType >::const_iterator::accessor
private

Store an object of the accessor class.

Definition at line 325 of file filtered_matrix.h.

◆ expect_constrained_source

template<typename VectorType>
bool FilteredMatrix< VectorType >::expect_constrained_source
private

Determine, whether multiplications can expect that the source vector has all constrained entries set to zero.

If so, the auxiliary vector can be avoided and memory as well as time can be saved.

We expect this for instance in Newton's method, where the residual already should be zero on constrained nodes. This is, because there is no test function in these nodes.

Definition at line 516 of file filtered_matrix.h.

◆ matrix [3/3]

template<typename VectorType>
std::shared_ptr<PointerMatrixBase<VectorType> > FilteredMatrix< VectorType >::matrix
private

Pointer to the sparsity pattern used for this matrix.

Definition at line 542 of file filtered_matrix.h.

◆ constraints

template<typename VectorType>
std::vector<IndexValuePair> FilteredMatrix< VectorType >::constraints
private

Sorted list of pairs denoting the index of the variable and the value to which it shall be fixed.

Definition at line 548 of file filtered_matrix.h.

◆ diagonal

template<typename number>
std::vector<number> Householder< number >::diagonal
private

Storage for the diagonal elements of the orthogonal transformation. See the class documentation for more information.

Definition at line 152 of file householder.h.

◆ storage

template<typename number>
FullMatrix<double> Householder< number >::storage
private

Storage that is internally used for the Householder transformation.

Definition at line 157 of file householder.h.

◆ component

const size_type MeanValueFilter::component
private

Component for filtering block vectors.

Definition at line 134 of file matrix_lib.h.

◆ m [1/3]

template<typename MatrixType, typename VectorType>
SmartPointer<const MatrixType, PointerMatrix<MatrixType, VectorType> > PointerMatrix< MatrixType, VectorType >::m
private

The pointer to the actual matrix.

Definition at line 211 of file pointer_matrix.h.

◆ my_memory

template<typename MatrixType , typename VectorType >
GrowingVectorMemory<VectorType> PointerMatrixAux< MatrixType, VectorType >::my_memory
mutableprivate

The backup memory if none was provided.

Definition at line 325 of file pointer_matrix.h.

◆ mem

template<typename MatrixType , typename VectorType >
SmartPointer<VectorMemory<VectorType>, PointerMatrixAux<MatrixType, VectorType> > PointerMatrixAux< MatrixType, VectorType >::mem
mutableprivate

Object for getting the auxiliary vector.

Definition at line 332 of file pointer_matrix.h.

◆ m [2/3]

template<typename MatrixType , typename VectorType >
SmartPointer<const MatrixType, PointerMatrixAux<MatrixType, VectorType> > PointerMatrixAux< MatrixType, VectorType >::m
private

The pointer to the actual matrix.

Definition at line 337 of file pointer_matrix.h.

◆ m [3/3]

template<typename number >
SmartPointer<const Vector<number>, PointerMatrixVector<number> > PointerMatrixVector< number >::m
private

The pointer to the actual matrix.

Definition at line 453 of file pointer_matrix.h.

Friends

◆ FilteredMatrixBlock< VectorType >

template<typename VectorType>
friend class FilteredMatrixBlock< VectorType >
friend

FilteredMatrixBlock accesses pre_filter() and post_filter().

Definition at line 569 of file filtered_matrix.h.

Physics::Elasticity::Kinematics::C
SymmetricTensor< 2, dim, Number > C(const Tensor< 2, dim, Number > &F)
FullMatrix< double >
BlockMatrixArray
Definition: block_matrix_array.h:118