dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range > Struct Template Reference

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

Inheritance diagram for Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >:
Inheritance graph

Public Types

typedef BaseType::EntityType EntityType
 entity type
 
typedef BaseType::Geometry Geometry
 
typedef FunctionSpace< typename Entity::Geometry::ctype, typename Range::value_type, Entity::Geometry::coorddimension, Range::dimension > FunctionSpaceType
 function space type
 
typedef FunctionSpaceType::DomainType DomainType
 range 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< typename EntityType::Geometry::ctype, EntityType::Geometry::coorddimension >::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
 type of reference element
 
typedef Geometry::ctype ctype
 type of coordinate field
 

Public Member Functions

void bind (const EntityType &entity)
 set new entity object and geometry if enabled
 
void unbind ()
 release entity and geometry object
 
Construction
 FiniteVolumeBasisFunctionSet ()
 
 FiniteVolumeBasisFunctionSet (const EntityType &entity)
 

Protected Types

typedef EntityGeometryStorage< Entity > BaseType
 
typedef std::optional< EntityType > EntityStorageType
 
typedef std::conditional< storeGeometry, std::optional< Geometry >, Empty >::type GeometryStorageType
 

Protected Member Functions

void copyGeometry (const EntityGeometryStorageImpl &other)
 

Protected Attributes

EntityStorageType entity_
 
GeometryStorageType geometry_
 

Public member methods

template<class Quadrature , class Vector , class DofVector >
void axpy (const Quadrature &quadrature, const Vector &values, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class Quadrature , class VectorA , class VectorB , class DofVector >
void axpy (const Quadrature &quadrature, 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 RangeType &valueFactor, const JacobianRangeType &jacobianFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class Quadrature , class DofVector , class RangeArray >
void evaluateAll (const Quadrature &quadrature, const DofVector &dofs, RangeArray &ranges) const
 evaluate all basis functions and store the result in the ranges array
 
template<class Point , class DofVector >
void evaluateAll (const Point &x, const DofVector &dofs, RangeType &value) const
 evaluate all basis functions and store the result in the ranges array
 
template<class Point , class RangeArray >
void evaluateAll (const Point &x, RangeArray &values) const
 evaluate all basis functions and store the result in the ranges array
 
template<class QuadratureType , class DofVector , class JacobianArray >
void jacobianAll (const QuadratureType &quadrature, const DofVector &dofs, JacobianArray &jacobians) const
 evaluate the jacobian of all basis functions and store the result in the jacobians array
 
template<class Point , class DofVector >
void jacobianAll (const Point &x, const DofVector &dofs, JacobianRangeType &jacobian) const
 evaluate the jacobian of all basis functions and store the result in the jacobians array
 
template<class Point , class JacobianRangeArray >
void jacobianAll (const Point &x, JacobianRangeArray &jacobians) const
 evaluate the jacobian of all basis functions and store the result in the jacobians array
 
template<class QuadratureType , class DofVector , class HessianArray >
void hessianAll (const QuadratureType &quadrature, 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
 
const Geometry & geometry () const
 return geometry
 
const ReferenceElementType & referenceElement () const
 return reference element
 
Dune::GeometryType type () const
 return geometry type
 
static constexpr int order ()
 return order of basis function set
 
static constexpr std::size_t size ()
 return size of basis function set
 
template<class DofVector >
void axpyImpl (const RangeType &valueFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 
template<class DofVector >
void axpyImpl (const JacobianRangeType &jacobianFactor, DofVector &dofs) const
 evaluate all basis function and multiply with given values and add to dofs
 

Member Typedef Documentation

◆ BaseType

template<class Entity , class Range >
typedef EntityGeometryStorage< Entity > Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::BaseType
protected

◆ ctype

template<class Entity , bool storeGeometry = true>
typedef Geometry::ctype Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::ctype
inherited

type of coordinate field

◆ DomainType

template<class Entity , class Range >
typedef FunctionSpaceType::DomainType Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::DomainType

range type

◆ EntityStorageType

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

◆ EntityType

template<class Entity , class Range >
typedef BaseType::EntityType Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::EntityType

entity type

◆ FunctionSpaceType

template<class Entity , class Range >
typedef FunctionSpace< typename Entity::Geometry::ctype, typename Range::value_type, Entity::Geometry::coorddimension, Range::dimension > Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::FunctionSpaceType

function space type

◆ Geometry

template<class Entity , class Range >
typedef BaseType::Geometry Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::Geometry

◆ GeometryStorageType

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

◆ HessianRangeType

template<class Entity , class Range >
typedef FunctionSpaceType::HessianRangeType Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::HessianRangeType

hessian range type

◆ JacobianRangeType

template<class Entity , class Range >
typedef FunctionSpaceType::JacobianRangeType Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::JacobianRangeType

jacobian range type

◆ RangeType

template<class Entity , class Range >
typedef FunctionSpaceType::RangeType Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::RangeType

range type

◆ ReferenceElementType

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

type of reference element

Constructor & Destructor Documentation

◆ FiniteVolumeBasisFunctionSet() [1/2]

template<class Entity , class Range >
Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::FiniteVolumeBasisFunctionSet ( )
inline

◆ FiniteVolumeBasisFunctionSet() [2/2]

template<class Entity , class Range >
Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::FiniteVolumeBasisFunctionSet ( const EntityType &  entity)
inlineexplicit

Member Function Documentation

◆ axpy() [1/5]

template<class Entity , class Range >
template<class Point , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::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() [2/5]

template<class Entity , class Range >
template<class Point , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::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() [3/5]

template<class Entity , class Range >
template<class Point , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::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() [4/5]

template<class Entity , class Range >
template<class Quadrature , class Vector , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::axpy ( const Quadrature &  quadrature,
const Vector &  values,
DofVector &  dofs 
) const
inline

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

◆ axpy() [5/5]

template<class Entity , class Range >
template<class Quadrature , class VectorA , class VectorB , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::axpy ( const Quadrature &  quadrature,
const VectorA &  valuesA,
const VectorB &  valuesB,
DofVector &  dofs 
) const
inline

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

◆ axpyImpl() [1/2]

template<class Entity , class Range >
template<class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::axpyImpl ( const JacobianRangeType &  jacobianFactor,
DofVector &  dofs 
) const
inlineprotected

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

◆ axpyImpl() [2/2]

template<class Entity , class Range >
template<class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::axpyImpl ( const RangeType &  valueFactor,
DofVector &  dofs 
) const
inlineprotected

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

◆ 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 , class Range >
const Entity & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::entity ( ) const
inline

return entity

◆ evaluateAll() [1/3]

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

evaluate all basis functions and store the result in the ranges array

◆ evaluateAll() [2/3]

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

evaluate all basis functions and store the result in the ranges array

◆ evaluateAll() [3/3]

template<class Entity , class Range >
template<class Quadrature , class DofVector , class RangeArray >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::evaluateAll ( const Quadrature &  quadrature,
const DofVector &  dofs,
RangeArray &  ranges 
) const
inline

evaluate all basis functions and store the result in the ranges array

◆ geometry()

template<class Entity , class Range >
const Geometry & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::geometry ( ) const
inline

return geometry

◆ hessianAll() [1/3]

template<class Entity , class Range >
template<class Point , class DofVector >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::hessianAll ( const Point &  x,
const DofVector &  dofs,
HessianRangeType &  hessian 
) const
inline

Todo:
please doc me

◆ hessianAll() [2/3]

template<class Entity , class Range >
template<class Point , class HessianRangeArray >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::hessianAll ( const Point &  x,
HessianRangeArray &  hessians 
) const
inline

Todo:
please doc me

◆ hessianAll() [3/3]

template<class Entity , class Range >
template<class QuadratureType , class DofVector , class HessianArray >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::hessianAll ( const QuadratureType &  quadrature,
const DofVector &  dofs,
HessianArray &  hessians 
) const
inline

Todo:
please doc me

◆ jacobianAll() [1/3]

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

evaluate the jacobian of all basis functions and store the result in the jacobians array

◆ jacobianAll() [2/3]

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

evaluate the jacobian of all basis functions and store the result in the jacobians array

◆ jacobianAll() [3/3]

template<class Entity , class Range >
template<class QuadratureType , class DofVector , class JacobianArray >
void Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::jacobianAll ( const QuadratureType &  quadrature,
const DofVector &  dofs,
JacobianArray &  jacobians 
) const
inline

evaluate the jacobian of all basis functions and store the result in the jacobians array

◆ order()

template<class Entity , class Range >
static constexpr int Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::order ( )
inlinestaticconstexpr

return order of basis function set

◆ referenceElement()

template<class Entity , class Range >
const ReferenceElementType & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::referenceElement ( ) const
inline

return reference element

◆ size()

template<class Entity , class Range >
static constexpr std::size_t Dune::Fem::FiniteVolumeBasisFunctionSet< Entity, Range >::size ( )
inlinestaticconstexpr

return size of basis function set

◆ type()

template<class Entity , class Range >
Dune::GeometryType Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::type ( ) const
inline

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 , class Range >
bool Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::valid ( ) const
inline

return true if entity pointer is set

Member Data Documentation

◆ 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

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