1#ifndef DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_SPACE_HH
2#define DUNE_FEM_HPDG_SPACE_DISCONTINUOUSGALERKIN_SPACE_HH
10#include <dune/common/deprecated.hh>
11#include <dune/common/exceptions.hh>
13#include <dune/grid/common/gridenums.hh>
14#include <dune/grid/common/partitionset.hh>
15#include <dune/grid/common/rangegenerators.hh>
43 template<
class Traits >
58 using KeyType =
typename BasisFunctionSetsType::KeyType;
74 return new ObjectType( std::piecewise_construct, std::tie( *
key.first, *
key.second ), std::make_tuple( -1 ) );
89 template<
class DataProjection >
90 struct DataProjectionWrapper;
92 typedef typename Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType;
104 template<
class Function >
107 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
108 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
115 const Dune::InterfaceType interface = Dune::InteriorBorder_All_Interface,
116 const Dune::CommunicationDirection direction = Dune::ForwardCommunication )
185 return InterpolationType(
static_cast< const DiscreteFunctionSpaceType&
> (*
this) );
261 template<
class DiscreteFunctionSpace,
class Implementation >
264 DataProjectionWrapper< DataProjection< DiscreteFunctionSpace, Implementation > > wrapper(
basisFunctionSets(), projection );
277 DUNE_THROW( NotImplemented,
"Method type() not implemented" );
304 template<
class Traits >
305 template<
class DataProjection >
311 dataProjection_( dataProjection )
314 DataProjectionWrapper (
const DataProjectionWrapper & ) =
default;
316 DataProjectionWrapper &
operator= (
const DataProjectionWrapper & ) =
default;
321 const std::vector< std::size_t > &origin,
322 const std::vector< std::size_t > &destination )
334 std::reference_wrapper< DataProjection > dataProjection_;
DFSpaceIdentifier
enumerator for identification of spaces
Definition: discretefunctionspace.hh:94
Definition: bindguard.hh:11
Abstract class representing a function.
Definition: common/function.hh:50
In parallel computations the dofs of a discrete function are made up by all primary dofs....
Definition: auxiliarydofs.hh:47
Abstract definition of the local restriction and prolongation of discrete functions.
Definition: dataprojection/dataprojection.hh:29
const DiscreteFunctionSpaceType & asImp() const
Definition: discretefunctionspace.hh:576
Traits::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition: discretefunctionspace.hh:200
GridPartType::IntersectionType IntersectionType
type of the intersections
Definition: discretefunctionspace.hh:225
This is the class with default implementations for discrete function. The methods not marked with hav...
Definition: discretefunctionspace.hh:628
BaseType::EntityType EntityType
Definition: discretefunctionspace.hh:644
BaseType::BlockMapperType BlockMapperType
Definition: discretefunctionspace.hh:660
BaseType::GridPartType GridPartType
Definition: discretefunctionspace.hh:640
GridPartType & gridPart_
Definition: discretefunctionspace.hh:679
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
Definition: common/localinterpolation.hh:74
Definition: discontinuousgalerkin/interpolation.hh:153
Generic implementation of a -adaptive discontinuous finite element space.
Definition: hpdg/space.hh:46
LocalInterpolationWrapper< DiscreteFunctionSpaceType > InterpolationType
local interpolation type
Definition: hpdg/space.hh:98
BlockMapperType blockMapper_
Definition: hpdg/space.hh:296
BaseType::AuxiliaryDofsType AuxiliaryDofsType
Definition: hpdg/space.hh:65
InterpolationImplType localInterpolation(const EntityType &entity) const
return interpolation
Definition: hpdg/space.hh:205
typename BaseType::BlockMapperType BlockMapperType
block mapper type
Definition: hpdg/space.hh:63
BlockMapperType & blockMapper() const
return block mapper
Definition: hpdg/space.hh:217
typename BaseType::EntityType EntityType
entity type
Definition: hpdg/space.hh:53
DiscontinuousGalerkinLocalL2Projection< GridPartType, BasisFunctionSetType > InterpolationImplType
local interpolation type
Definition: hpdg/space.hh:95
bool multipleBasisFunctionSets() const
please doc me
Definition: hpdg/space.hh:148
const KeyType & key(const EntityType &entity) const
get identifiying basis function set key assigned to given entity
Definition: hpdg/space.hh:231
DiscontinuousGalerkinSpace(GridPartType &gridPart, const BasisFunctionSetsType &basisFunctionSets, const KeyType &value, const Dune::InterfaceType interface=Dune::InteriorBorder_All_Interface, const Dune::CommunicationDirection direction=Dune::ForwardCommunication)
Definition: hpdg/space.hh:114
DiscontinuousGalerkinSpace(GridPartType &gridPart, const BasisFunctionSetsType &basisFunctionSets, const KeyType &value, Function function, const Dune::InterfaceType interface=Dune::InteriorBorder_All_Interface, const Dune::CommunicationDirection direction=Dune::ForwardCommunication)
Definition: hpdg/space.hh:105
typename Traits::BasisFunctionSetsType BasisFunctionSetsType
basis function sets type
Definition: hpdg/space.hh:56
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
return basis function set
Definition: hpdg/space.hh:166
bool adapt(DataProjection< DiscreteFunctionSpace, Implementation > &projection)
please doc me
Definition: hpdg/space.hh:262
typename BasisFunctionSetsType::KeyType KeyType
key type identifying a basis function set
Definition: hpdg/space.hh:58
int order(const EntityType &entity) const
return polynomial order
Definition: hpdg/space.hh:160
bool continuous(const typename BaseType::IntersectionType &intersection) const
please doc me
Definition: hpdg/space.hh:142
typename BaseType::GridPartType GridPartType
grid part type
Definition: hpdg/space.hh:51
BasisFunctionSetsType basisFunctionSets_
Definition: hpdg/space.hh:295
InterpolationType interpolation() const
return interpolation
Definition: hpdg/space.hh:183
const BasisFunctionSetsType & basisFunctionSets() const
return basis function sets
Definition: hpdg/space.hh:287
void mark(const KeyType &key, const EntityType &entity)
assign new key to given entity
Definition: hpdg/space.hh:241
bool continuous() const
please doc me
Definition: hpdg/space.hh:139
DFSpaceIdentifier type() const
Definition: hpdg/space.hh:275
InterpolationImplType interpolation(const EntityType &entity) const
return interpolation
Definition: hpdg/space.hh:194
SingletonList< std::pair< GridPartType *, BlockMapperType * >, std::pair< AuxiliaryDofsType, int >, AuxiliaryDofsFactory > AuxiliaryDofsProviderType
Definition: hpdg/space.hh:80
const DiscontinuousGalerkinSpace & operator=(const DiscontinuousGalerkinSpace &)=delete
assignment operator
KeyType getMark(const EntityType &entity) const
get key to be assigned to an entity after next call to adapt()
Definition: hpdg/space.hh:252
int order() const
return polynomial order
Definition: hpdg/space.hh:157
DiscontinuousGalerkinSpace(const DiscontinuousGalerkinSpace &)=delete
copy constructor
typename BaseType::BasisFunctionSetType BasisFunctionSetType
basis function set type
Definition: hpdg/space.hh:60
bool adapt()
please doc me
Definition: hpdg/space.hh:258
Definition: hpdg/space.hh:69
static void deleteObject(ObjectType *object)
Definition: hpdg/space.hh:77
static ObjectType * createObject(std::pair< GridPartType *, BlockMapperType * > key)
Definition: hpdg/space.hh:72
std::pair< AuxiliaryDofsType, int > ObjectType
Definition: hpdg/space.hh:70
Singleton list for key/object pairs.
Definition: singletonlist.hh:53