dune-localfunctions  2.6-git
Public Types | Public Member Functions | List of all members
Dune::FiniteElementFactoryInterface< Geometry, VertexOrder > Class Template Reference

Factory interface for global-valued finite elements. More...

#include <dune/localfunctions/common/interface.hh>

Inheritance diagram for Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >:
Inheritance graph

Public Types

typedef ImplementationDefined FiniteElement
 Type of the finite element. More...
 

Public Member Functions

 FiniteElementFactoryInterface (...)
 Construct a finite element factory. More...
 

Detailed Description

template<class Geometry, class VertexOrder>
class Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >

Factory interface for global-valued finite elements.

The main purpose of the factory class is to provide a concept for caching. Take for instance a global-valued finite element that wraps a local finite element. The local finite element will typically have very few variants, and the global-valued finite element will just apply a geometric transformation to the derivatives. The wrapped local finite elements can be stored inside the factory and any global-valued finite elements created by the factory just contain references or pointers. This way the local finite elements don't need to be created anew for each global-valued finite element.

The other purpose is to semi-standardize the interface used to actually create finite elements. "Semi" because the information needed to create an actual global-valued finite element will vary between finite element types. There are however certain types of information that are needed by a larger subset of all available finite elements, so it makes sense to define a common encoding for these types of information. On the other hand this information is often expensive to obtain, so it makes sense to only provide it when it is actually needed.

Member Typedef Documentation

◆ FiniteElement

template<class Geometry , class VertexOrder >
typedef ImplementationDefined Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::FiniteElement

Type of the finite element.

Should be an implementation of FiniteElementInterface

Note
May be an inline class instead of a typedef.

Constructor & Destructor Documentation

◆ FiniteElementFactoryInterface()

template<class Geometry , class VertexOrder >
Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::FiniteElementFactoryInterface (   ...)

Construct a finite element factory.

Note
The arguments of the constructor are implementation specific.

Member Function Documentation

◆ make() [1/5]

template<class Geometry , class VertexOrder >
const FiniteElement Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::make (   ...)

create a finite element

◆ make() [2/5]

template<class Geometry , class VertexOrder >
const FiniteElement Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::make ( const Geometry &  ,
const VertexOrder &  ,
  ... 
)

create a finite element from a geometry and a vertex ordering

◆ make() [3/5]

template<class Geometry , class VertexOrder >
const FiniteElement Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::make ( const Geometry &  ,
  ... 
)

create a finite element from a geometry

◆ make() [4/5]

template<class Geometry , class VertexOrder >
const FiniteElement Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::make ( const GeometryType &  ,
  ... 
)

create a finite element from a geometry type

Note
This signature should only be used when only the geometry type but not the full geometry or vertex ordering are needed.

◆ make() [5/5]

template<class Geometry , class VertexOrder >
const FiniteElement Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::make ( const VertexOrder &  ,
  ... 
)

create a finite element from a vertex ordering


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