1#ifndef DUNE_FEM_SPACE_COMBINEDSPACE_GENERIC_HH
2#define DUNE_FEM_SPACE_COMBINEDSPACE_GENERIC_HH
7#include <dune/common/hybridutilities.hh>
20 template<
class Traits >
27 typedef typename Traits::DiscreteFunctionSpaceTupleType DiscreteFunctionSpaceTupleType;
79 spaceTuple_(
Traits::createSpaces(
gridPart, commInterface, commDirection ) ),
80 blockMapper_(
Traits::getBlockMapper( spaceTuple_ ) )
90 spaceTuple_(
std::move( spaceTuple ) ),
91 blockMapper_(
Traits::getBlockMapper( spaceTuple_ ) )
111 return Traits::accumulate( spaceTuple_,
true, [] (
bool c,
const auto &s ) {
return c && s.continuous(); } );
117 return Traits::accumulate( spaceTuple_,
true, [ &intersection ] (
bool c,
const auto &s ) {
return c && s.continuous( intersection ); } );
131 return Traits::accumulate( spaceTuple_,
int( 0 ), [] (
int o,
const auto &s ) {
return std::max( o, s.order() ); } );
135 template<
class Entity >
136 int order (
const Entity &entity )
const
138 return Traits::accumulate( spaceTuple_,
int( 0 ), [ &entity ] (
int o,
const auto &s ) {
return std::max( o, s.order( entity ) ); } );
142 template<
class EntityType >
145 return Traits::getBasisFunctionSet( entity, spaceTuple_ );
153 return *blockMapper_;
165 DiscreteFunctionSpaceTupleType spaceTuple_;
168 std::unique_ptr< BlockMapperType > blockMapper_;
DFSpaceIdentifier
enumerator for identification of spaces
Definition: discretefunctionspace.hh:94
double max(const Dune::Fem::Double &v, const double p)
Definition: double.hh:965
Definition: bindguard.hh:11
Definition: combinedspace/generic.hh:23
bool continuous(const IntersectionType &intersection) const
returns true if the space contains only globally continuous functions
Definition: combinedspace/generic.hh:115
bool continuous() const
returns true if the space contains only globally continuous functions
Definition: combinedspace/generic.hh:109
Traits::IndexSetType IndexSetType
extract informations about IndexSet and Iterators
Definition: combinedspace/generic.hh:40
Traits::FunctionSpaceType FunctionSpaceType
the underlaying analytical function space
Definition: combinedspace/generic.hh:46
GenericCombinedDiscreteFunctionSpace(DiscreteFunctionSpaceTupleType &&spaceTuple)
Definition: combinedspace/generic.hh:85
BlockMapperType & blockMapper() const
obtain the DoF block mapper of this space
Definition: combinedspace/generic.hh:151
ThisType & operator=(const ThisType &)=delete
GenericCombinedDiscreteFunctionSpace(const ThisType &)=delete
Traits::IteratorType IteratorType
Definition: combinedspace/generic.hh:41
DFSpaceIdentifier type() const
get the type of this discrete function space
Definition: combinedspace/generic.hh:123
Traits::BlockMapperType BlockMapperType
mapper used to for block vector function
Definition: combinedspace/generic.hh:52
static const CommunicationDirection defaultDirection
default communication direction
Definition: combinedspace/generic.hh:66
const SubDiscreteFunctionSpace< i >::Type & subDiscreteFunctionSpace() const
obtain the i-th subspace
Definition: combinedspace/generic.hh:158
static const InterfaceType defaultInterface
default communication interface
Definition: combinedspace/generic.hh:63
Traits::GridPartType GridPartType
Definition: combinedspace/generic.hh:36
DofManager< GridType > DofManagerType
type of DofManager
Definition: combinedspace/generic.hh:60
GenericCombinedDiscreteFunctionSpace(GridPartType &gridPart, const InterfaceType commInterface=defaultInterface, const CommunicationDirection commDirection=defaultDirection)
constructor
Definition: combinedspace/generic.hh:75
@ dimension
Definition: combinedspace/generic.hh:43
int order(const Entity &entity) const
get global order of space
Definition: combinedspace/generic.hh:136
int order() const
get global order of space
Definition: combinedspace/generic.hh:129
Traits::GridType GridType
Definition: combinedspace/generic.hh:37
Traits::BasisFunctionSetType BasisFunctionSetType
type of the base function set(s)
Definition: combinedspace/generic.hh:49
int IdentifierType
type of identifier for this discrete function space
Definition: combinedspace/generic.hh:55
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
Definition: combinedspace/generic.hh:143
bool contains(const int codim) const
Definition: combinedspace/generic.hh:102
GridPartType::IntersectionType IntersectionType
Definition: combinedspace/generic.hh:38
typename Traits::template SubDiscreteFunctionSpace< i > SubDiscreteFunctionSpace
Definition: combinedspace/generic.hh:32
Definition: dofmanager.hh:761
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
InterfaceType communicationInterface() const
return the communication interface appropriate for this space
Definition: discretefunctionspace.hh:821
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
CommunicationDirection communicationDirection() const
return the communication interface appropriate for this space
Definition: discretefunctionspace.hh:827
Traits Traits
Definition: discretefunctionspace.hh:630