KASKADE 7 development version
Public Member Functions | Protected Attributes | List of all members
Kaskade::DiagonalCombiner< Scalar > Class Template Reference

A base class for implementing combiners with diagonal structure. More...

#include <combiner.hh>

Detailed Description

template<class Scalar = double>
class Kaskade::DiagonalCombiner< Scalar >

A base class for implementing combiners with diagonal structure.

Template Parameters
Scalara scalar field type, usually double.

This implements the Combiner concept: a matrix \( K \) mapping a subset of global degrees of freedom (those given by globalIndices()) to local degrees of freedom (shape functions).

In some finite element spaces, the matrix \( K \) is diagonal. This base class eases the implementation

Definition at line 35 of file combiner.hh.

Public Member Functions

 DiagonalCombiner (int n)
 
template<class Matrix >
void rightTransform (Matrix &A) const
 In-place computation of \( A \leftarrow A K \). More...
 
template<int n, int m>
void rightTransform (std::vector< VariationalArg< Scalar, n, m > > &v) const
 In-place computation of row vectors \( v \leftarrow v K \). More...
 
template<class Matrix >
void leftPseudoInverse (Matrix &A) const
 In-place computation of \( A \leftarrow K^+ A \). More...
 
 operator Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > () const
 

Protected Attributes

std::vector< Scalar > orient
 

Constructor & Destructor Documentation

◆ DiagonalCombiner()

template<class Scalar = double>
Kaskade::DiagonalCombiner< Scalar >::DiagonalCombiner ( int  n)
inline

Constructor.

Parameters
nthe number of shape functions on this cell

The matrix \( K \) is initialized to the identity. Derived classes shall overwrite the orient member storing the diagonal entries.

Definition at line 45 of file combiner.hh.

Member Function Documentation

◆ leftPseudoInverse()

template<class Scalar = double>
template<class Matrix >
void Kaskade::DiagonalCombiner< Scalar >::leftPseudoInverse ( Matrix &  A) const
inline

In-place computation of \( A \leftarrow K^+ A \).

Template Parameters
MatrixA matrix class satisfying the Dune::DenseMatrix interface.

Definition at line 78 of file combiner.hh.

◆ operator Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > >()

template<class Scalar = double>
Kaskade::DiagonalCombiner< Scalar >::operator Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > ( ) const
inline

Implicit conversion to a sparse matrix. This is just the diagonal.

Definition at line 89 of file combiner.hh.

◆ rightTransform() [1/2]

template<class Scalar = double>
template<class Matrix >
void Kaskade::DiagonalCombiner< Scalar >::rightTransform ( Matrix &  A) const
inline

In-place computation of \( A \leftarrow A K \).

Template Parameters
MatrixA matrix class satisfying the Dune::DenseMatrix interface.

Definition at line 54 of file combiner.hh.

◆ rightTransform() [2/2]

template<class Scalar = double>
template<int n, int m>
void Kaskade::DiagonalCombiner< Scalar >::rightTransform ( std::vector< VariationalArg< Scalar, n, m > > &  v) const
inline

In-place computation of row vectors \( v \leftarrow v K \).

Definition at line 64 of file combiner.hh.

Member Data Documentation

◆ orient

template<class Scalar = double>
std::vector<Scalar> Kaskade::DiagonalCombiner< Scalar >::orient
protected

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