dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp >::LocalFunction Class Reference

#include <dune/fem/function/common/gridfunctionadapter.hh>

Inheritance diagram for Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp >::LocalFunction:
Inheritance graph

Public Types

typedef Traits::FunctionSpaceType FunctionSpaceType
 function space type
 
typedef FunctionSpaceType::DomainFieldType DomainFieldType
 domain field type (from function space)
 
typedef FunctionSpaceType::RangeFieldType RangeFieldType
 range field type (from function space)
 
typedef FunctionSpaceType::DomainType DomainType
 domain type (from function space)
 
typedef FunctionSpaceType::RangeType RangeType
 range type (from function space)
 
typedef FunctionSpaceType::JacobianRangeType JacobianRangeType
 jacobian type (from function space)
 
typedef FunctionSpaceType::HessianRangeType HessianRangeType
 hessian type (from function space)
 
typedef Traits::EntityType EntityType
 entity type
 
typedef EntityType::Geometry Geometry
 
typedef Traits::IntersectionType IntersectionType
 
typedef EntityType::Geometry::LocalCoordinate LocalCoordinateType
 local coordinate type
 
typedef Geometry::ctype ctype
 type of coordinate field
 
typedef std::decay_t< decltype(Dune::ReferenceElements< ctype, Geometry::coorddimension >::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
 type of reference element
 

Public Member Functions

 LocalFunction (const EntityType &entity, const DiscreteFunctionType &df)
 constructor initializing local function
 
 LocalFunction (const DiscreteFunctionType &df)
 
 LocalFunction (const LocalFunction &other)=default
 copy constructor
 
template<class PointType >
void evaluate (const PointType &x, RangeType &ret) const
 evaluate local function
 
template<class PointType >
RangeType operator() (const PointType &x) const
 
template<class PointType >
void jacobian (const PointType &x, JacobianRangeType &ret) const
 jacobian of local function
 
template<class PointType >
void hessian (const PointType &x, HessianRangeType &ret) const
 hessian of local function
 
template<class QuadratureType , class ... Vectors>
void evaluateQuadrature (const QuadratureType &quadrature, Vectors &... values) const
 evaluate function or jacobian of function for given quadrature
 
int order () const
 
void init (const EntityType &entity)
 init local function
 
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 const int dimDomain = GridPart::GridType::dimensionworld
 domain dimension (from function space)
 
static const int dimRange = FunctionSpaceType::dimRange
 range dimension (from function space)
 
static const int dimLocal = LocalCoordinateType::dimension
 local dimension
 

Protected Types

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

Protected Member Functions

template<class QuadratureType , class VectorType >
auto evaluateQuadratureImp (const QuadratureType &quadrature, VectorType &values) const -> std::enable_if_t< std::is_same< std::decay_t< decltype(values[0]) >, RangeType >::value >
 
template<class QuadratureType , class VectorType >
auto evaluateQuadratureImp (const QuadratureType &quadrature, VectorType &values) const -> std::enable_if_t< std::is_same< std::decay_t< decltype(values[0]) >, JacobianRangeType >::value >
 
const FunctionTypefunction () const
 
void copyGeometry (const EntityGeometryStorageImpl &other)
 

Protected Attributes

const FunctionTypefunction_
 
int order_
 
EntityStorageType entity_
 
GeometryStorageType geometry_
 

Member Typedef Documentation

◆ ctype

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

type of coordinate field

◆ EntityStorageType

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

◆ GeometryStorageType

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

◆ ReferenceElementType

template<class Entity , bool storeGeometry = true>
typedef std::decay_t< decltype( Dune::ReferenceElements< ctype, Geometry::coorddimension >:: general( std::declval< const Dune::GeometryType & >() ) ) > Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::ReferenceElementType
inherited

type of reference element

Member Function Documentation

◆ 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

◆ evaluateQuadratureImp()

template<class FunctionImp , class GridPartImp >
template<class QuadratureType , class VectorType >
auto Dune::Fem::BasicGridFunctionAdapter< FunctionImp, GridPartImp >::LocalFunction::evaluateQuadratureImp ( const QuadratureType &  quadrature,
VectorType &  values 
) const -> std::enable_if_t< std::is_same< std::decay_t< decltype(values[ 0 ] ) >, JacobianRangeType >::value >
inlineprotected

◆ geometry()

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

return geometry

◆ referenceElement()

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

return reference element

◆ 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

◆ 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 class was generated from the following file: