struct Dune::MatrixDimension< M >
struct Dune::CompressionStatistics< size_type >
Statistics about compression achieved in implicit mode. More...
class Dune::ImplicitMatrixBuilder< M_ >
A wrapper for uniform access to the BCRSMatrix during and after the build stage in implicit build mode. More...
class Dune::BCRSMatrix< B, A >
A sparse block matrix with compressed row storage. More...
class Dune::BDMatrix< B, A >
A block-diagonal matrix. More...
class Dune::BTDMatrix< B, A >
A block-tridiagonal matrix. More...
class Dune::BlockVector< B, A >
A vector of blocks with memory management. More...
class Dune::Matrix< T, A >
A generic dynamic dense matrix. More...
struct Dune::MatMultMatResult< M1, M2 >
Helper TMP to get the result type of a sparse matrix matrix multiplication ( ) More...
struct Dune::MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >
struct Dune::MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >
struct Dune::TransposedMatMultMatResult< M1, M2 >
Helper TMP to get the result type of a sparse matrix matrix multiplication ( ) More...
struct Dune::TransposedMatMultMatResult< FieldMatrix< T, k, n >, FieldMatrix< T, k, m > >
struct Dune::TransposedMatMultMatResult< BCRSMatrix< FieldMatrix< T, k, n >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >
struct Dune::CheckIfDiagonalPresent< Matrix, blocklevel, l >
Check whether the a matrix has diagonal values on blocklevel recursion levels. More...
struct Dune::CheckIfDiagonalPresent< Matrix, 0, l >
class Dune::MultiTypeBlockMatrix< FirstRow, Args >
A Matrix class to support different block types. More...
struct Dune::CheckIfDiagonalPresent< MultiTypeBlockMatrix< T1, Args... >, blocklevel, l >
struct Dune::algmeta_itsteps< I, M >
class Dune::MultiTypeBlockMatrix_Solver_Col< I, crow, ccol, remain_col >
part of solvers for MultiTypeBlockVector & MultiTypeBlockMatrix types More...
class Dune::MultiTypeBlockMatrix_Solver_Col< I, crow, ccol, 0 >
class Dune::MultiTypeBlockMatrix_Solver< I, crow, remain_row >
solver for MultiTypeBlockVector & MultiTypeBlockMatrix types More...
class Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >
class Dune::MultiTypeBlockVector< Args >
A Vector class to support different block types. More...
class Dune::VariableBlockVector< B, A >
A Vector of blocks with different blocksizes. More...
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
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
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 ( ).
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 ( ).
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 ( ).
template<class M >
int Dune::countNonZeros (const M &matrix)
Get the number of nonzero fields in the matrix.
static constexpr std::size_t Dune::MultiTypeBlockMatrix< FirstRow, Args >::N ()
Return the number of matrix rows.
static constexpr std::size_t Dune::MultiTypeBlockMatrix< FirstRow, Args >::M ()
Return the number of matrix columns.
template<std::size_t index>
auto Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] (const std::integral_constant< std::size_t, index > indexVariable ) -> decltype (std::get< index >(*this ))
Random-access operator.
template<std::size_t index>
auto Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] (const std::integral_constant< std::size_t, index > indexVariable ) const -> decltype (std::get< index >(*this ))
Const random-access operator.
template<typename T >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator= (const T &newval )
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 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 std::size_t Dune::MultiTypeBlockVector< Args >::size ()
Return the number of vector entries.
int Dune::MultiTypeBlockVector< Args >::count ()
template<std::size_t index>
std::tuple_element< index, tupleType >::type & Dune::MultiTypeBlockVector< Args >::operator[] (const std::integral_constant< std::size_t, index > indexVariable )
Random-access operator.
template<std::size_t index>
const std::tuple_element< index, tupleType >::type & Dune::MultiTypeBlockVector< Args >::operator[] (const std::integral_constant< std::size_t, 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 )
void Dune::MultiTypeBlockVector< Args >::operator*= (const int &w )
void Dune::MultiTypeBlockVector< Args >::operator*= (const float &w )
void Dune::MultiTypeBlockVector< Args >::operator*= (const double &w )
field_type Dune::MultiTypeBlockVector< Args >::operator* (const type &newv ) const
field_type Dune::MultiTypeBlockVector< Args >::dot (const type &newv ) const
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.
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: