KASKADE 7 development version
|
Defines a linear operator \(A:\ X\rightarrow Y\) with matrix representation \(M_A \in \mathbb{K}^{n\times m}\). More...
#include <concepts.hh>
Defines a linear operator \(A:\ X\rightarrow Y\) with matrix representation \(M_A \in \mathbb{K}^{n\times m}\).
This concept adds the following commutative diagram to the Dune::LinearOperator concept:
\[ \begin{CD} X @>A>> Y \\ @AA{S^{-1}_X}A\ @VV{S_Y}V \\ \mathbb{K}^n @>M_A>> \mathbb{K}^m \\ \end{CD} \]
The mappings \(S_X\) and \(S_Y\) are the coordinate mappings of the domain and range space of \(A\). \(M_A\) is the matrix representation corresponding to the canonical basis in \(\mathbb{K}^n\) and \(\mathbb{K}^m\ (\mathrm{dim}(X)=n, \mathrm{dim}(Y)=m) \).
The matrix-representation \(M_A\) can be accessed via MatrixGeneratedOperator<X,Y>::get<MatrixType>() thus leaving the choice of matrix type to the user (i.e. Dune::BCRSMatrix, MatrixAsTriplet,...). Note that the set of matrix types that can be obtained depends on the actual model of this concept.
For the application of \(S^{-1}_X\) or \(S_Y\) use the member functions:
Definition at line 477 of file concepts.hh.
Public Types | |
typedef X | domain_type |
typedef Y | range_type |
Public Member Functions | |
template<class MatrixType > | |
MatrixType | get () const |
Get matrix-representation of the operator. More... | |
template<class Vector > | |
void | rangeToVector (Y const &y, Vector &coord) const |
Get coordinate vector \(coord\in\mathbb{K}^m\) from \(y\in Y\). More... | |
template<class Vector > | |
void | vectorToDomain (Vector const &coord, X &x) const |
Get \(x\in X\) from coordinate vector \(coord\in\mathbb{K}^n\). More... | |
typedef X MatrixRepresentedOperator< X, Y >::domain_type |
type of the operator's domain
Definition at line 481 of file concepts.hh.
typedef Y MatrixRepresentedOperator< X, Y >::range_type |
type of the operator's domain
Definition at line 483 of file concepts.hh.
MatrixType MatrixRepresentedOperator< X, Y >::get | ( | ) | const |
Get matrix-representation of the operator.
void MatrixRepresentedOperator< X, Y >::rangeToVector | ( | Y const & | y, |
Vector & | coord | ||
) | const |
Get coordinate vector \(coord\in\mathbb{K}^m\) from \(y\in Y\).
Apply \(S_Y\) to \(y\in Y\): \(coord=S_Y(y)\).
The used vector type Vector must provide:
void MatrixRepresentedOperator< X, Y >::vectorToDomain | ( | Vector const & | coord, |
X & | x | ||
) | const |
Get \(x\in X\) from coordinate vector \(coord\in\mathbb{K}^n\).
Apply \(S^{-1}_X\) to \(coord\): \(x=S^{-1}_X(x)\).
The used vector type Vector must provide: