Reference documentation for deal.II version Git a2518c4284 2020-04-02 19:23:00 +0200
\(\newcommand{\vcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\vcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Functions
Collaboration diagram for Derived matrices:

Classes

class  Householder< number >
 
class  MatrixBlock< MatrixType >
 
class  PointerMatrixBase< VectorType >
 
class  PointerMatrix< MatrixType, VectorType >
 
class  PointerMatrixAux< MatrixType, VectorType >
 
class  PointerMatrixVector< number >
 

Functions

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")
 

Detailed Description

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

Function Documentation

◆ 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 482 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 496 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 511 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 526 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 542 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 558 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 574 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 590 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 606 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 623 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 482 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 496 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 511 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 526 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 542 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 558 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 574 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 590 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 606 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 623 of file pointer_matrix.h.