1#ifndef DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_DEFAULT_HH
2#define DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_DEFAULT_HH
6#include <dune/grid/common/gridenums.hh>
29 template<
class BasisFunctionSets >
30 class DefaultDiscontinuousGalerkinSpace;
39 template<
class BasisFunctionSets >
40 struct DefaultDiscontinuousGalerkinSpaceTraits
42 using DiscreteFunctionSpaceType = hpDG::DefaultDiscontinuousGalerkinSpace< BasisFunctionSets >;
44 using BasisFunctionSetsType = BasisFunctionSets;
45 using BasisFunctionSetType =
typename BasisFunctionSetsType::BasisFunctionSetType;
47 using FunctionSpaceType =
typename BasisFunctionSetType::FunctionSpaceType;
48 using GridPartType =
typename BasisFunctionSetsType::GridPartType;
50 static const int codimension = BasisFunctionSetType::EntityType::codimension;
52 using BlockMapperType = hpDG::DiscontinuousGalerkinBlockMapper< GridPartType, BasisFunctionSetsType >;
53 static const int localBlockSize = BasisFunctionSetsType::localBlockSize;
55 template<
class DiscreteFunction,
class Operation = Dune::Fem::DFCommunicationOperation::Copy >
58 using OperationType = Operation;
76 template<
class BasisFunctionSets >
97 const InterfaceType interface = InteriorBorder_All_Interface,
98 const CommunicationDirection direction = ForwardCommunication )
124 template<
class BasisFunctionSets >
125 std::unique_ptr< DefaultDiscontinuousGalerkinSpace< BasisFunctionSets > >
129 const InterfaceType interface = InteriorBorder_All_Interface,
130 const CommunicationDirection direction = ForwardCommunication )
133 return std::unique_ptr< DiscreteFunctionSpaceType >(
new DiscreteFunctionSpaceType( gridPart, basisFunctionSets, key, interface, direction ) );
145 template<
class BasisFunctionSets >
146 class DefaultLocalRestrictProlong< hpDG::DefaultDiscontinuousGalerkinSpace< BasisFunctionSets > >
147 :
public DiscontinuousGalerkinLocalRestrictProlong< hpDG::DefaultDiscontinuousGalerkinSpace< BasisFunctionSets >, !BasisFunctionSets::orthogonal() >
149 using BaseType = DiscontinuousGalerkinLocalRestrictProlong< hpDG::DefaultDiscontinuousGalerkinSpace< BasisFunctionSets >, !BasisFunctionSets::orthogonal() >;
152 explicit DefaultLocalRestrictProlong (
const typename BaseType::DiscreteFunctionSpaceType &space )
Definition: bindguard.hh:11
std::unique_ptr< DefaultDiscontinuousGalerkinSpace< BasisFunctionSets > > make_space(typename BasisFunctionSets::GridPartType &gridPart, const BasisFunctionSets &basisFunctionSets, const typename BasisFunctionSets::KeyType &key, const InterfaceType interface=InteriorBorder_All_Interface, const CommunicationDirection direction=ForwardCommunication)
returns a new space instance for a given family of local basis function sets
Definition: space/hpdg/default.hh:126
abstract interface class for a family of local basis function sets
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:30
typename Traits::KeyType KeyType
key type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:39
typename Traits::GridPartType GridPartType
grid part type
Definition: basisfunctionset/hpdg/basisfunctionsets.hh:36
Default communication handler for discrete functions.
Definition: defaultcommhandler.hh:29
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
Default implementation of an -adaptive discrete function space given a family of local basis function...
Definition: space/hpdg/default.hh:79
typename BaseType::KeyType KeyType
key type identifying a basis function set
Definition: space/hpdg/default.hh:88
typename BaseType::GridPartType GridPartType
grid part type
Definition: space/hpdg/default.hh:84
DefaultDiscontinuousGalerkinSpace(GridPartType &gridPart, const BasisFunctionSetsType &basisFunctionSets, const KeyType &key, const InterfaceType interface=InteriorBorder_All_Interface, const CommunicationDirection direction=ForwardCommunication)
Definition: space/hpdg/default.hh:94
typename BaseType::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition: space/hpdg/default.hh:86
Generic implementation of a -adaptive discontinuous finite element space.
Definition: hpdg/space.hh:46
const KeyType & key(const EntityType &entity) const
get identifiying basis function set key assigned to given entity
Definition: hpdg/space.hh:231
typename Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition: hpdg/space.hh:56
typename BasisFunctionSetsType::KeyType KeyType
key type identifying a basis function set
Definition: hpdg/space.hh:58
typename BaseType::GridPartType GridPartType
grid part type
Definition: hpdg/space.hh:51
const BasisFunctionSetsType & basisFunctionSets() const
return basis function sets
Definition: hpdg/space.hh:287