1 #ifndef DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_ANISOTROPIC_HH
2 #define DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_ANISOTROPIC_HH
7 #include <dune/grid/common/gridenums.hh>
32 template<
class FunctionSpace,
class Gr
idPart,
int order,
bool caching = true >
33 class AnisotropicDiscontinuousGalerkinSpace;
42 template<
class FunctionSpace,
class Gr
idPart,
int order,
bool caching >
43 struct AnisotropicDiscontinuousGalerkinSpaceTraits
45 using DiscreteFunctionSpaceType = hpDG::AnisotropicDiscontinuousGalerkinSpace< FunctionSpace, GridPart, order >;
47 using FunctionSpaceType = FunctionSpace;
49 using GridPartType = GridPart;
51 using BasisFunctionSetsType = hpDG::AnisotropicBasisFunctionSets< FunctionSpaceType, GridPartType, order, caching >;
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;
59 typedef Hybrid::IndexRange< int, localBlockSize > LocalBlockIndices;
61 template<
class DiscreteFunction,
class Operation = Dune::Fem::DFCommunicationOperation::Copy >
64 using OperationType = Operation;
85 template<
class FunctionSpace,
class Gr
idPart,
int order,
bool caching >
96 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
97 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
101 template<
class Function >
103 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
104 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
113 return std::move(
key );
126 template<
class FunctionSpace,
class Gr
idPart,
int order,
bool caching >
127 class DefaultLocalRestrictProlong< hpDG::AnisotropicDiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, caching > >
128 :
public DiscontinuousGalerkinLocalRestrictProlong< hpDG::AnisotropicDiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, caching >, false >
130 using BaseType = DiscontinuousGalerkinLocalRestrictProlong< hpDG::AnisotropicDiscontinuousGalerkinSpace< FunctionSpace, GridPart, order, caching >,
false >;
133 explicit DefaultLocalRestrictProlong (
const typename BaseType::DiscreteFunctionSpaceType &space )
143 template<
class Matrix,
class Traits >
144 struct ISTLParallelMatrixAdapter< Matrix, hpDG::DiscontinuousGalerkinSpace< Traits > >
146 using Type = DGParallelMatrixAdapter< Matrix >;
Definition: bindguard.hh:11
Abstract class representing a function.
Definition: common/function.hh:50
Default communication handler for discrete functions.
Definition: defaultcommhandler.hh:29
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:734
Implementation of an -adaptive discrete function space using anisotropic product Legendre polynomials...
Definition: hpdg/anisotropic.hh:88
AnisotropicDiscontinuousGalerkinSpace(GridPartType &gridPart, Function function, const Dune::InterfaceType interface=Dune::InteriorBorder_All_Interface, const Dune::CommunicationDirection direction=Dune::ForwardCommunication)
Definition: hpdg/anisotropic.hh:102
typename BaseType::BasisFunctionSetsType BasisFunctionSetsType
Definition: hpdg/anisotropic.hh:93
AnisotropicDiscontinuousGalerkinSpace(GridPartType &gridPart, const Dune::InterfaceType interface=Dune::InteriorBorder_All_Interface, const Dune::CommunicationDirection direction=Dune::ForwardCommunication)
Definition: hpdg/anisotropic.hh:95
typename BaseType::GridPartType GridPartType
Definition: hpdg/anisotropic.hh:92
Generic implementation of a -adaptive discontinuous finite element space.
Definition: hpdg/space.hh:45
typename Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition: hpdg/space.hh:55
typename BasisFunctionSetsType::KeyType KeyType
key type identifying a basis function set
Definition: hpdg/space.hh:57
typename BaseType::GridPartType GridPartType
grid part type
Definition: hpdg/space.hh:50
const KeyType & key(const EntityType &entity) const
get identifiying basis function set key assigned to given entity
Definition: hpdg/space.hh:204
int order() const
return polynomial order
Definition: hpdg/space.hh:152