dune-istl 2.10
Loading...
Searching...
No Matches
Collaboration diagram for Dense Matrix and Vector Template Library:

Classes

struct  Dune::FieldTraits< BlockVector< B, A > >
 
struct  Dune::FieldTraits< MultiTypeBlockMatrix< Rows... > >
 
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 >
 
struct  std::tuple_element< i, Dune::MultiTypeBlockMatrix< Args... > >
 Make std::tuple_element work for MultiTypeBlockMatrix. More...
 
struct  std::tuple_size< Dune::MultiTypeBlockMatrix< Args... > >
 Make std::tuple_size work for MultiTypeBlockMatrix. More...
 
struct  Dune::FieldTraits< MultiTypeBlockVector< Args... > >
 
struct  Dune::FieldTraits< VariableBlockVector< B, A > >
 

Typedefs

typedef K Dune::DiagonalMatrix< class K, int n >::value_type
 
typedef value_type Dune::DiagonalMatrix< class K, int n >::field_type
 
typedef K Dune::DiagonalMatrix< class K, int n >::block_type
 
typedef std::size_t Dune::DiagonalMatrix< class K, int n >::size_type
 
typedef DiagonalRowVector< K, n > Dune::DiagonalMatrix< class K, int n >::row_type
 
typedef row_type Dune::DiagonalMatrix< class K, int n >::reference
 
typedef row_type Dune::DiagonalMatrix< class K, int n >::row_reference
 
typedef DiagonalRowVectorConst< K, n > Dune::DiagonalMatrix< class K, int n >::const_row_type
 
typedef const_row_type Dune::DiagonalMatrix< class K, int n >::const_reference
 
typedef const_row_type Dune::DiagonalMatrix< class K, int n >::const_row_reference
 
typedef ContainerWrapperIterator< const WrapperType, reference, referenceDune::DiagonalMatrix< class K, int n >::Iterator
 
typedef Iterator Dune::DiagonalMatrix< class K, int n >::iterator
 
typedef Iterator Dune::DiagonalMatrix< class K, int n >::RowIterator
 
typedef row_type::Iterator Dune::DiagonalMatrix< class K, int n >::ColIterator
 
typedef ContainerWrapperIterator< const WrapperType, const_reference, const_referenceDune::DiagonalMatrix< class K, int n >::ConstIterator
 
typedef ConstIterator Dune::DiagonalMatrix< class K, int n >::const_iterator
 
typedef ConstIterator Dune::DiagonalMatrix< class K, int n >::ConstRowIterator
 
typedef const_row_type::ConstIterator Dune::DiagonalMatrix< class K, int n >::ConstColIterator
 
typedef K Dune::DiagonalRowVectorConst< class K, int n >::field_type
 
typedef K Dune::DiagonalRowVectorConst< class K, int n >::block_type
 
typedef std::size_t Dune::DiagonalRowVectorConst< class K, int n >::size_type
 
typedef ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & > Dune::DiagonalRowVectorConst< class K, int n >::ConstIterator
 
typedef ConstIterator Dune::DiagonalRowVectorConst< class K, int n >::const_iterator
 
typedef K Dune::DiagonalRowVector< class K, int n >::field_type
 
typedef K Dune::DiagonalRowVector< class K, int n >::block_type
 
typedef std::size_t Dune::DiagonalRowVector< class K, int n >::size_type
 
typedef ContainerWrapperIterator< DiagonalRowVector< K, n >, K, K & > Dune::DiagonalRowVector< class K, int n >::Iterator
 
typedef Iterator Dune::DiagonalRowVector< class K, int n >::iterator
 
typedef ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & > Dune::DiagonalRowVector< class K, int n >::ConstIterator
 
typedef ConstIterator Dune::DiagonalRowVector< class K, int n >::const_iterator
 
typedef MultiTypeBlockMatrix< FirstRow, Args... > Dune::MultiTypeBlockMatrix< FirstRow, Args >::type
 
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::size_type = std::size_t
 Type used for sizes.
 
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::field_type = Std::detected_t< std::common_type_t, typename FieldTraits< FirstRow >::field_type, typename FieldTraits< Args >::field_type... >
 The type used for scalars.
 
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::real_type = Std::detected_t< std::common_type_t, typename FieldTraits< FirstRow >::real_type, typename FieldTraits< Args >::real_type... >
 The type used for real values.
 
using Dune::FieldTraits< MultiTypeBlockMatrix< Rows... > >::field_type = typename MultiTypeBlockMatrix< Rows... >::field_type
 
using Dune::FieldTraits< MultiTypeBlockMatrix< Rows... > >::real_type = typename MultiTypeBlockMatrix< Rows... >::real_type
 
using std::tuple_element< i, Dune::MultiTypeBlockMatrix< Args... > >::type = typename std::tuple_element< i, std::tuple< Args... > >::type
 
typedef FieldTraits< K >::field_type Dune::FieldTraits< DiagonalMatrix< K, n > >::field_type
 
typedef FieldTraits< K >::real_type Dune::FieldTraits< DiagonalMatrix< K, n > >::real_type
 
typedef DiagonalRowVectorConst< K, n > Dune::const_reference< DiagonalRowVector< K, n > >::type
 
typedef DiagonalRowVectorConst< K, n > Dune::const_reference< DiagonalRowVectorConst< K, n > >::type
 
typedef DiagonalRowVector< K, n > Dune::mutable_reference< DiagonalRowVector< K, n > >::type
 
typedef DiagonalRowVector< K, n > Dune::mutable_reference< DiagonalRowVectorConst< K, n > >::type
 

Functions

std::ostreamDune::operator<< (std::ostream &s, const DenseMatrix< MAT > &a)
 
static constexpr size_type size ()
 
constexpr DiagonalMatrix ()=default
 
 DiagonalMatrix (const K &k)
 
 DiagonalMatrix (const FieldVector< K, n > &diag)
 
 DiagonalMatrix (std::initializer_list< K > const &l)
 
DiagonalMatrixoperator= (const K &k)
 
bool identical (const DiagonalMatrix< K, n > &other) const
 
DiagonalMatrix< K, n > transposed () const
 
Iterator begin ()
 
Iterator end ()
 
Iterator beforeEnd ()
 
Iterator beforeBegin ()
 
DiagonalMatrixoperator+= (const DiagonalMatrix &y)
 
DiagonalMatrixoperator-= (const DiagonalMatrix &y)
 
DiagonalMatrixoperator+= (const K &k)
 
DiagonalMatrixoperator-= (const K &k)
 
DiagonalMatrixoperator*= (const K &k)
 
DiagonalMatrixoperator/= (const K &k)
 
bool operator== (const DiagonalMatrix &other) const
 
bool operator!= (const DiagonalMatrix &other) const
 
void mv (const X &x, Y &y) const
 
void mtv (const X &x, Y &y) const
 
void umv (const X &x, Y &y) const
 
void umtv (const X &x, Y &y) const
 
void umhv (const X &x, Y &y) const
 
void mmv (const X &x, Y &y) const
 
void mmtv (const X &x, Y &y) const
 
void mmhv (const X &x, Y &y) const
 
void usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
void usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
void usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
double frobenius_norm () const
 
double frobenius_norm2 () const
 
double infinity_norm () const
 
double infinity_norm_real () const
 
void solve (V &x, const V &b) const
 
void invert ()
 
determinant () const
 
static constexpr size_type N ()
 
static constexpr size_type M ()
 
bool exists (size_type i, size_type j) const
 
reference operator[] (size_type i)
 
const K & diagonal (size_type i) const
 
const FieldVector< K, n > & diagonal () const
 
 DiagonalMatrixWrapper ()
 
 DiagonalMatrixWrapper (const DiagonalMatrixType *mat)
 
size_type realIndex (int i) const
 
row_type * pointer (int i) const
 
bool identical (const DiagonalMatrixWrapper &other) const
 
 DiagonalRowVectorConst ()
 
 DiagonalRowVectorConst (K *p, int col)
 
bool identical (const DiagonalRowVectorConst< K, n > &other) const
 
bool operator== (const DiagonalRowVectorConst &y) const
 
size_type dim () const
 
size_type rowIndex () const
 
K * pointer (size_type i) const
 
DiagonalRowVectorConstoperator& ()
 
 DiagonalRowVector ()
 
 DiagonalRowVector (K *p, int col)
 
 ContainerWrapperIterator ()
 
 ContainerWrapperIterator (CW containerWrapper, int position)
 
 ContainerWrapperIterator (OtherContainerWrapperIteratorType &other)
 
 ContainerWrapperIterator (const MyType &other)
 
ContainerWrapperIteratoroperator= (OtherContainerWrapperIteratorType &other)
 
T * operator-> () const
 
bool equals (const MyType &other) const
 
dereference () const
 
void increment ()
 
void decrement ()
 
elementAt (int i) const
 
void advance (int n)
 
std::ptrdiff_t distanceTo (OtherContainerWrapperIteratorType &other) const
 
std::ptrdiff_t index () const
 
std::ostreamoperator<< (std::ostream &s, const DenseVector< V > &v)
 
std::istreamoperator>> (std::istream &in, DynamicVector< K, Allocator > &v)
 
std::istreamoperator>> (std::istream &in, FieldVector< K, SIZE > &v)
 
friend auto operator* (const DiagonalMatrix &matrixA, const DiagonalMatrix< OtherScalar, n > &matrixB)
 
friend std::ostreamoperator<< (std::ostream &s, const DiagonalMatrix< K, n > &a)
 
static constexpr size_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::N ()
 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)
 
MultiTypeBlockMatrixDune::MultiTypeBlockMatrix< FirstRow, Args >::operator*= (const field_type &k)
 vector space multiplication with scalar
 
MultiTypeBlockMatrixDune::MultiTypeBlockMatrix< FirstRow, Args >::operator/= (const field_type &k)
 vector space division by scalar
 
MultiTypeBlockMatrixDune::MultiTypeBlockMatrix< FirstRow, Args >::operator+= (const MultiTypeBlockMatrix &b)
 Add the entries of another matrix to this one.
 
MultiTypeBlockMatrixDune::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
 
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm2 () const
 square of frobenius norm, need for block recursion
 
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm () const
 frobenius norm: sqrt(sum over squared values of entries)
 
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm () const
 Bastardized version of the infinity-norm / row-sum norm.
 
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm_real () const
 Bastardized version of the infinity-norm / row-sum norm.
 
template<typename T1 , typename... Args>
std::ostreamDune::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 &)
 
ConstIterator Dune::DiagonalMatrix< class K, int n >::begin () const
 
ConstIterator Dune::DiagonalMatrix< class K, int n >::end () const
 
ConstIterator Dune::DiagonalMatrix< class K, int n >::beforeEnd () const
 
ConstIterator Dune::DiagonalMatrix< class K, int n >::beforeBegin () const
 
const_reference Dune::DiagonalMatrix< class K, int n >::operator[] (size_type i) const
 
K & Dune::DiagonalMatrix< class K, int n >::diagonal (size_type i)
 
FieldVector< K, n > & Dune::DiagonalMatrix< class K, int n >::diagonal ()
 
const K & Dune::DiagonalRowVectorConst< class K, int n >::operator[] (size_type i) const
 
ConstIterator Dune::DiagonalRowVectorConst< class K, int n >::begin () const
 
ConstIterator Dune::DiagonalRowVectorConst< class K, int n >::end () const
 
ConstIterator Dune::DiagonalRowVectorConst< class K, int n >::beforeEnd () const
 
ConstIterator Dune::DiagonalRowVectorConst< class K, int n >::beforeBegin () const
 
size_type Dune::DiagonalRowVectorConst< class K, int n >::N () const
 
const K & Dune::DiagonalRowVectorConst< class K, int n >::diagonal () const
 
size_type Dune::DiagonalRowVectorConst< class K, int n >::realIndex (int i) const
 
DiagonalRowVectorDune::DiagonalRowVector< class K, int n >::operator= (const K &k)
 
K & Dune::DiagonalRowVector< class K, int n >::operator[] (size_type i)
 
Iterator Dune::DiagonalRowVector< class K, int n >::begin ()
 
Iterator Dune::DiagonalRowVector< class K, int n >::end ()
 
Iterator Dune::DiagonalRowVector< class K, int n >::beforeEnd ()
 
Iterator Dune::DiagonalRowVector< class K, int n >::beforeBegin ()
 
DiagonalRowVectorDune::DiagonalRowVector< class K, int n >::operator& ()
 
static void Dune::DenseMatrixAssigner< DenseMatrix, DiagonalMatrix< field, N > >::apply (DenseMatrix &denseMatrix, DiagonalMatrix< field, N > const &rhs)
 

Variables

static constexpr int Dune::DiagonalMatrix< class K, int n >::blocklevel
 
static constexpr int Dune::DiagonalMatrix< class K, int n >::rows
 
static constexpr int Dune::DiagonalMatrix< class K, int n >::cols
 
static constexpr int Dune::DiagonalRowVectorConst< class K, int n >::dimension
 
static constexpr int Dune::DiagonalRowVectorConst< class K, int n >::blocklevel
 
static constexpr int Dune::DiagonalRowVectorConst< class K, int n >::size
 
K * Dune::DiagonalRowVectorConst< class K, int n >::p_
 
size_type Dune::DiagonalRowVectorConst< class K, int n >::row_
 

Detailed Description

Typedef Documentation

◆ field_type [1/2]

template<typename FirstRow , typename... Args>
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::field_type = Std::detected_t<std::common_type_t, typename FieldTraits<FirstRow>::field_type, typename FieldTraits<Args>::field_type...>

The type used for scalars.

Use the std::common_type_t of the Args' field_type and use nonesuch if no implementation of std::common_type is provided for the given field_type arguments.

◆ field_type [2/2]

template<typename... Rows>
using Dune::FieldTraits< MultiTypeBlockMatrix< Rows... > >::field_type = typename MultiTypeBlockMatrix<Rows...>::field_type

◆ real_type [1/2]

template<typename FirstRow , typename... Args>
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::real_type = Std::detected_t<std::common_type_t, typename FieldTraits<FirstRow>::real_type, typename FieldTraits<Args>::real_type...>

The type used for real values.

Use the std::common_type_t of the Args' real_type and use nonesuch if no implementation of std::common_type is provided for the given real_type arguments.

◆ real_type [2/2]

template<typename... Rows>
using Dune::FieldTraits< MultiTypeBlockMatrix< Rows... > >::real_type = typename MultiTypeBlockMatrix<Rows...>::real_type

◆ size_type

template<typename FirstRow , typename... Args>
using Dune::MultiTypeBlockMatrix< FirstRow, Args >::size_type = std::size_t

Type used for sizes.

◆ type [1/2]

template<typename FirstRow , typename... Args>
typedef MultiTypeBlockMatrix<FirstRow, Args...> Dune::MultiTypeBlockMatrix< FirstRow, Args >::type

own class' type

◆ type [2/2]

template<size_t i, typename... Args>
using std::tuple_element< i, Dune::MultiTypeBlockMatrix< Args... > >::type = typename std::tuple_element<i, std::tuple<Args...> >::type

Function Documentation

◆ bsorb() [1/3]

template<int I, int crow>
template<typename TVector , typename TMatrix , typename K >
static void Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::bsorb ( const TMatrix &  ,
TVector &  ,
TVector &  ,
const TVector &  ,
const K &   
)
inlinestatic

◆ bsorb() [2/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ bsorb() [3/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ bsorf() [1/3]

template<int I, int crow>
template<typename TVector , typename TMatrix , typename K >
static void Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::bsorf ( const TMatrix &  ,
TVector &  ,
TVector &  ,
const TVector &  ,
const K &   
)
inlinestatic

◆ bsorf() [2/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ bsorf() [3/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ calc_rhs() [1/2]

template<int I, int crow, int ccol>
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 &   
)
inlinestatic

◆ calc_rhs() [2/2]

template<int I, int crow, int ccol, int remain_col>
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 
)
inlinestatic

iterating over one row in MultiTypeBlockMatrix to calculate right side b-A[i][j]*x[j]

◆ dbgs() [1/3]

template<int I, int crow>
template<typename TVector , typename TMatrix , typename K >
static void Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::dbgs ( const TMatrix &  ,
TVector &  ,
TVector &  ,
const TVector &  ,
const K &   
)
inlinestatic

◆ dbgs() [2/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

Gauss-Seidel solver for MultiTypeBlockMatrix & MultiTypeBlockVector types

◆ dbgs() [3/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ dbjac() [1/3]

template<int I, int crow>
template<typename TVector , typename TMatrix , typename K >
static void Dune::MultiTypeBlockMatrix_Solver< I, crow, 0 >::dbjac ( const TMatrix &  ,
TVector &  ,
TVector &  ,
const TVector &  ,
const K &   
)
inlinestatic

◆ dbjac() [2/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

Jacobi solver for MultiTypeBlockMatrix & MultiTypeBlockVector types

◆ dbjac() [3/3]

template<int I, int crow, int remain_row>
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 
)
inlinestatic

◆ frobenius_norm()

template<typename FirstRow , typename... Args>
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm ( ) const
inline

frobenius norm: sqrt(sum over squared values of entries)

◆ frobenius_norm2()

template<typename FirstRow , typename... Args>
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::frobenius_norm2 ( ) const
inline

square of frobenius norm, need for block recursion

◆ infinity_norm()

template<typename FirstRow , typename... Args>
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm ( ) const
inline

Bastardized version of the infinity-norm / row-sum norm.

◆ infinity_norm_real()

template<typename FirstRow , typename... Args>
real_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::infinity_norm_real ( ) const
inline

Bastardized version of the infinity-norm / row-sum norm.

◆ M()

template<typename FirstRow , typename... Args>
static constexpr size_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::M ( )
inlinestaticconstexpr

Return the number of matrix columns.

◆ mmhv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmhv ( const X &  x,
Y &  y 
) const
inline

y -= A^H x

◆ mmtv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmtv ( const X &  x,
Y &  y 
) const
inline

y -= A^T x

◆ mmv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::mmv ( const X &  x,
Y &  y 
) const
inline

y -= A x

◆ mtv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::mtv ( const X &  x,
Y &  y 
) const
inline

y = A^T x

◆ mv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::mv ( const X &  x,
Y &  y 
) const
inline

y = A x

◆ N()

template<typename FirstRow , typename... Args>
static constexpr size_type Dune::MultiTypeBlockMatrix< FirstRow, Args >::N ( )
inlinestaticconstexpr

Return the number of matrix rows.

◆ operator*=()

template<typename FirstRow , typename... Args>
MultiTypeBlockMatrix & Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator*= ( const field_type k)
inline

vector space multiplication with scalar

◆ operator+=()

template<typename FirstRow , typename... Args>
MultiTypeBlockMatrix & Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator+= ( const MultiTypeBlockMatrix< FirstRow, Args > &  b)
inline

Add the entries of another matrix to this one.

Parameters
bThe matrix to add to this one. Its sparsity pattern has to be subset of the sparsity pattern of this matrix.

◆ operator-=()

template<typename FirstRow , typename... Args>
MultiTypeBlockMatrix & Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator-= ( const MultiTypeBlockMatrix< FirstRow, Args > &  b)
inline

Subtract the entries of another matrix from this one.

Parameters
bThe matrix to subtract from this one. Its sparsity pattern has to be subset of the sparsity pattern of this matrix.

◆ operator/=()

template<typename FirstRow , typename... Args>
MultiTypeBlockMatrix & Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator/= ( const field_type k)
inline

vector space division by scalar

◆ operator<<()

template<typename T1 , typename... Args>
std::ostream & Dune::operator<< ( std::ostream s,
const MultiTypeBlockMatrix< T1, Args... > &  m 
)

<< operator for a MultiTypeBlockMatrix

operator<< for printing out a MultiTypeBlockMatrix

◆ operator=()

template<typename FirstRow , typename... Args>
template<typename T >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator= ( const T &  newval)
inline

assignment operator

◆ operator[]() [1/2]

template<typename FirstRow , typename... Args>
template<size_type index>
auto Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] ( const std::integral_constant< size_type, index indexVariable) -> decltype(std::get<index>(*this))
inline

Random-access operator.

This method mimics the behavior of normal vector access with square brackets like, e.g., m[5] = .... The problem is that the return type is different for each value of the argument in the brackets. Therefore we implement a trick using std::integral_constant. To access the first row of a MultiTypeBlockMatrix named m write

The name '_0' used here as a static replacement of the integer number zero is arbitrary. Any other variable name can be used. If you don't like the separate variable, you can write

◆ operator[]() [2/2]

template<typename FirstRow , typename... Args>
template<size_type index>
auto Dune::MultiTypeBlockMatrix< FirstRow, Args >::operator[] ( const std::integral_constant< size_type, index indexVariable) const -> decltype(std::get<index>(*this))
inline

Const random-access operator.

This is the const version of the random-access operator. See the non-const version for a full explanation of how to use it.

◆ umhv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::umhv ( const X &  x,
Y &  y 
) const
inline

y += A^H x

◆ umtv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::umtv ( const X &  x,
Y &  y 
) const
inline

y += A^T x

◆ umv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::umv ( const X &  x,
Y &  y 
) const
inline

y += A x

◆ usmhv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmhv ( const field_type alpha,
const X &  x,
Y &  y 
) const
inline

y += alpha A^H x

◆ usmtv()

template<typename FirstRow , typename... Args>
template<typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmtv ( const field_type alpha,
const X &  x,
Y &  y 
) const
inline

y += alpha A^T x

◆ usmv()

template<typename FirstRow , typename... Args>
template<typename AlphaType , typename X , typename Y >
void Dune::MultiTypeBlockMatrix< FirstRow, Args >::usmv ( const AlphaType &  alpha,
const X &  x,
Y &  y 
) const
inline

y += alpha A x