DUNE-FEM (unstable)

Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation > Class Template Reference

implementation of a basis function set for given entity More...

#include <dune/fem/space/basisfunctionset/transformed.hh>

Public Types

typedef Entity EntityType
 entity type
 
typedef ShapeFunctionSet ShapeFunctionSetType
 shape function set type
 
typedef ShapeFunctionSetType::FunctionSpaceType FunctionSpaceType
 type of function space
 
typedef FunctionSpaceType::DomainType DomainType
 domain type
 
typedef FunctionSpaceType::RangeType RangeType
 range type
 
typedef FunctionSpaceType::JacobianRangeType JacobianRangeType
 jacobian range type
 
typedef FunctionSpaceType::HessianRangeType HessianRangeType
 hessian range type
 
typedef std::decay_t< decltype(Dune::ReferenceElements< ctype, GeometryType::coorddimension >::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
 type of reference element
 

Public Member Functions

 TransformedBasisFunctionSet ()
 constructor
 
 TransformedBasisFunctionSet (const EntityType &entity, const ShapeFunctionSet &shapeFunctionSet=ShapeFunctionSet())
 constructor
 
int order () const
 return order of basis function set
 
std::size_t size () const
 return size of basis function set
 
auto referenceElement () const -> decltype(Dune::ReferenceElements< ctype, GeometryType::coorddimension >::general(std::declval< const Dune::GeometryType & >()))
 return reference element
 
template<class QuadratureType , class Vector , class DofVector >
void axpy (const QuadratureType &quad, const Vector &values, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class QuadratureType , class VectorA , class VectorB , class DofVector >
void axpy (const QuadratureType &quad, const VectorA &valuesA, const VectorB &valuesB, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs More...
 
template<class Point , class DofVector >
void axpy (const Point &x, const RangeType &valueFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class Point , class DofVector >
void axpy (const Point &x, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class Point , class DofVector >
void axpy (const Point &x, const HessianRangeType &hessianFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class Point , class DofVector >
void axpy (const Point &x, const RangeType &valueFactor, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class QuadratureType , class DofVector , class RangeArray >
void evaluateAll (const QuadratureType &quad, const DofVector &dofs, RangeArray &ranges) const
 
template<class Point , class DofVector >
void evaluateAll (const Point &x, const DofVector &dofs, RangeType &value) const
 
template<class Point , class RangeArray >
void evaluateAll (const Point &x, RangeArray &values) const
 
template<class QuadratureType , class DofVector , class JacobianArray >
void jacobianAll (const QuadratureType &quad, const DofVector &dofs, JacobianArray &jacobians) const
 
template<class Point , class DofVector >
void jacobianAll (const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
 
template<class Point , class JacobianRangeArray >
void jacobianAll (const Point &x, JacobianRangeArray &jacobians) const
 
template<class Point , class DofVector , class HessianRange >
void hessianAll (const Point &x, const DofVector &dofs, HessianRange &hessian) const
 
template<class Point , class HessianRangeArray >
void hessianAll (const Point &x, HessianRangeArray &hessians) const
 
const Entityentity () const
 return entity
 
bool valid () const
 return true if entity pointer is set
 
Dune::GeometryType type () const
 return geometry type
 
const ShapeFunctionSetTypeshapeFunctionSet () const
 return shape function set
 

Detailed Description

template<class Entity, class ShapeFunctionSet, class Transformation>
class Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >

implementation of a basis function set for given entity

Template Parameters
Entityentity type
ShapeFunctionSetshape function set
Transformationtransformation
Note
ShapeFunctionSet must be a copyable object. For most non-trivial implementations, you may want to use a proxy, see file
<dune/fem/space/shapefunctionset/proxy.hh>

Member Function Documentation

◆ axpy()

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class QuadratureType , class VectorA , class VectorB , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::axpy ( const QuadratureType &  quad,
const VectorA &  valuesA,
const VectorB &  valuesB,
DofVector &  dofs 
) const
inline

evaluate all basis function and multiply with given values and add to dofs

Note
valuesA and valuesB can be vectors of RangeType or JacobianRangeType

References Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::axpy().

◆ evaluateAll() [1/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::evaluateAll ( const Point &  x,
const DofVector &  dofs,
RangeType value 
) const
inline

◆ evaluateAll() [2/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class RangeArray >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::evaluateAll ( const Point &  x,
RangeArray &  values 
) const
inline

◆ evaluateAll() [3/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class QuadratureType , class DofVector , class RangeArray >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::evaluateAll ( const QuadratureType &  quad,
const DofVector &  dofs,
RangeArray &  ranges 
) const
inline

◆ hessianAll() [1/2]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class DofVector , class HessianRange >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::hessianAll ( const Point &  x,
const DofVector &  dofs,
HessianRange &  hessian 
) const
inline
Todo:
please doc me

References DUNE_THROW.

◆ hessianAll() [2/2]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class HessianRangeArray >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::hessianAll ( const Point &  x,
HessianRangeArray &  hessians 
) const
inline
Todo:
please doc me

References DUNE_THROW.

◆ jacobianAll() [1/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::jacobianAll ( const Point &  x,
const DofVector &  dofs,
JacobianRangeType jacobian 
) const
inline

◆ jacobianAll() [2/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class JacobianRangeArray >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::jacobianAll ( const Point &  x,
JacobianRangeArray &  jacobians 
) const
inline

◆ jacobianAll() [3/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class QuadratureType , class DofVector , class JacobianArray >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::jacobianAll ( const QuadratureType &  quad,
const DofVector &  dofs,
JacobianArray &  jacobians 
) const
inline

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 24, 22:29, 2024)