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< EntityBaseType
 
typedef std::optional< EntityTypeEntityStorageType
 
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 Entityentity () const
 return entity
 
bool valid () const
 return true if entity pointer is set
 
const Geometrygeometry () const
 return geometry
 
const ReferenceElementTypereferenceElement () 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: