dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet > Class Template Reference

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

Public Types

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

Public Member Functions

 DefaultBasisFunctionSet ()
 constructor
 
 DefaultBasisFunctionSet (const EntityType &entity, const ShapeFunctionSet &shapeFunctionSet=ShapeFunctionSet())
 constructor
 
 DefaultBasisFunctionSet (const DefaultBasisFunctionSet &other)
 
DefaultBasisFunctionSetoperator= (const DefaultBasisFunctionSet &other)
 
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, Geometry::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
 
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 derivatives of 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 derivatives 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
 Add H:D^2phi to each dof.
 
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 QuadratureType , class DofVector , class HessianArray >
void hessianAll (const QuadratureType &quad, const DofVector &dofs, HessianArray &hessians) const
 
template<class Point , class DofVector >
void hessianAll (const Point &x, const DofVector &dofs, HessianRangeType &hessian) const
 
template<class Point , class HessianRangeArray >
void hessianAll (const Point &x, HessianRangeArray &hessians) const
 
const Entity & entity () 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
 

Static Public Attributes

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

Protected Types

typedef ShapeFunctionSetType::FunctionSpaceType LocalFunctionSpaceType
 
typedef LocalFunctionSpaceType::JacobianRangeType LocalJacobianRangeType
 
typedef LocalFunctionSpaceType::HessianRangeType LocalHessianRangeType
 
typedef LocalFunctionSpaceType::RangeFieldType RangeFieldType
 
typedef EntityType::Geometry Geometry
 
typedef Geometry::ctype ctype
 

Protected Member Functions

template<class QuadratureType , class RangeArray , class DofVector >
void axpyImpl (const QuadratureType &quad, const RangeArray &rangeFactors, DofVector &dofs, const RangeType &) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class QuadratureType , class JacobianArray , class DofVector >
void axpyImpl (const QuadratureType &quad, const JacobianArray &jacobianFactors, DofVector &dofs, const JacobianRangeType &) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class QuadratureType >
const auto & rangeCache (const QuadratureType &quad) const
 
template<class QuadratureType >
const auto & jacobianCache (const QuadratureType &quad) const
 
Geometry geometry () const
 

Protected Attributes

const EntityTypeentity_ = nullptr
 
ShapeFunctionSetType shapeFunctionSet_
 
std::optional< Geometrygeometry_
 

Detailed Description

template<class Entity, class ShapeFunctionSet>
class Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >
   \brief implementation of a basis function set for given entity

   \tparam  Entity            entity type
   \tparam  ShapeFunctionSet  shape function set

   \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 >
typedef Geometry::ctype Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ctype
protected

◆ DomainType

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

domain type

◆ EntityType

template<class Entity , class ShapeFunctionSet >
typedef Entity Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::EntityType

entity type

◆ FunctionSpaceType

template<class Entity , class ShapeFunctionSet >
typedef ToNewDimDomainFunctionSpace<LocalFunctionSpaceType,Geometry::coorddimension>::Type Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::FunctionSpaceType

type of function space

◆ Geometry

template<class Entity , class ShapeFunctionSet >
typedef EntityType::Geometry Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::Geometry
protected

◆ HessianRangeType

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

hessian range type

◆ JacobianRangeType

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

jacobian range type

◆ LocalFunctionSpaceType

template<class Entity , class ShapeFunctionSet >
typedef ShapeFunctionSetType::FunctionSpaceType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::LocalFunctionSpaceType
protected

◆ LocalHessianRangeType

template<class Entity , class ShapeFunctionSet >
typedef LocalFunctionSpaceType::HessianRangeType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::LocalHessianRangeType
protected

◆ LocalJacobianRangeType

template<class Entity , class ShapeFunctionSet >
typedef LocalFunctionSpaceType::JacobianRangeType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::LocalJacobianRangeType
protected

◆ RangeFieldType

template<class Entity , class ShapeFunctionSet >
typedef LocalFunctionSpaceType::RangeFieldType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::RangeFieldType
protected

◆ RangeType

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

range type

◆ ReferenceElementType

template<class Entity , class ShapeFunctionSet >
typedef std::decay_t< decltype( Dune::ReferenceElements< ctype, Geometry::coorddimension >::general( std::declval< const Dune::GeometryType & >() ) ) > Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ReferenceElementType

type of reference element

◆ ScalarFunctionSpaceType

template<class Entity , class ShapeFunctionSet >
typedef FunctionSpaceType::ScalarFunctionSpaceType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ScalarFunctionSpaceType

◆ ScalarJacobianRangeType

template<class Entity , class ShapeFunctionSet >
typedef ScalarFunctionSpaceType::JacobianRangeType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ScalarJacobianRangeType

◆ ScalarRangeType

template<class Entity , class ShapeFunctionSet >
typedef ScalarFunctionSpaceType::RangeType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ScalarRangeType

◆ ShapeFunctionSetType

template<class Entity , class ShapeFunctionSet >
typedef ShapeFunctionSet Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::ShapeFunctionSetType

shape function set type

Constructor & Destructor Documentation

◆ DefaultBasisFunctionSet() [1/3]

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

constructor

◆ DefaultBasisFunctionSet() [2/3]

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

constructor

◆ DefaultBasisFunctionSet() [3/3]

template<class Entity , class ShapeFunctionSet >
Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::DefaultBasisFunctionSet ( const DefaultBasisFunctionSet< Entity, ShapeFunctionSet > &  other)
inline

Member Function Documentation

◆ axpy() [1/6]

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

Add H:D^2phi to each dof.

◆ axpy() [2/6]

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

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

◆ axpy() [3/6]

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

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

◆ axpy() [4/6]

template<class Entity , class ShapeFunctionSet >
template<class Point , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::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 >
template<class QuadratureType , class Vector , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::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 >
template<class QuadratureType , class VectorA , class VectorB , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::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

◆ axpyImpl() [1/2]

template<class Entity , class ShapeFunctionSet >
template<class QuadratureType , class JacobianArray , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::axpyImpl ( const QuadratureType &  quad,
const JacobianArray &  jacobianFactors,
DofVector &  dofs,
const JacobianRangeType  
) const
inlineprotected

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

◆ axpyImpl() [2/2]

template<class Entity , class ShapeFunctionSet >
template<class QuadratureType , class RangeArray , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::axpyImpl ( const QuadratureType &  quad,
const RangeArray &  rangeFactors,
DofVector &  dofs,
const RangeType  
) const
inlineprotected

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

◆ entity()

template<class Entity , class ShapeFunctionSet >
const Entity & Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::entity ( ) const
inline

return entity

◆ evaluateAll() [1/3]

template<class Entity , class ShapeFunctionSet >
template<class Point , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::evaluateAll ( const Point &  x,
const DofVector &  dofs,
RangeType value 
) const
inline
Todo:
please doc me

◆ evaluateAll() [2/3]

template<class Entity , class ShapeFunctionSet >
template<class Point , class RangeArray >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::evaluateAll ( const Point &  x,
RangeArray &  values 
) const
inline
Todo:
please doc me

◆ evaluateAll() [3/3]

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

◆ geometry()

template<class Entity , class ShapeFunctionSet >
Geometry Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::geometry ( ) const
inlineprotected

◆ hessianAll() [1/3]

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

◆ hessianAll() [2/3]

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

◆ hessianAll() [3/3]

template<class Entity , class ShapeFunctionSet >
template<class QuadratureType , class DofVector , class HessianArray >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::hessianAll ( const QuadratureType &  quad,
const DofVector &  dofs,
HessianArray &  hessians 
) const
inline
Todo:
please doc me

◆ jacobianAll() [1/3]

template<class Entity , class ShapeFunctionSet >
template<class Point , class DofVector >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::jacobianAll ( const Point &  x,
const DofVector &  dofs,
JacobianRangeType jacobian 
) const
inline
Todo:
please doc me

◆ jacobianAll() [2/3]

template<class Entity , class ShapeFunctionSet >
template<class Point , class JacobianRangeArray >
void Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::jacobianAll ( const Point &  x,
JacobianRangeArray &  jacobians 
) const
inline
Todo:
please doc me

◆ jacobianAll() [3/3]

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

◆ jacobianCache()

template<class Entity , class ShapeFunctionSet >
template<class QuadratureType >
const auto & Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::jacobianCache ( const QuadratureType &  quad) const
inlineprotected

◆ operator=()

template<class Entity , class ShapeFunctionSet >
DefaultBasisFunctionSet & Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::operator= ( const DefaultBasisFunctionSet< Entity, ShapeFunctionSet > &  other)
inline

◆ order()

template<class Entity , class ShapeFunctionSet >
int Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::order ( ) const
inline

return order of basis function set

◆ rangeCache()

template<class Entity , class ShapeFunctionSet >
template<class QuadratureType >
const auto & Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::rangeCache ( const QuadratureType &  quad) const
inlineprotected

◆ referenceElement()

template<class Entity , class ShapeFunctionSet >
auto Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::referenceElement ( ) const -> decltype( Dune::ReferenceElements< ctype, Geometry::coorddimension >::general( std::declval< const Dune::GeometryType & >() ) )
inline

return reference element

◆ shapeFunctionSet()

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

return shape function set

◆ size()

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

return size of basis function set

◆ type()

template<class Entity , class ShapeFunctionSet >
Dune::GeometryType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::type ( ) const
inline

return geometry type

◆ valid()

template<class Entity , class ShapeFunctionSet >
bool Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::valid ( ) const
inline

return true if entity pointer is set

Member Data Documentation

◆ codegenShapeFunctionSet

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

◆ entity_

template<class Entity , class ShapeFunctionSet >
const EntityType* Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::entity_ = nullptr
protected

◆ geometry_

template<class Entity , class ShapeFunctionSet >
std::optional< Geometry > Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::geometry_
protected

◆ pointSetId

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

◆ shapeFunctionSet_

template<class Entity , class ShapeFunctionSet >
ShapeFunctionSetType Dune::Fem::DefaultBasisFunctionSet< Entity, ShapeFunctionSet >::shapeFunctionSet_
protected

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