1 #ifndef DUNE_FEM_SPACE_COMBINEDSPACE_POWERSPACE_HH 2 #define DUNE_FEM_SPACE_COMBINEDSPACE_POWERSPACE_HH 7 #include <dune/common/math.hh> 8 #include <dune/common/typetraits.hh> 9 #include <dune/grid/common/grid.hh> 28 template<
class DiscreteFunctionSpace,
int N >
35 template<
class DiscreteFunctionSpace,
int N >
57 static BlockMapperType &
subBlockMapper (
const DiscreteFunctionSpaceTupleType &tuple )
65 typedef typename GridPartType::GridType
GridType;
67 typedef typename GridPartType::template Codim< 0 >::IteratorType
IteratorType;
74 static const int codimension = DiscreteFunctionSpace::Traits::codimension;
76 static_assert( DiscreteFunctionSpace::FunctionSpaceType::dimRange == 1,
77 "PowerDiscreteFunctionSpace only works for ContainedSpaces with dimRange = 1" );
80 typedef typename ScalarBasisFunctionSetType::FunctionSpaceType::RangeFieldType
RangeFieldType;
95 template<
class DiscreteFunction,
101 typedef typename DiscreteFunctionSpace::
104 typedef typename DiscreteFunctionSpace::
109 static BlockMapperType *
getBlockMapper (
const DiscreteFunctionSpaceTupleType &spaceTuple )
111 return new BlockMapperType( spaceTuple->gridPart(), spaceTuple->blockMapper() );
121 static DiscreteFunctionSpaceTupleType
createSpaces ( GridPartType &gridPart, InterfaceType commInterface,
122 CommunicationDirection commDirection )
133 template<
class Entity >
134 static BasisFunctionSetType
getBasisFunctionSet (
const Entity &entity,
const DiscreteFunctionSpaceTupleType &tuple )
139 static bool continuous (
const DiscreteFunctionSpaceTupleType &tuple )
141 return tuple->continuous();
144 static bool continuous (
const IntersectionType &intersection,
const DiscreteFunctionSpaceTupleType &tuple )
146 return tuple->continuous( intersection );
164 template<
class DiscreteFunctionSpace,
int N >
189 const InterfaceType commInterface = InteriorBorder_All_Interface,
190 const CommunicationDirection commDirection = ForwardCommunication )
191 : BaseType( gridPart, commInterface, commDirection ),
192 LagrangePointSetExporterType( containedSpace() )
197 ThisType &operator= (
const ThisType & ) =
delete;
202 return BaseType::template subDiscreteFunctionSpace< 0 >();
208 template<
class DiscreteFunctionSpace,
int N,
class NewFunctionSpace >
218 template<
class DiscreteFunctionSpace,
int N >
228 : BaseType( space.containedSpace() )
237 #endif // #ifndef DUNE_FEM_SPACE_COMBINEDSPACE_POWERSPACE_HH const ContainedDiscreteFunctionSpaceType & containedSpace() const
return tuple of const References to the contained sub spaces
Definition: powerspace.hh:200
PowerDiscreteFunctionSpace< DiscreteFunctionSpace, N > DiscreteFunctionSpaceType
Definition: powerspace.hh:72
Definition: powerlocalrestrictprolong.hh:25
Definition: powerspace.hh:43
ScalarBasisFunctionSetType::FunctionSpaceType::RangeFieldType RangeFieldType
Definition: powerspace.hh:80
Definition: powerspace.hh:98
BasisFunctionSetType::FunctionSpaceType FunctionSpaceType
Definition: powerspace.hh:90
static void deleteBlockMapper(BlockMapperType *blockMapper)
Definition: powerspace.hh:115
DiscreteFunctionSpace::GridPartType GridPartType
Definition: powerspace.hh:64
PowerDiscreteFunctionSpaceTraits< DiscreteFunctionSpace, N > Traits
Definition: powerspace.hh:174
Definition: powerspace.hh:87
Definition: discretefunctionspace.hh:126
static BasisFunctionSetType getBasisFunctionSet(const Entity &entity, const DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:134
GridPartType::template Codim< 0 >::IteratorType IteratorType
Definition: powerspace.hh:67
Definition: powerspace.hh:36
PowerDiscreteFunctionSpace< DiscreteFunctionSpace, NewFunctionSpace::dimRange > Type
Definition: powerspace.hh:211
GridPartType::IntersectionType IntersectionType
Definition: powerspace.hh:69
static void deleteSpaces(DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:128
static BlockMapperType & subBlockMapper(const DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:57
Definition: coordinate.hh:4
static const Type & subDiscreteFunctionSpace(const DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:52
VectorialBasisFunctionSet< ScalarBasisFunctionSetType, FieldVector< RangeFieldType, N >, VerticalDofAlignment > BasisFunctionSetType
Definition: powerspace.hh:81
Definition: lagrangepointsetexporter.hh:29
static DiscreteFunctionSpaceTupleType createSpaces(GridPartType &gridPart, InterfaceType commInterface, CommunicationDirection commDirection)
Definition: powerspace.hh:121
static bool continuous(const DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:139
DiscreteFunctionSpace::template CommDataHandle< DiscreteFunction, Operation >::OperationType OperationType
type of operatation to perform on scatter
Definition: powerspace.hh:105
DiscreteFunctionSpace ContainedDiscreteFunctionSpaceType
type of contained discrete function space
Definition: powerspace.hh:180
ToNewDimRangeFunctionSpace< ScalarFunctionSpaceType, dimRange >::Type FunctionSpaceType
Definition: basisfunctionset/vectorial.hh:265
static constexpr int polynomialOrder
Definition: powerspace.hh:92
IteratorType::Entity EntityType
Definition: powerspace.hh:68
Implementation of DofAlignment.
Definition: basisfunctionset/vectorial.hh:139
GridPartType::IndexSetType IndexSetType
Definition: powerspace.hh:66
static const int codimension
Definition: powerspace.hh:74
Definition: powerspace.hh:29
GridPartType::GridType GridType
Definition: powerspace.hh:65
static BlockMapperType * getBlockMapper(const DiscreteFunctionSpaceTupleType &spaceTuple)
Definition: powerspace.hh:109
DiscreteFunctionSpace * DiscreteFunctionSpaceTupleType
Definition: powerspace.hh:39
Traits::GridPartType GridPartType
Definition: powerspace.hh:177
Builds a vectorial basis function set from given scalar basis function set.
Definition: basisfunctionset/vectorial.hh:250
mapper allocating one DoF per subentity of a given codimension
Definition: powermapper.hh:19
DiscreteFunctionSpace::BasisFunctionSetType ScalarBasisFunctionSetType
implementation of basefunction set
Definition: powerspace.hh:77
Type::BlockMapperType BlockMapperType
Definition: powerspace.hh:49
Definition: common/localrestrictprolong.hh:16
DefaultLocalRestrictProlong(const DiscreteFunctionSpacesType &space)
Definition: powerspace.hh:227
PowerDiscreteFunctionSpace(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
constructor
Definition: powerspace.hh:188
DiscreteFunctionSpace::template CommDataHandle< DiscreteFunction, Operation >::Type Type
type of data handle
Definition: powerspace.hh:102
PowerMapper< GridPartType, typename DiscreteFunctionSpace::BlockMapperType, N > BlockMapperType
Definition: powerspace.hh:84
Definition: combinedspace/generic.hh:24
static bool continuous(const IntersectionType &intersection, const DiscreteFunctionSpaceTupleType &tuple)
Definition: powerspace.hh:144
DiscreteFunctionSpace Type
Definition: powerspace.hh:46