DUNE-FEM (unstable)
Factory interface for global-valued finite elements. More...
#include <dune/localfunctions/common/interface.hh>
Public Types | |
typedef ImplementationDefined | FiniteElement |
Type of the finite element. More... | |
Public Member Functions | |
FiniteElementFactoryInterface (...) | |
Construct a finite element factory. More... | |
Finite element creation methods | |
Each finite element factory implementation must provide at least one of these methods. The signatures may be extended by additional parameters, but the parameters that are specified here should be given first and in the order specified here. The return value of these functions is suitable for binding to a const reference – it will either be an rvalue (in which case binding to a const reference will create a copy whose lifetime is the same as the reference itself), or it will be an lvalue (in which case the factory must guarantee that it will be valid until the factory is destroyed or something else happens that explicitly invalidates all created finite elements). In any case, since global-valued finite element objects are copy-constructible, it is also possible to use the returned value to initialize a finite element object instead of a const reference. | |
const FiniteElement | make (const Geometry &, const VertexOrder &,...) |
create a finite element from a geometry and a vertex ordering | |
const FiniteElement | make (const Geometry &,...) |
create a finite element from a geometry | |
const FiniteElement | make (const VertexOrder &,...) |
create a finite element from a vertex ordering | |
const FiniteElement | make (const GeometryType &,...) |
create a finite element from a geometry type More... | |
const FiniteElement | make (...) |
create a finite element | |
Detailed Description
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
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()
Dune::FiniteElementFactoryInterface< Geometry, VertexOrder >::FiniteElementFactoryInterface | ( | ... | ) |
Construct a finite element factory.
- Note
- The arguments of the constructor are implementation specific.
Member Function Documentation
◆ make()
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.
The documentation for this class was generated from the following file:
- dune/localfunctions/common/interface.hh