1#ifndef DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_ORTHOGONAL_HH
2#define DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_ORTHOGONAL_HH
4#include <dune/grid/common/gridenums.hh>
32 template<
class FunctionSpace,
class Gr
idPart,
int order,
class Storage = Fem::CachingStorage >
33 class OrthogonalDiscontinuousGalerkinSpace;
42 template<
class FunctionSpace,
class Gr
idPart,
int order,
class Storage >
43 struct OrthogonalDiscontinuousGalerkinSpaceTraits
45 using DiscreteFunctionSpaceType = hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, Storage >;
47 using FunctionSpaceType = FunctionSpace;
49 using GridPartType = GridPart;
51 using BasisFunctionSetsType = hpDG::OrthogonalBasisFunctionSets< FunctionSpaceType, GridPartType, order, Storage >;
52 using BasisFunctionSetType =
typename BasisFunctionSetsType::BasisFunctionSetType;
54 static const int codimension = BasisFunctionSetType::EntityType::codimension;
56 using BlockMapperType = hpDG::DiscontinuousGalerkinBlockMapper< GridPartType, BasisFunctionSetsType >;
57 static const int localBlockSize = BasisFunctionSetsType::localBlockSize;
58 static_assert( localBlockSize == FunctionSpace::dimRange,
" dimRange prob ");
60 typedef Hybrid::IndexRange< int, localBlockSize > LocalBlockIndices;
62 template<
class DiscreteFunction,
class Operation = Dune::Fem::DFCommunicationOperation::Copy >
65 using OperationType = Operation;
86 template<
class FunctionSpace,
class Gr
idPart,
int order,
class Storage >
101 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
102 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
109 decltype(
Function(std::declval<const EntityType>()))>::value,
int> i=0>
111 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
112 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
120 template <
class FunctionSpaceImp,
124 class VolumeQuadratureImp>
126 hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, Storage >, VolumeQuadratureImp >
128 hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, Storage >, VolumeQuadratureImp >
142 template<
class FunctionSpace,
class Gr
idPart,
int order,
class Storage >
158 namespace Capabilities
164 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
167 static const bool v =
true;
171 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
172 struct isLocalized< hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage > >
174 static const bool v =
true;
177 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
178 struct isAdaptive< hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage > >
180 static const bool v =
true;
183 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
184 struct viewThreadSafe< hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage > >
186 static const bool v =
true;
189 template<
class FunctionSpace,
class Gr
idPart,
int polOrder,
class Storage >
190 struct isHierarchic< hpDG::OrthogonalDiscontinuousGalerkinSpace< FunctionSpace, GridPart, polOrder, Storage > >
192 static const bool v =
true;
Definition: bindguard.hh:11
Abstract class representing a function.
Definition: common/function.hh:50
Local Mass Matrix inversion implementation, select the correct method in your implementation.
Definition: localmassmatrix.hh:34
Local Mass Matrix for arbitrary spaces.
Definition: localmassmatrix.hh:909
DG Local Mass Matrix for arbitrary spaces.
Definition: localmassmatrix.hh:929
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 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, while it is not modified
Definition: space/common/capabilities.hh:108
static const bool v
Definition: space/common/capabilities.hh:109
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition: space/common/capabilities.hh:120
static const bool v
Definition: space/common/capabilities.hh:121
Default communication handler for discrete functions.
Definition: defaultcommhandler.hh:29
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
Definition: common/localrestrictprolong.hh:16
Definition: discontinuousgalerkin/localrestrictprolong.hh:31
Implementation of an -adaptive discrete function space using orthogonal polynomials.
Definition: hpdg/orthogonal.hh:89
typename BaseType::BasisFunctionSetsType BasisFunctionSetsType
Definition: hpdg/orthogonal.hh:98
typename BaseType::GridPartType GridPartType
Definition: hpdg/orthogonal.hh:96
typename BaseType::EntityType EntityType
Definition: hpdg/orthogonal.hh:97
OrthogonalDiscontinuousGalerkinSpace(GridPartType &gridPart, const Dune::InterfaceType interface=Dune::InteriorBorder_All_Interface, const Dune::CommunicationDirection direction=Dune::ForwardCommunication)
Definition: hpdg/orthogonal.hh:100
static const int polynomialOrder
Definition: hpdg/orthogonal.hh:94
Generic implementation of a -adaptive discontinuous finite element space.
Definition: hpdg/space.hh:46
typename BaseType::EntityType EntityType
entity type
Definition: hpdg/space.hh:53
typename Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition: hpdg/space.hh:56
typename BaseType::GridPartType GridPartType
grid part type
Definition: hpdg/space.hh:51
int order() const
return polynomial order
Definition: hpdg/space.hh:157