dune-fem 2.12-git
Loading...
Searching...
No Matches
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>

Inheritance diagram for Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >:
Inheritance graph

Public Types

typedef BaseType::EntityType EntityType
 entity type
 
typedef BaseType::Geometry Geometry
 geometry
 
typedef BaseType::ShapeFunctionSetType 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 FunctionSpaceType::RangeFieldType RangeFieldType
 
typedef BaseType::ReferenceElementType ReferenceElementType
 type of reference element
 

Public Member Functions

 TransformedBasisFunctionSet ()
 constructor
 
 TransformedBasisFunctionSet (const EntityType &entity, const ShapeFunctionSet &shapeFunctionSet=ShapeFunctionSet())
 constructor
 
 TransformedBasisFunctionSet (const TransformedBasisFunctionSet &other)=default
 
TransformedBasisFunctionSetoperator= (const TransformedBasisFunctionSet &other)=default
 
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
 
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
 
Transformation transformation (const DomainType &x) const
 
const ShapeFunctionSetTypeshapeFunctionSet () const
 return shape function set
 
int order () const
 return order of basis function set
 
std::size_t size () const
 return size of basis function set
 
const Entityentity () const
 return entity
 
bool valid () const
 return true if entity pointer is set
 
const Geometrygeometry () const
 return geometry
 
Dune::GeometryType type () const
 return geometry type
 
const ReferenceElementTypereferenceElement () const
 return reference element
 
void bind (const EntityType &entity)
 set new entity object and geometry if enabled
 
void unbind ()
 release entity and geometry object
 

Static Public Attributes

static constexpr bool codegenShapeFunctionSet = detail::IsCodegenShapeFunctionSet< ShapeFunctionSetType >::value
 
static const int pointSetId = detail::SelectPointSetId< ShapeFunctionSetType >::value
 

Protected Types

typedef Geometry GeometryType
 
typedef GeometryType::ctype ctype
 
typedef GeometryType::JacobianTransposed JacobianTransposed
 
typedef std::optional< EntityTypeEntityStorageType
 
typedef std::conditional< storeGeometry, std::optional< Geometry >, Empty >::type GeometryStorageType
 

Protected Member Functions

void copyGeometry (const EntityGeometryStorageImpl &other)
 

Protected Attributes

ShapeFunctionSetType shapeFunctionSet_
 
EntityStorageType entity_
 
GeometryStorageType geometry_
 

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 Typedef Documentation

◆ ctype

template<class Entity , class ShapeFunctionSet , class Transformation >
typedef GeometryType::ctype Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::ctype
protected

◆ DomainType

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

domain type

◆ EntityStorageType

template<class Entity , bool storeGeometry = true>
typedef std::optional< EntityType > Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::EntityStorageType
protectedinherited

◆ EntityType

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

entity type

◆ FunctionSpaceType

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

type of function space

◆ Geometry

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

geometry

◆ GeometryStorageType

template<class Entity , bool storeGeometry = true>
typedef std::conditional<storeGeometry,std::optional<Geometry>,Empty>::type Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::GeometryStorageType
protectedinherited

◆ GeometryType

template<class Entity , class ShapeFunctionSet , class Transformation >
typedef Geometry Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::GeometryType
protected

◆ HessianRangeType

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

hessian range type

◆ JacobianRangeType

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

jacobian range type

◆ JacobianTransposed

template<class Entity , class ShapeFunctionSet , class Transformation >
typedef GeometryType::JacobianTransposed Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::JacobianTransposed
protected

◆ RangeFieldType

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

◆ RangeType

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

range type

◆ ReferenceElementType

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

type of reference element

◆ ShapeFunctionSetType

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

shape function set type

Constructor & Destructor Documentation

◆ TransformedBasisFunctionSet() [1/3]

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

constructor

◆ TransformedBasisFunctionSet() [2/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::TransformedBasisFunctionSet ( const EntityType entity,
const ShapeFunctionSet shapeFunctionSet = ShapeFunctionSet() 
)
inlineexplicit

constructor

◆ TransformedBasisFunctionSet() [3/3]

template<class Entity , class ShapeFunctionSet , class Transformation >
Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::TransformedBasisFunctionSet ( const TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation > &  other)
default

Member Function Documentation

◆ axpy() [1/6]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::axpy ( const Point &  x,
const HessianRangeType hessianFactor,
DofVector &  dofs 
) const
inline

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

◆ axpy() [2/6]

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

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

◆ axpy() [3/6]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class Point , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::axpy ( const Point &  x,
const RangeType valueFactor,
const JacobianRangeType jacobianFactor,
DofVector &  dofs 
) const
inline

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

◆ axpy() [4/6]

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

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

◆ axpy() [5/6]

template<class Entity , class ShapeFunctionSet , class Transformation >
template<class QuadratureType , class Vector , class DofVector >
void Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::axpy ( const QuadratureType &  quad,
const Vector &  values,
DofVector &  dofs 
) const
inline

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

◆ axpy() [6/6]

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

◆ bind()

template<class Entity , bool storeGeometry = true>
void Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::bind ( const EntityType entity)
inlineinherited

set new entity object and geometry if enabled

◆ copyGeometry()

template<class Entity , bool storeGeometry = true>
void Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::copyGeometry ( const EntityGeometryStorageImpl< Entity, storeGeometry > &  other)
inlineprotectedinherited

◆ entity()

template<class Entity , bool storeGeometry = true>
const Entity & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::entity ( ) const
inlineinherited

return entity

◆ 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
Todo:
please doc me

◆ 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
Todo:
please doc me

◆ 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

◆ geometry()

template<class Entity , bool storeGeometry = true>
const Geometry & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::geometry ( ) const
inlineinherited

return geometry

◆ 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

◆ 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

◆ 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
Todo:
please doc me

◆ 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
Todo:
please doc me

◆ 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

◆ operator=()

template<class Entity , class ShapeFunctionSet , class Transformation >
TransformedBasisFunctionSet & Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::operator= ( const TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation > &  other)
default

◆ order()

template<class Entity , class ShapeFunctionSet >
int Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::order ( ) const
inlineinherited

return order of basis function set

◆ referenceElement()

template<class Entity , bool storeGeometry = true>
const ReferenceElementType & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::referenceElement ( ) const
inlineinherited

return reference element

◆ shapeFunctionSet()

template<class Entity , class ShapeFunctionSet >
const ShapeFunctionSetType & Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::shapeFunctionSet ( ) const
inlineinherited

return shape function set

◆ size()

template<class Entity , class ShapeFunctionSet >
std::size_t Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::size ( ) const
inlineinherited

return size of basis function set

◆ transformation()

template<class Entity , class ShapeFunctionSet , class Transformation >
Transformation Dune::Fem::TransformedBasisFunctionSet< Entity, ShapeFunctionSet, Transformation >::transformation ( const DomainType x) const
inline

◆ type()

template<class Entity , bool storeGeometry = true>
Dune::GeometryType Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::type ( ) const
inlineinherited

return geometry type

◆ unbind()

template<class Entity , bool storeGeometry = true>
void Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::unbind ( )
inlineinherited

release entity and geometry object

◆ valid()

template<class Entity , bool storeGeometry = true>
bool Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::valid ( ) const
inlineinherited

return true if entity pointer is set

Member Data Documentation

◆ codegenShapeFunctionSet

template<class Entity , class ShapeFunctionSet >
constexpr bool Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::codegenShapeFunctionSet = detail::IsCodegenShapeFunctionSet< ShapeFunctionSetType >::value
staticconstexprinherited

◆ entity_

template<class Entity , bool storeGeometry = true>
EntityStorageType Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::entity_
protectedinherited

◆ geometry_

template<class Entity , bool storeGeometry = true>
GeometryStorageType Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::geometry_
protectedinherited

◆ pointSetId

template<class Entity , class ShapeFunctionSet >
const int Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::pointSetId = detail::SelectPointSetId< ShapeFunctionSetType >::value
staticinherited

◆ shapeFunctionSet_

template<class Entity , class ShapeFunctionSet >
ShapeFunctionSetType Dune::Fem::BasisFunctionSetStorage< Entity, ShapeFunctionSet >::shapeFunctionSet_
protectedinherited

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