dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry > Class Template Reference

implementation of entity and geometry storage for basis function set and local functions More...

#include <dune/fem/storage/entitygeometry.hh>

Inheritance diagram for Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >:
Inheritance graph

Classes

struct  Empty
 

Public Types

typedef Entity EntityType
 entity type
 
typedef EntityType::Geometry Geometry
 type of geometry
 
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

 EntityGeometryStorageImpl ()
 constructor
 
 EntityGeometryStorageImpl (const EntityType &entity)
 constructor
 
 EntityGeometryStorageImpl (const EntityGeometryStorageImpl &other)
 copy constructor
 
EntityGeometryStorageImploperator= (const EntityGeometryStorageImpl &other)
 assignment operator
 
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
 

Protected Types

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_
 

Detailed Description

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

implementation of entity and geometry storage for basis function set and local functions

Template Parameters
Entityentity type
storeGeometryif true, geometry is also stored
Note
EntityGeometryStorageImpl must be a copyable object.

Member Typedef Documentation

◆ ctype

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

type of coordinate field

◆ EntityStorageType

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

◆ EntityType

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

entity type

◆ Geometry

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

type of geometry

◆ GeometryStorageType

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

◆ 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

type of reference element

Constructor & Destructor Documentation

◆ EntityGeometryStorageImpl() [1/3]

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

constructor

◆ EntityGeometryStorageImpl() [2/3]

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

constructor

◆ EntityGeometryStorageImpl() [3/3]

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

copy constructor

Member Function Documentation

◆ bind()

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

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)
inlineprotected

◆ entity()

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

return entity

◆ geometry()

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

return geometry

◆ operator=()

template<class Entity , bool storeGeometry = true>
EntityGeometryStorageImpl & Dune::Fem::EntityGeometryStorageImpl< Entity, storeGeometry >::operator= ( const EntityGeometryStorageImpl< Entity, storeGeometry > &  other)
inline

assignment operator

◆ referenceElement()

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

return reference element

◆ type()

template<class Entity , bool storeGeometry = true>
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 ( )
inline

release entity and geometry object

◆ valid()

template<class Entity , bool storeGeometry = true>
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_
protected

◆ geometry_

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

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