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 ( ).
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 >
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: