DUNE PDELab (unstable)
A cache storing a compile time selection of local finite element implementations. More...
#include <dune/localfunctions/common/localfiniteelementvariantcache.hh>
Public Types | |
| using | FiniteElementType = typename GenerateLFEVariant< Implementations >::type |
| Type of exported LocalFiniteElement's. More... | |
Public Member Functions | |
| template<class... Args> | |
| LocalFiniteElementVariantCache (Args &&... args) | |
| Default constructor. More... | |
| LocalFiniteElementVariantCache (const LocalFiniteElementVariantCache &other)=default | |
| Copy constructor. | |
| LocalFiniteElementVariantCache (LocalFiniteElementVariantCache &&other)=default | |
| Move constructor. | |
| LocalFiniteElementVariantCache & | operator= (const LocalFiniteElementVariantCache &other)=default |
| Copy assignment. | |
| LocalFiniteElementVariantCache & | operator= (LocalFiniteElementVariantCache &&other)=default |
| Move assignment. | |
| template<class... Key> | |
| const auto & | get (const Key &... key) const |
| Get the LocalFiniteElement for the given key data. More... | |
Detailed Description
class Dune::LocalFiniteElementVariantCache< Base >
A cache storing a compile time selection of local finite element implementations.
This class stores a compile time selection of LocalFiniteElement implementations. The exported FiniteElementType is a LocalFiniteElementVariant<Implementations...>.
The base class is required to implement two methods: getImplementations() and index(). The index(key...) method computes an index that uniquely identifies a LocalFiniteElement implementation for the provided key data. The getImplementations() method returns a std::tuple with one entry for each LocalFiniteElement implementation. Each entry is an std::pair consisting of the index of the implementation and a callable object that creates a corresponding LocalFiniteElement implementation. If the index within such a pair is std::numeric_limits<IndexType>::max(), then the respective callable is ignored and no LocalFiniteElement is stored. This may be used to disable certain LocalFiniteElement implementations in the tuple depending on run-time data (e.g. the LagrangePyramidLocalFiniteElement has to be disabled if the order provided at run-time exceeds the maximal implemented order two).
The constructor forwards all arguments to the base class.
For performance reasons all LocalFiniteElement implementations are created during construction and stored in an std::vector according to the associated indices. Hence densely packed indices should be preferred to avoid wasting space for empty LocalFiniteElementVariant's string no implementation.
- Template Parameters
-
Base Type of the base class providing getImplementations() and index().
Member Typedef Documentation
◆ FiniteElementType
| using Dune::LocalFiniteElementVariantCache< Base >::FiniteElementType = typename GenerateLFEVariant<Implementations>::type |
Type of exported LocalFiniteElement's.
This is a LocalFiniteElementVariant<Implementation...> with Implementations... being the list of all provided implementations.
Constructor & Destructor Documentation
◆ LocalFiniteElementVariantCache()
|
inline |
Default constructor.
Prefills the cache with all implementations.
References Dune::Hybrid::forEach(), and Dune::Hybrid::max.
Member Function Documentation
◆ get()
|
inline |
Get the LocalFiniteElement for the given key data.
- Exceptions
-
Dune::RangeError If the cache doesn't hold a value matching the requested type.
References DUNE_THROW.
The documentation for this class was generated from the following file:
- dune/localfunctions/common/localfiniteelementvariantcache.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(May 19, 22:31, 2026)