|
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A >::CreateIterator | Dune::SparsityPatternInitializer< T, A, n, m >::CreateIterator |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A >::size_type | Dune::SparsityPatternInitializer< T, A, n, m >::size_type |
| |
| typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, TA > | Dune::MatrixInitializer< transpose, T, TA, n, m >::Matrix |
| |
| typedef Matrix::CreateIterator | Dune::MatrixInitializer< transpose, T, TA, n, m >::CreateIterator |
| |
| typedef Matrix::size_type | Dune::MatrixInitializer< transpose, T, TA, n, m >::size_type |
| |
| typedef Dune::BCRSMatrix< Dune::FieldMatrix< T, n, m >, TA > | Dune::MatrixInitializer< 1, T, TA, n, m >::Matrix |
| |
| typedef Matrix::CreateIterator | Dune::MatrixInitializer< 1, T, TA, n, m >::CreateIterator |
| |
| typedef Matrix::size_type | Dune::MatrixInitializer< 1, T, TA, n, m >::size_type |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::EntryAccumulatorFather< T, A, n, m >::Matrix |
| |
| typedef Matrix::RowIterator | Dune::EntryAccumulatorFather< T, A, n, m >::Row |
| |
| typedef Matrix::ColIterator | Dune::EntryAccumulatorFather< T, A, n, m >::Col |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, transpose >::Matrix |
| |
| typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, transpose >::size_type |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 0 >::Matrix |
| |
| typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 0 >::size_type |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 1 >::Matrix |
| |
| typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 1 >::size_type |
| |
| typedef BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 2 >::Matrix |
| |
| typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 2 >::size_type |
| |
| typedef FieldMatrix< T, n, m > | Dune::MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type |
| |
| typedef BCRSMatrix< typename MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type, std::allocator< typename MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type > > | Dune::MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >::type |
| |
| typedef FieldMatrix< T, n, m > | Dune::TransposedMatMultMatResult< FieldMatrix< T, k, n >, FieldMatrix< T, k, m > >::type |
| |
| typedef BCRSMatrix< typename MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type, std::allocator< typename MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type > > | Dune::TransposedMatMultMatResult< BCRSMatrix< FieldMatrix< T, k, n >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >::type |
| |
| typedef MultiTypeBlockMatrix< FirstRow, Args... > | Dune::MultiTypeBlockMatrix< FirstRow, Args >::type |
| |
| using | Dune::MultiTypeBlockMatrix< FirstRow, Args >::size_type = std::size_t |
| | Type used for sizes.
|
| |
| typedef FirstRow::field_type | Dune::MultiTypeBlockMatrix< FirstRow, Args >::field_type |
| |
| typedef FieldTraits< Arg0 >::field_type | Dune::FieldTraits< MultiTypeBlockVector< Arg0, Args... > >::field_type |
| |
| typedef FieldTraits< Arg0 >::real_type | Dune::FieldTraits< MultiTypeBlockVector< Arg0, Args... > >::real_type |
| |
| using | Dune::MultiTypeBlockVector< Args >::size_type = std::size_t |
| | Type used for vector sizes.
|
| |
| typedef MultiTypeBlockVector< Args... > | Dune::MultiTypeBlockVector< Args >::type |
| |
| typedef double | Dune::MultiTypeBlockVector< Args >::field_type |
| | The type used for scalars.
|
| |
|
| template<class T , class A , class A1 , class A2 , int n, int m, int k> |
| void | Dune::matMultTransposeMat (BCRSMatrix< FieldMatrix< T, n, k >, A > &res, const BCRSMatrix< FieldMatrix< T, n, m >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
| | Calculate product of a sparse matrix with a transposed sparse matrices ( \(C=A*B^T\)).
|
| |
| template<class T , class A , class A1 , class A2 , int n, int m, int k> |
| void | Dune::matMultMat (BCRSMatrix< FieldMatrix< T, n, m >, A > &res, const BCRSMatrix< FieldMatrix< T, n, k >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
| | Calculate product of two sparse matrices ( \(C=A*B\)).
|
| |
| template<class T , class A , class A1 , class A2 , int n, int m, int k> |
| void | Dune::transposeMatMultMat (BCRSMatrix< FieldMatrix< T, n, m >, A > &res, const BCRSMatrix< FieldMatrix< T, k, n >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
| | Calculate product of a transposed sparse matrix with another sparse matrices ( \(C=A^T*B\)).
|
| |
| template<class M > |
| auto | Dune::countNonZeros (const M &, typename std::enable_if_t< Dune::IsNumber< M >::value > *sfinae=nullptr) |
| | Get the number of nonzero fields in the matrix.
|
| |
| template<class M > |
| auto | Dune::countNonZeros (const M &matrix, typename std::enable_if_t<!Dune::IsNumber< M >::value > *sfinae=nullptr) |
| |
| static constexpr size_type | Dune::MultiTypeBlockMatrix< FirstRow, Args >::N () |
| | Return the number of matrix rows.
|
| |
| static constexpr size_type | Dune::MultiTypeBlockMatrix< FirstRow, Args >::size () |
| | Return the number of matrix rows.
|
| |
| static constexpr size_type | Dune::MultiTypeBlockMatrix< FirstRow, Args >::M () |
| | Return the number of matrix columns.
|
| |
| template<size_type index> |
| auto | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] (const std::integral_constant< size_type, index > indexVariable) -> decltype(std::get< index >(*this)) |
| | Random-access operator.
|
| |
| template<size_type index> |
| auto | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] (const std::integral_constant< size_type, index > indexVariable) const -> decltype(std::get< index >(*this)) |
| | Const random-access operator.
|
| |
| template<typename T > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator= (const T &newval) |
| |
| MultiTypeBlockMatrix & | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator*= (const field_type &k) |
| | vector space multiplication with scalar
|
| |
| MultiTypeBlockMatrix & | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator/= (const field_type &k) |
| | vector space division by scalar
|
| |
| MultiTypeBlockMatrix & | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator+= (const MultiTypeBlockMatrix &b) |
| | Add the entries of another matrix to this one.
|
| |
| MultiTypeBlockMatrix & | Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator-= (const MultiTypeBlockMatrix &b) |
| | Subtract the entries of another matrix from this one.
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::mv (const X &x, Y &y) const |
| | y = A x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::umv (const X &x, Y &y) const |
| | y += A x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmv (const X &x, Y &y) const |
| | y -= A x
|
| |
| template<typename AlphaType , typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmv (const AlphaType &alpha, const X &x, Y &y) const |
| | y += alpha A x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::mtv (const X &x, Y &y) const |
| | y = A^T x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::umtv (const X &x, Y &y) const |
| | y += A^T x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmtv (const X &x, Y &y) const |
| | y -= A^T x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmtv (const field_type &alpha, const X &x, Y &y) const |
| | y += alpha A^T x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::umhv (const X &x, Y &y) const |
| | y += A^H x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmhv (const X &x, Y &y) const |
| | y -= A^H x
|
| |
| template<typename X , typename Y > |
| void | Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmhv (const field_type &alpha, const X &x, Y &y) const |
| | y += alpha A^H x
|
| |
| auto | Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm2 () const |
| | square of frobenius norm, need for block recursion
|
| |
| FieldTraits< field_type >::real_type | Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm () const |
| | frobenius norm: sqrt(sum over squared values of entries)
|
| |
| auto | Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm () const |
| | Bastardized version of the infinity-norm / row-sum norm.
|
| |
| auto | Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm_real () const |
| | Bastardized version of the infinity-norm / row-sum norm.
|
| |
| template<typename T1 , typename... Args> |
| std::ostream & | Dune::operator<< (std::ostream &s, const MultiTypeBlockMatrix< T1, Args... > &m) |
| | << operator for a MultiTypeBlockMatrix
|
| |
| template<typename Trhs , typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver_Col< I, crow, ccol, remain_col >::calc_rhs (const TMatrix &A, TVector &x, TVector &v, Trhs &b, const K &w) |
| |
| template<typename Trhs , typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver_Col< I, crow, ccol, 0 >::calc_rhs (const TMatrix &, TVector &, TVector &, Trhs &, const K &) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::dbgs (const TMatrix &A, TVector &x, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::dbgs (const TMatrix &A, TVector &x, TVector &v, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::bsorf (const TMatrix &A, TVector &x, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::bsorf (const TMatrix &A, TVector &x, TVector &v, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::bsorb (const TMatrix &A, TVector &x, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::bsorb (const TMatrix &A, TVector &x, TVector &v, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::dbjac (const TMatrix &A, TVector &x, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >::dbjac (const TMatrix &A, TVector &x, TVector &v, const TVector &b, const K &w) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::dbgs (const TMatrix &, TVector &, TVector &, const TVector &, const K &) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::bsorf (const TMatrix &, TVector &, TVector &, const TVector &, const K &) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::bsorb (const TMatrix &, TVector &, TVector &, const TVector &, const K &) |
| |
| template<typename TVector , typename TMatrix , typename K > |
| static void | Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::dbjac (const TMatrix &, TVector &, TVector &, const TVector &, const K &) |
| |
| static constexpr size_type | Dune::MultiTypeBlockVector< Args >::size () |
| | Return the number of non-zero vector entries.
|
| |
| static constexpr size_type | Dune::MultiTypeBlockVector< Args >::N () |
| | Number of elements.
|
| |
| int | Dune::MultiTypeBlockVector< Args >::count () const |
| |
| size_type | Dune::MultiTypeBlockVector< Args >::dim () const |
| | Number of scalar elements.
|
| |
| template<size_type index> |
| std::tuple_element< index, TupleType >::type & | Dune::MultiTypeBlockVector< Args >::operator[] (const std::integral_constant< size_type, index > indexVariable) |
| | Random-access operator.
|
| |
| template<size_type index> |
| const std::tuple_element< index, TupleType >::type & | Dune::MultiTypeBlockVector< Args >::operator[] (const std::integral_constant< size_type, index > indexVariable) const |
| | Const random-access operator.
|
| |
| template<typename T > |
| void | Dune::MultiTypeBlockVector< Args >::operator= (const T &newval) |
| | Assignment operator.
|
| |
| void | Dune::MultiTypeBlockVector< Args >::operator+= (const type &newv) |
| |
| void | Dune::MultiTypeBlockVector< Args >::operator-= (const type &newv) |
| |
| template<class T , std::enable_if_t< IsNumber< T >::value, int > = 0> |
| void | Dune::MultiTypeBlockVector< Args >::operator*= (const T &w) |
| | Multiplication with a scalar.
|
| |
| template<class T , std::enable_if_t< IsNumber< T >::value, int > = 0> |
| void | Dune::MultiTypeBlockVector< Args >::operator/= (const T &w) |
| | Division by a scalar.
|
| |
| field_type | Dune::MultiTypeBlockVector< Args >::operator* (const type &newv) const |
| |
| field_type | Dune::MultiTypeBlockVector< Args >::dot (const type &newv) const |
| |
| auto | Dune::MultiTypeBlockVector< Args >::one_norm () const |
| | Compute the 1-norm.
|
| |
| auto | Dune::MultiTypeBlockVector< Args >::one_norm_real () const |
| | Compute the simplified 1-norm (uses 1-norm also for complex values)
|
| |
| FieldTraits< field_type >::real_type | Dune::MultiTypeBlockVector< Args >::two_norm2 () const |
| | Compute the squared Euclidean norm.
|
| |
| FieldTraits< field_type >::real_type | Dune::MultiTypeBlockVector< Args >::two_norm () const |
| | Compute the Euclidean norm.
|
| |
| FieldTraits< field_type >::real_type | Dune::MultiTypeBlockVector< Args >::infinity_norm () const |
| | Compute the maximum norm.
|
| |
| FieldTraits< field_type >::real_type | Dune::MultiTypeBlockVector< Args >::infinity_norm_real () const |
| | Compute the simplified maximum norm (uses 1-norm for complex values)
|
| |
| template<typename Ta > |
| void | Dune::MultiTypeBlockVector< Args >::axpy (const Ta &a, const type &y) |
| | Axpy operation on this vector (*this += a * y)
|
| |
| template<typename... Args> |
| std::ostream & | Dune::operator<< (std::ostream &s, const MultiTypeBlockVector< Args... > &v) |
| | Send MultiTypeBlockVector to an outstream.
|
| |
The interface of our matrices is designed according to what they represent from a mathematical point of view. The vector classes are representations of vector spaces:
The matrix classes represent linear maps \(A: V \mapsto W\) from vector space \(V\) to vector space \(W\) the recursive block structure of the matrix rows and columns immediately follows from the recursive block structure of the vectors representing the domain and range of the mapping, respectively: