dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 > Class Template Reference

JacobianRangeType class for matrix valued functions - derived from FieldMatrix. More...

#include <dune/fem/space/common/functionspace.hh>

Inheritance diagram for Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >:
Inheritance graph

Public Types

typedef DomainFieldImp DomainFieldType
 Intrinsic type used for values in the domain field (usually a double)
 
typedef RangeFieldImp RangeFieldType
 Intrinsic type used for values in the range field (usually a double)
 
typedef RangeMatrix< RangeFieldImp, m1, m2 > RangeType
 Type of range vector (using type of range field) has a Dune::FieldVector type interface.
 
typedef FieldMatrix< RangeFieldImp, m1 *m2, n > BaseType
 type of base class
 
typedef typename Base::size_type size_type
 
typedef typename Base::value_type value_type
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef typename Base::row_type row_type
 
typedef typename Base::row_reference row_reference
 
typedef typename Base::const_row_reference const_row_reference
 
typedef Traits::derived_type derived_type
 
typedef Traits::value_type field_type
 
typedef Traits::value_type block_type
 
typedef DenseIterator< DenseMatrix, row_type, row_referenceIterator
 
typedef Iterator iterator
 
typedef Iterator RowIterator
 
typedef std::remove_reference< row_reference >::type::Iterator ColIterator
 
typedef DenseIterator< const DenseMatrix, const row_type, const_row_referenceConstIterator
 
typedef ConstIterator const_iterator
 
typedef ConstIterator ConstRowIterator
 
typedef std::remove_reference< const_row_reference >::type::ConstIterator ConstColIterator
 
typedef FieldMatrix< K, ROWS, COLS > Ttype
 
typedef std::vector< FieldMatrix< K, ROWS, COLS > > RowType
 remember the value type
 

Public Member Functions

 MatrixMapping ()
 Default constructor.
 
 MatrixMapping (const RangeFieldImp &k)
 Constructor initializing the whole matrix with a scalar.
 
FieldVector< DomainFieldImp, n > & operator[] (int i)
 returning reference to row
 
const FieldVector< DomainFieldImp, n > & operator[] (int i) const
 returning reference to row
 
constexpr size_type rows () const
 
constexpr size_type cols () const
 
constexpr FieldMatrix< K, COLS, ROWS > transposed () const
 
constexpr row_reference operator[] (size_type i)
 
constexpr const_row_reference operator[] (size_type i) const
 
constexpr size_type size () const
 
constexpr Iterator begin ()
 
constexpr ConstIterator begin () const
 
constexpr Iterator end ()
 
constexpr ConstIterator end () const
 
constexpr Iterator beforeEnd ()
 
constexpr ConstIterator beforeEnd () const
 
constexpr Iterator beforeBegin ()
 
constexpr ConstIterator beforeBegin () const
 
constexpr derived_typeoperator+= (const DenseMatrix< Other > &x)
 
constexpr FieldMatrixoperator+= (const S &scalar)
 
DenseMatrix< FieldMatrix< K, ROWS, COLS > > & operator+= (const DenseMatrix &org)
 add matrix
 
constexpr derived_type operator- () const
 
constexpr derived_typeoperator-= (const DenseMatrix< Other > &x)
 
constexpr FieldMatrixoperator-= (const S &scalar)
 
DenseMatrix< FieldMatrix< K, ROWS, COLS > > & operator-= (const DenseMatrix &org)
 substract matrix
 
constexpr derived_typeoperator*= (const field_type &k)
 
constexpr FieldMatrixoperator*= (const S &scalar)
 
constexpr derived_typeoperator/= (const field_type &k)
 
constexpr FieldMatrixoperator/= (const S &scalar)
 
constexpr derived_typeaxpy (const field_type &a, const DenseMatrix< Other > &x)
 
constexpr bool operator== (const DenseMatrix< Other > &x) const
 
constexpr bool operator!= (const DenseMatrix< Other > &x) const
 
constexpr void mv (const X &x, Y &y) const
 
constexpr void mtv (const X &x, Y &y) const
 
constexpr void umv (const X &x, Y &y) const
 
constexpr void umtv (const X &x, Y &y) const
 
constexpr void umhv (const X &x, Y &y) const
 
constexpr void mmv (const X &x, Y &y) const
 
constexpr void mmtv (const X &x, Y &y) const
 
constexpr void mmhv (const X &x, Y &y) const
 
constexpr void usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
constexpr void usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
constexpr void usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 
constexpr FieldTraits< value_type >::real_type frobenius_norm () const
 
constexpr FieldTraits< value_type >::real_type frobenius_norm2 () const
 
constexpr FieldTraits< vt >::real_type infinity_norm () const
 
constexpr FieldTraits< vt >::real_type infinity_norm () const
 
constexpr FieldTraits< vt >::real_type infinity_norm_real () const
 
constexpr FieldTraits< vt >::real_type infinity_norm_real () const
 
void solve (V1 &x, const V2 &b, bool doPivoting=true) const
 
void invert (bool doPivoting=true)
 
field_type determinant (bool doPivoting=true) const
 
FieldMatrix< K, ROWS, COLS > & leftmultiply (const DenseMatrix< M2 > &M)
 
FieldMatrix< K, ROWS, COLS > & rightmultiply (const DenseMatrix< M2 > &M)
 
constexpr FieldMatrixrightmultiply (const FieldMatrix< K, r, c > &M)
 
constexpr size_type N () const
 
constexpr size_type M () const
 
constexpr bool exists (size_type i, size_type j) const
 
constexpr row_reference mat_access (size_type i)
 
constexpr const_row_reference mat_access (size_type i) const
 
constexpr row_reference mat_access (size_type i)
 
constexpr const_row_reference mat_access (size_type i) const
 
constexpr operator const_reference () const noexcept
 
constexpr operator const_reference () const noexcept
 
constexpr operator reference () noexcept
 
constexpr operator reference () noexcept
 
constexpr FieldMatrix< K, l, colsleftmultiplyany (const FieldMatrix< K, l, rows > &M) const
 
constexpr FieldMatrix< K, rows, l > rightmultiplyany (const FieldMatrix< K, cols, l > &M) const
 
void resize (int rows, int cols)
 
FieldMatrix< K, ROWS, COLS > & operator() (int row, int col)
 
const FieldMatrix< K, ROWS, COLS > & operator() (int row, int col) const
 
void mult (const FieldMatrix< K, ROWS, COLS > *vec, RowType &result) const
 
void mult (const RowType &vec, RowType &result) const
 
void multOEM (const FieldMatrix< K, ROWS, COLS > *vec, FieldMatrix< K, ROWS, COLS > *result) const
 
void multTransposed (const RowType &vec, RowType &result) const
 
void multiply (const DenseMatrix &A, const DenseMatrix &B)
 
void multiplyTransposed (const DenseMatrix &A, const DenseMatrix &B)
 
void multiply_AT_A (const DenseMatrix &A)
 this = A^T * A
 
void scale (const FieldMatrix< K, ROWS, COLS > &val)
 scale matrix with scalar
 
void print (std::ostream &s=std::cout) const
 print matrix
 
void clear ()
 

Static Public Member Functions

static constexpr size_type mat_rows ()
 
static constexpr size_type mat_rows ()
 
static constexpr size_type mat_cols ()
 
static constexpr size_type mat_cols ()
 

Static Public Attributes

static constexpr std::integral_constant< int, ROWS > rows
 
static constexpr std::integral_constant< int, COLS > cols
 
static constexpr int blocklevel
 

Static Protected Member Functions

static void luDecomposition (DenseMatrix< FieldMatrix< K, ROWS, COLS > > &A, Func func, Mask &nonsingularLanes, bool throwEarly, bool doPivoting)
 

Detailed Description

template<typename DomainFieldImp, typename RangeFieldImp, int n, int m1, int m2>
class Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >

JacobianRangeType class for matrix valued functions - derived from FieldMatrix.

Member Typedef Documentation

◆ BaseType

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
typedef FieldMatrix<RangeFieldImp,m1*m2,n> Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::BaseType

type of base class

◆ DomainFieldType

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
typedef DomainFieldImp Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::DomainFieldType

Intrinsic type used for values in the domain field (usually a double)

◆ RangeFieldType

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
typedef RangeFieldImp Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::RangeFieldType

Intrinsic type used for values in the range field (usually a double)

◆ RangeType

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
typedef RangeMatrix<RangeFieldImp, m1,m2> Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::RangeType

Type of range vector (using type of range field) has a Dune::FieldVector type interface.

◆ RowType

typedef std::vector< FieldMatrix< K, ROWS, COLS > > Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::RowType
inherited

remember the value type

◆ Ttype

typedef FieldMatrix< K, ROWS, COLS > Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::Ttype
inherited

Constructor & Destructor Documentation

◆ MatrixMapping() [1/2]

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::MatrixMapping ( )
inline

Default constructor.

◆ MatrixMapping() [2/2]

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::MatrixMapping ( const RangeFieldImp &  k)
inline

Constructor initializing the whole matrix with a scalar.

Member Function Documentation

◆ clear()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::clear ( )
inlineinherited

◆ mult() [1/2]

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mult ( const FieldMatrix< K, ROWS, COLS > *  vec,
RowType result 
) const
inlineinherited

◆ mult() [2/2]

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mult ( const RowType vec,
RowType result 
) const
inlineinherited

◆ multiply()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::multiply ( const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  A,
const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  B 
)
inlineinherited

◆ multiply_AT_A()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::multiply_AT_A ( const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  A)
inlineinherited

this = A^T * A

◆ multiplyTransposed()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::multiplyTransposed ( const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  A,
const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  B 
)
inlineinherited

◆ multOEM()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::multOEM ( const FieldMatrix< K, ROWS, COLS > *  vec,
FieldMatrix< K, ROWS, COLS > *  result 
) const
inlineinherited

◆ multTransposed()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::multTransposed ( const RowType vec,
RowType result 
) const
inlineinherited

◆ operator()() [1/2]

FieldMatrix< K, ROWS, COLS > & Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator() ( int  row,
int  col 
)
inlineinherited

◆ operator()() [2/2]

const FieldMatrix< K, ROWS, COLS > & Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator() ( int  row,
int  col 
) const
inlineinherited

◆ operator+=()

DenseMatrix< FieldMatrix< K, ROWS, COLS > > & Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator+= ( const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  org)
inlineinherited

add matrix

◆ operator-=()

DenseMatrix< FieldMatrix< K, ROWS, COLS > > & Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator-= ( const DenseMatrix< FieldMatrix< K, ROWS, COLS > > &  org)
inlineinherited

substract matrix

◆ operator[]() [1/2]

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
FieldVector< DomainFieldImp, n > & Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::operator[] ( int  i)
inline

returning reference to row

Parameters
inumber of row
Returns
Reference to row

◆ operator[]() [2/2]

template<typename DomainFieldImp , typename RangeFieldImp , int n, int m1, int m2>
const FieldVector< DomainFieldImp, n > & Dune::Fem::MatrixMapping< DomainFieldImp, RangeFieldImp, n, m1, m2 >::operator[] ( int  i) const
inline

returning reference to row

Parameters
inumber of row
Returns
Reference to row

◆ print()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::print ( std::ostream s = std::cout) const
inlineinherited

print matrix

◆ resize()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::resize ( int  rows,
int  cols 
)
inlineinherited

◆ scale()

void Dune::Fem::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::scale ( const FieldMatrix< K, ROWS, COLS > &  val)
inlineinherited

scale matrix with scalar


The documentation for this class was generated from the following file: