1#ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_LEGENDRE_HH
2#define DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_LEGENDRE_HH
6#include <dune/common/power.hh>
8#include <dune/geometry/type.hh>
10#include <dune/grid/common/gridenums.hh>
33 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage = CachingStorage >
34 class LegendreDiscontinuousGalerkinSpace;
36 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage = CachingStorage >
37 class HierarchicLegendreDiscontinuousGalerkinSpace;
42 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage,
bool hierarchicalOrdering >
46 typedef typename std::conditional< hierarchicalOrdering,
57 GridPartType::dimension, 1
65 StaticPower<polOrder+1,ScalarShapeFunctionSpaceType::dimDomain>::power;
71 assert( type.isCube() );
89 template <
class DiscreteFunction,
class Operation = DFCommunicationOperation::Copy >
101 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage,
bool hierarchicalOrdering >
120 const InterfaceType commInterface = InteriorBorder_All_Interface,
121 const CommunicationDirection commDirection = ForwardCommunication )
130 typedef typename BasisFunctionSetsType::ShapeFunctionSetsType ShapeFunctionSetsType;
131 ShapeFunctionSetsType shapeFunctionSets(
gridPart );
139 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
154 const InterfaceType commInterface = InteriorBorder_All_Interface,
155 const CommunicationDirection commDirection = ForwardCommunication )
177 namespace Capabilities
180 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
183 static const bool v =
true;
186 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
189 static const bool v =
true;
193 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
196 static const bool v =
false;
199 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
202 static const bool v =
true;
205 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
208 static const bool v =
true;
211 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
214 static const bool v =
false;
217 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
220 static const bool v =
true;
DFSpaceIdentifier
enumerator for identification of spaces
Definition: discretefunctionspace.hh:94
@ LegendreDGSpace_id
id for Legendre Discontinuous Galerkin Space
Definition: discretefunctionspace.hh:103
Definition: bindguard.hh:11
typename Impl::GridFunctionSpace< GridPart, T >::Type GridFunctionSpace
Definition: functionspace.hh:317
Definition: space/basisfunctionset/default.hh:52
specialize with true if polynomial order does not depend on the grid (part) entity
Definition: space/common/capabilities.hh:24
static const bool v
Definition: space/common/capabilities.hh:25
specialize with true if polynomial order fixed and compile time static
Definition: space/common/capabilities.hh:37
static const bool v
Definition: space/common/capabilities.hh:38
static const int order
Definition: space/common/capabilities.hh:39
specialize with true if space is always continuous
Definition: space/common/capabilities.hh:50
static const bool v
Definition: space/common/capabilities.hh:51
specialize with true if the space is localized, * i.e., the basis function set is based on a shape fu...
Definition: space/common/capabilities.hh:68
static const bool v
Definition: space/common/capabilities.hh:69
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: space/common/capabilities.hh:81
static const bool v
Definition: space/common/capabilities.hh:82
specialize with true if the space implementation is thread safe
Definition: space/common/capabilities.hh:94
static const bool v
Definition: space/common/capabilities.hh:95
specialize with true if the space implementation is thread safe, while it is not modified
Definition: space/common/capabilities.hh:108
static const bool v
Definition: space/common/capabilities.hh:109
Default communication handler for discrete functions.
Definition: defaultcommhandler.hh:29
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
A vector valued function space.
Definition: functionspace.hh:60
FunctionSpaceTraits::DomainFieldType DomainFieldType
Intrinsic type used for values in the domain field (usually a double)
Definition: functionspaceinterface.hh:60
FunctionSpaceTraits::RangeFieldType RangeFieldType
Intrinsic type used for values in the range field (usually a double)
Definition: functionspaceinterface.hh:63
generate a set of default basis function sets from given set of shape function sets
Definition: discontinuousgalerkin/basisfunctionsets.hh:83
Definition: discontinuousgalerkin/legendre.hh:142
BaseType::GridPartType GridPartType
Definition: discontinuousgalerkin/legendre.hh:148
InterpolationType localInterpolation(const EntityType &entity) const
Definition: discontinuousgalerkin/legendre.hh:170
BaseType::EntityType EntityType
Definition: discontinuousgalerkin/legendre.hh:149
LegendreDiscontinuousGalerkinSpace(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
Definition: discontinuousgalerkin/legendre.hh:153
InterpolationType interpolation(const EntityType &entity) const
Definition: discontinuousgalerkin/legendre.hh:165
InterpolationType interpolation() const
Definition: discontinuousgalerkin/legendre.hh:159
InterpolationType InterpolationImplType
Definition: discontinuousgalerkin/legendre.hh:151
DiscontinuousGalerkinLocalInterpolation< ThisType > InterpolationType
Definition: discontinuousgalerkin/legendre.hh:150
Definition: hierarchiclegendre.hh:35
generic implementation of a Discontinuous Galerkin space based on a fixed family of basis function se...
Definition: discontinuousgalerkin/generic.hh:31
BaseType::GridPartType GridPartType
type of underlying grid part
Definition: discontinuousgalerkin/generic.hh:40
BaseType::EntityType EntityType
type of entity of codimension 0
Definition: discontinuousgalerkin/generic.hh:42
BaseType::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition: discontinuousgalerkin/generic.hh:49
Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets
Definition: discontinuousgalerkin/generic.hh:47
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: discontinuousgalerkin/generic.hh:106
Definition: discontinuousgalerkin/legendre.hh:44
Hybrid::IndexRange< int, FunctionSpaceType::dimRange *StaticPower< polOrder+1, GridPartType::dimension >::power > LocalBlockIndices
Definition: discontinuousgalerkin/legendre.hh:87
std::conditional< hierarchicalOrdering, HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage >, LegendreDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage > >::type DiscreteFunctionSpaceType
Definition: discontinuousgalerkin/legendre.hh:48
static const int codimension
Definition: discontinuousgalerkin/legendre.hh:53
Dune::Fem::FunctionSpace< typename FunctionSpace::DomainFieldType, typename FunctionSpace::RangeFieldType, GridPartType::dimension, 1 > ScalarShapeFunctionSpaceType
Definition: discontinuousgalerkin/legendre.hh:58
GridFunctionSpace< GridPartType, FunctionSpace > FunctionSpaceType
Definition: discontinuousgalerkin/legendre.hh:51
VectorialShapeFunctionSets< ScalarShapeFunctionSetsType, typename FunctionSpaceType::RangeType > ShapeFunctionSetsType
Definition: discontinuousgalerkin/legendre.hh:80
GridPart GridPartType
Definition: discontinuousgalerkin/legendre.hh:50
CodimensionMapper< GridPartType, codimension > BlockMapperType
Definition: discontinuousgalerkin/legendre.hh:85
DefaultBasisFunctionSets< GridPartType, ShapeFunctionSetsType > BasisFunctionSetsType
Definition: discontinuousgalerkin/legendre.hh:82
SelectCachingShapeFunctionSets< GridPartType, ScalarShapeFunctionSet, Storage > ScalarShapeFunctionSetsType
Definition: discontinuousgalerkin/legendre.hh:79
BasisFunctionSetsType::BasisFunctionSetType BasisFunctionSetType
Definition: discontinuousgalerkin/legendre.hh:83
Definition: discontinuousgalerkin/legendre.hh:62
Dune::Fem::LegendreShapeFunctionSet< ScalarShapeFunctionSpaceType, hierarchicalOrdering > BaseType
Definition: discontinuousgalerkin/legendre.hh:63
static const int numberShapeFunctions
Definition: discontinuousgalerkin/legendre.hh:64
static constexpr unsigned int size()
Definition: discontinuousgalerkin/legendre.hh:76
ScalarShapeFunctionSet(Dune::GeometryType type)
Definition: discontinuousgalerkin/legendre.hh:68
Definition: discontinuousgalerkin/legendre.hh:91
Operation OperationType
Definition: discontinuousgalerkin/legendre.hh:92
DefaultCommunicationHandler< DiscreteFunction, Operation > Type
Definition: discontinuousgalerkin/legendre.hh:93
Definition: discontinuousgalerkin/legendre.hh:104
BaseType::BasisFunctionSetType BasisFunctionSetType
Definition: discontinuousgalerkin/legendre.hh:117
static const int polynomialOrder
Definition: discontinuousgalerkin/legendre.hh:111
LegendreDiscontinuousGalerkinSpaceBase(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
Definition: discontinuousgalerkin/legendre.hh:119
static DFSpaceIdentifier type()
Definition: discontinuousgalerkin/legendre.hh:125
BaseType::BasisFunctionSetsType BasisFunctionSetsType
Definition: discontinuousgalerkin/legendre.hh:116
BaseType::EntityType EntityType
Definition: discontinuousgalerkin/legendre.hh:114
BaseType::GridPartType GridPartType
Definition: discontinuousgalerkin/legendre.hh:113
Definition: discontinuousgalerkin/localinterpolation.hh:30
Definition: shapefunctionsets.hh:197
Definition: shapefunctionsets.hh:271
mapper allocating one DoF per subentity of a given codimension
Definition: codimensionmapper.hh:345
a Dune::Fem::ShapeFunctionSet of Legendre ansatz polynomials
Definition: shapefunctionset/legendre.hh:218
std::size_t size() const noexcept
return number of shape functions
Definition: shapefunctionset/legendre.hh:308