dune-localfunctions 2.10
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Dune::PolynomialBasisWithMatrix< Eval, CM, D, R > Class Template Reference

#include <dune/localfunctions/utility/polynomialbasis.hh>

Inheritance diagram for Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >:
Inheritance graph

Public Types

typedef CM CoefficientMatrix
 
typedef Base::Basis Basis
 
typedef CoefficientMatrix::Field StorageField
 
typedef LocalBasisTraits< D, dimension, FieldVector< D, dimension >, R, dimRange, FieldVector< R, dimRange >, FieldMatrix< R, dimRange, dimension > > Traits
 
typedef Evaluator::DomainVector DomainVector
 
template<class Fy >
using HessianFyType = FieldVector< FieldMatrix< Fy, dimension, dimension >, dimRange >
 
using HessianType = HessianFyType< R >
 

Public Member Functions

 PolynomialBasisWithMatrix (const Basis &basis)
 
template<class Matrix >
void fill (const Matrix &matrix)
 
template<class Matrix >
void fill (const Matrix &matrix, int size)
 
const Basisbasis () const
 
const CoefficientMatrixmatrix () const
 
unsigned int order () const
 
unsigned int size () const
 
void evaluateFunction (const typename Traits::DomainType &x, std::vector< typename Traits::RangeType > &out) const
 Evaluate all shape functions.
 
void evaluateJacobian (const typename Traits::DomainType &x, std::vector< typename Traits::JacobianType > &out) const
 Evaluate Jacobian of all shape functions.
 
void evaluateHessian (const typename Traits::DomainType &x, std::vector< HessianType > &out) const
 Evaluate Jacobian of all shape functions.
 
void partial (const std::array< unsigned int, dimension > &order, const typename Traits::DomainType &in, std::vector< typename Traits::RangeType > &out) const
 Evaluate partial derivatives of all shape functions.
 
template<unsigned int deriv, class F >
void evaluate (const DomainVector &x, F *values) const
 
template<unsigned int deriv, class DVector , class F >
void evaluate (const DVector &x, F *values) const
 
template<unsigned int deriv, class DVector , class RVector >
void evaluate (const DVector &x, RVector &values) const
 
template<class Fy >
void evaluate (const DomainVector &x, std::vector< FieldVector< Fy, dimRange > > &values) const
 
template<class DVector , class RVector >
void evaluate (const DVector &x, RVector &values) const
 
template<unsigned int deriv, class Vector >
void evaluateSingle (const DomainVector &x, Vector &values) const
 
template<unsigned int deriv, class Fy >
void evaluateSingle (const DomainVector &x, std::vector< FieldVector< FieldVector< Fy, LFETensor< Fy, dimension, deriv >::size >, dimRange > > &values) const
 
template<unsigned int deriv, class Fy >
void evaluateSingle (const DomainVector &x, std::vector< FieldVector< LFETensor< Fy, dimension, deriv >, dimRange > > &values) const
 
template<class Fy >
void jacobian (const DomainVector &x, std::vector< FieldMatrix< Fy, dimRange, dimension > > &values) const
 
template<class DVector , class RVector >
void jacobian (const DVector &x, RVector &values) const
 
template<class Fy >
void hessian (const DomainVector &x, std::vector< HessianFyType< Fy > > &values) const
 
template<class DVector , class HVector >
void hessian (const DVector &x, HVector &values) const
 
template<class Fy >
void integrate (std::vector< Fy > &values) const
 

Static Public Attributes

static const unsigned int dimension = Evaluator::dimension
 
static const unsigned int dimRange = Evaluator::dimRange*CoefficientMatrix::blockSize
 

Protected Attributes

const Basisbasis_
 
Evaluator eval_
 
unsigned int order_
 
unsigned int size_
 

Detailed Description

template<class Eval, class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
class Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >

Specialized version of PolynomialBasis with FieldMatrix for matrix coefficience and std::vector for container type with FieldVector as value type. This class stores the coefficient matrix with can be constructed via the fill method

Member Typedef Documentation

◆ Basis

template<class Eval , class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
typedef Base::Basis Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >::Basis

◆ CoefficientMatrix

template<class Eval , class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
typedef CM Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >::CoefficientMatrix

◆ DomainVector

template<class Eval , class CM , class D = double, class R = double>
typedef Evaluator::DomainVector Dune::PolynomialBasis< Eval, CM, D, R >::DomainVector
inherited

◆ HessianFyType

template<class Eval , class CM , class D = double, class R = double>
template<class Fy >
using Dune::PolynomialBasis< Eval, CM, D, R >::HessianFyType = FieldVector<FieldMatrix<Fy,dimension,dimension>,dimRange>
inherited

◆ HessianType

template<class Eval , class CM , class D = double, class R = double>
using Dune::PolynomialBasis< Eval, CM, D, R >::HessianType = HessianFyType<R>
inherited

◆ StorageField

template<class Eval , class CM , class D = double, class R = double>
typedef CoefficientMatrix::Field Dune::PolynomialBasis< Eval, CM, D, R >::StorageField
inherited

◆ Traits

template<class Eval , class CM , class D = double, class R = double>
typedef LocalBasisTraits<D,dimension,FieldVector<D,dimension>, R,dimRange,FieldVector<R,dimRange>, FieldMatrix<R,dimRange,dimension> > Dune::PolynomialBasis< Eval, CM, D, R >::Traits
inherited

Constructor & Destructor Documentation

◆ PolynomialBasisWithMatrix()

template<class Eval , class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >::PolynomialBasisWithMatrix ( const Basis basis)
inline

Member Function Documentation

◆ basis()

template<class Eval , class CM , class D = double, class R = double>
const Basis & Dune::PolynomialBasis< Eval, CM, D, R >::basis ( ) const
inlineinherited

◆ evaluate() [1/5]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class F >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluate ( const DomainVector x,
F *  values 
) const
inlineinherited

◆ evaluate() [2/5]

template<class Eval , class CM , class D = double, class R = double>
template<class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluate ( const DomainVector x,
std::vector< FieldVector< Fy, dimRange > > &  values 
) const
inlineinherited

◆ evaluate() [3/5]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class DVector , class F >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluate ( const DVector &  x,
F *  values 
) const
inlineinherited

◆ evaluate() [4/5]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class DVector , class RVector >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluate ( const DVector &  x,
RVector &  values 
) const
inlineinherited

◆ evaluate() [5/5]

template<class Eval , class CM , class D = double, class R = double>
template<class DVector , class RVector >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluate ( const DVector &  x,
RVector &  values 
) const
inlineinherited

◆ evaluateFunction()

template<class Eval , class CM , class D = double, class R = double>
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateFunction ( const typename Traits::DomainType x,
std::vector< typename Traits::RangeType > &  out 
) const
inlineinherited

Evaluate all shape functions.

◆ evaluateHessian()

template<class Eval , class CM , class D = double, class R = double>
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateHessian ( const typename Traits::DomainType x,
std::vector< HessianType > &  out 
) const
inlineinherited

Evaluate Jacobian of all shape functions.

◆ evaluateJacobian()

template<class Eval , class CM , class D = double, class R = double>
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateJacobian ( const typename Traits::DomainType x,
std::vector< typename Traits::JacobianType > &  out 
) const
inlineinherited

Evaluate Jacobian of all shape functions.

◆ evaluateSingle() [1/3]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateSingle ( const DomainVector x,
std::vector< FieldVector< FieldVector< Fy, LFETensor< Fy, dimension, deriv >::size >, dimRange > > &  values 
) const
inlineinherited

◆ evaluateSingle() [2/3]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateSingle ( const DomainVector x,
std::vector< FieldVector< LFETensor< Fy, dimension, deriv >, dimRange > > &  values 
) const
inlineinherited

◆ evaluateSingle() [3/3]

template<class Eval , class CM , class D = double, class R = double>
template<unsigned int deriv, class Vector >
void Dune::PolynomialBasis< Eval, CM, D, R >::evaluateSingle ( const DomainVector x,
Vector &  values 
) const
inlineinherited

◆ fill() [1/2]

template<class Eval , class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
template<class Matrix >
void Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >::fill ( const Matrix &  matrix)
inline

◆ fill() [2/2]

template<class Eval , class CM = SparseCoeffMatrix<typename Eval::Field,Eval::dimRange>, class D = double, class R = double>
template<class Matrix >
void Dune::PolynomialBasisWithMatrix< Eval, CM, D, R >::fill ( const Matrix &  matrix,
int  size 
)
inline

◆ hessian() [1/2]

template<class Eval , class CM , class D = double, class R = double>
template<class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::hessian ( const DomainVector x,
std::vector< HessianFyType< Fy > > &  values 
) const
inlineinherited

◆ hessian() [2/2]

template<class Eval , class CM , class D = double, class R = double>
template<class DVector , class HVector >
void Dune::PolynomialBasis< Eval, CM, D, R >::hessian ( const DVector &  x,
HVector &  values 
) const
inlineinherited

◆ integrate()

template<class Eval , class CM , class D = double, class R = double>
template<class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::integrate ( std::vector< Fy > &  values) const
inlineinherited

◆ jacobian() [1/2]

template<class Eval , class CM , class D = double, class R = double>
template<class Fy >
void Dune::PolynomialBasis< Eval, CM, D, R >::jacobian ( const DomainVector x,
std::vector< FieldMatrix< Fy, dimRange, dimension > > &  values 
) const
inlineinherited

◆ jacobian() [2/2]

template<class Eval , class CM , class D = double, class R = double>
template<class DVector , class RVector >
void Dune::PolynomialBasis< Eval, CM, D, R >::jacobian ( const DVector &  x,
RVector &  values 
) const
inlineinherited

◆ matrix()

template<class Eval , class CM , class D = double, class R = double>
const CoefficientMatrix & Dune::PolynomialBasis< Eval, CM, D, R >::matrix ( ) const
inlineinherited

◆ order()

template<class Eval , class CM , class D = double, class R = double>
unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::order ( ) const
inlineinherited

◆ partial()

template<class Eval , class CM , class D = double, class R = double>
void Dune::PolynomialBasis< Eval, CM, D, R >::partial ( const std::array< unsigned int, dimension > &  order,
const typename Traits::DomainType in,
std::vector< typename Traits::RangeType > &  out 
) const
inlineinherited

Evaluate partial derivatives of all shape functions.

◆ size()

template<class Eval , class CM , class D = double, class R = double>
unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::size ( ) const
inlineinherited

Member Data Documentation

◆ basis_

template<class Eval , class CM , class D = double, class R = double>
const Basis& Dune::PolynomialBasis< Eval, CM, D, R >::basis_
protectedinherited

◆ dimension

template<class Eval , class CM , class D = double, class R = double>
const unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::dimension = Evaluator::dimension
staticinherited

◆ dimRange

template<class Eval , class CM , class D = double, class R = double>
const unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::dimRange = Evaluator::dimRange*CoefficientMatrix::blockSize
staticinherited

◆ eval_

template<class Eval , class CM , class D = double, class R = double>
Evaluator Dune::PolynomialBasis< Eval, CM, D, R >::eval_
mutableprotectedinherited

◆ order_

template<class Eval , class CM , class D = double, class R = double>
unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::order_
protectedinherited

◆ size_

template<class Eval , class CM , class D = double, class R = double>
unsigned int Dune::PolynomialBasis< Eval, CM, D, R >::size_
protectedinherited

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