1#ifndef DUNE_FEM_HPDG_SPACE_BASISFUNCTIONSETS_VECTORIAL_HH
2#define DUNE_FEM_HPDG_SPACE_BASISFUNCTIONSETS_VECTORIAL_HH
6#include <dune/common/exceptions.hh>
8#include <dune/geometry/type.hh>
26 template<
class BasisFunctionSets,
class Range >
27 class VectorialBasisFunctionSets;
36 template<
class BasisFunctionSets,
class Range >
37 class VectorialBasisFunctionSetsTraits
40 using ImplementationType = VectorialBasisFunctionSets< BasisFunctionSets, Range >;
42 using GridPartType =
typename BasisFunctionSets::GridPartType;
43 using Types =
typename BasisFunctionSets::Types;
45 using KeyType =
typename BasisFunctionSets::KeyType;
47 static const int localBlockSize = Range::dimension * BasisFunctionSets::localBlockSize;
49 using DataType =
void *;
66 template<
class BasisFunctionSets,
class Range >
89 : basisFunctionSets_( basisFunctionSets )
113 DUNE_THROW( NotImplemented,
"Method encode() not implemented yet" );
119 DUNE_THROW( NotImplemented,
"Method decode() not implemented yet" );
137 return static_cast< std::size_t
>( Range::dimension ) *
impl().
order( type, key );
Definition: bindguard.hh:11
abstract interface class for a family of local basis function sets
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:30
typename Traits::DataType DataType
data type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:53
std::size_t maxBlocks() const
return maximum number of blocks used
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:77
typename Traits::Types Types
a range of geometry types
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:47
typename Traits::BasisFunctionSetType BasisFunctionSetType
basis function set type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:42
Types types() const
return range of supported geometry types
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:64
typename BasisFunctionSetType::EntityType EntityType
entity type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:44
int order() const
return maximum polynomial order
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:130
static constexpr bool orthogonal() noexcept
return true if basis function sets are always orthogonal, false otherwise
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:124
typename Traits::KeyType KeyType
key type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:39
A meta implemenation of a family of local basis function sets.
Definition: basisfunctionset/hpdg/vectorial.hh:69
BasisFunctionSetType basisFunctionSet(const EntityType &entity, const KeyType &key) const
return basis function set for given entity
Definition: basisfunctionset/hpdg/vectorial.hh:141
int order() const
return maximum order
Definition: basisfunctionset/hpdg/vectorial.hh:126
DataType encode(const KeyType &key) const
map key to data type
Definition: basisfunctionset/hpdg/vectorial.hh:111
std::size_t maxBlocks() const
Definition: basisfunctionset/hpdg/vectorial.hh:102
int order(GeometryType type) const
return maximum order
Definition: basisfunctionset/hpdg/vectorial.hh:129
BaseType::Types types() const
Definition: basisfunctionset/hpdg/vectorial.hh:99
KeyType decode(const DataType &data) const
map data to key type
Definition: basisfunctionset/hpdg/vectorial.hh:117
const BasisFunctionSets & impl() const
return scalar basis function sets
Definition: basisfunctionset/hpdg/vectorial.hh:153
typename BaseType::DataType DataType
Definition: basisfunctionset/hpdg/vectorial.hh:82
VectorialBasisFunctionSets(const BasisFunctionSets &basisFunctionSets)
Definition: basisfunctionset/hpdg/vectorial.hh:88
int order(GeometryType type, const KeyType &key) const
return maximum order
Definition: basisfunctionset/hpdg/vectorial.hh:132
typename BaseType::KeyType KeyType
Definition: basisfunctionset/hpdg/vectorial.hh:74
typename BaseType::EntityType EntityType
entity type
Definition: basisfunctionset/hpdg/vectorial.hh:79
std::size_t size(GeometryType type, const KeyType &key) const
Definition: basisfunctionset/hpdg/vectorial.hh:135
std::size_t maxBlocks(GeometryType type) const
Definition: basisfunctionset/hpdg/vectorial.hh:105
static constexpr bool orthogonal() noexcept
Definition: basisfunctionset/hpdg/vectorial.hh:123
typename BaseType::BasisFunctionSetType BasisFunctionSetType
basis function set
Definition: basisfunctionset/hpdg/vectorial.hh:77
std::size_t blocks(GeometryType type, const KeyType &key) const
Definition: basisfunctionset/hpdg/vectorial.hh:108
Builds a vectorial basis function set from given scalar basis function set.
Definition: basisfunctionset/vectorial.hh:279