1#ifndef DUNE_FEM_DISCRETEFUNCTIONSPACE_HH
2#define DUNE_FEM_DISCRETEFUNCTIONSPACE_HH
13#include <dune/common/bartonnackmanifcheck.hh>
14#include <dune/common/dynvector.hh>
60 struct Big {
char dummy[ 2 ]; };
63 static Small test (
const U &,
typename U::DiscreteFunctionSpaceType * =
nullptr );
64 static Big test ( ... );
66 static const T &makeT ();
68 template<
class U,
bool >
69 struct GetDiscreteFunctionSpaceType;
72 struct GetDiscreteFunctionSpaceType< U, true >
74 typedef typename U::DiscreteFunctionSpaceType
Type;
78 struct GetDiscreteFunctionSpaceType< U, false >
84 static const bool v = (
sizeof( test( makeT() ) ) ==
sizeof( Small ));
85 typedef typename GetDiscreteFunctionSpaceType< T, v >::Type
Type;
115 case DGSpace_id :
return "DiscontinuousGalerkinSpace";
124 default :
return "unknown space";
131 template<
class DiscreteFunctionSpaceImp,
132 class NewFunctionSpace>
135 template <
class FunctionSpaceImp,
139 template <
class,
class,
int,
class>
class DiscreteFunctionSpaceImp,
140 class NewFunctionSpace>
142 DiscreteFunctionSpaceImp<FunctionSpaceImp,GridPartImp,polOrd,StorageImp>,
145 typedef DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, StorageImp >
Type;
148 template <
class FunctionSpaceImp,
152 template <
class,
class,
int,
bool>
class DiscreteFunctionSpaceImp,
153 class NewFunctionSpace>
155 DiscreteFunctionSpaceImp<FunctionSpaceImp,GridPartImp,polOrd,caching>,
158 typedef DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, caching >
Type;
181 template<
class FunctionSpaceTraits >
190 typedef typename Traits :: DiscreteFunctionSpaceType
213 typedef typename GridPartType :: GridType
GridType;
220 typedef typename GridPartType :: template Codim< Traits::codimension >
:: IteratorType
230 [[deprecated(
"Use AuxiliaryDofsType instead!")]]
239 template<
class DiscreteFunction,
246 typedef typename Traits
251 typedef typename Traits
260 template<
class NewFunctionSpace >
268 template<
int newDimRange >
278 static_assert( std::is_same<typename BaseType::DomainFieldType, typename GridType::ctype>::value,
279 "Domain field type of function space must equal field type of grid." );
295 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
type());
296 return asImp().type();
309 return asImp().basisFunctionSet( entity );
327 return asImp().continuous();
337 return asImp().sequence();
347 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
order() );
348 return asImp().order();
367 return asImp().continuous(intersection);
377 return asImp().blockMapper();
386 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
grid() );
387 return asImp().grid();
396 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
grid() );
397 return asImp().grid();
407 return asImp().gridPart();
417 return asImp().indexSet();
426 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
size() );
427 return asImp().size();
437 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
begin() );
438 return asImp().begin();
448 CHECK_INTERFACE_IMPLEMENTATION(
asImp().
end() );
449 return asImp().end();
462 template<
class FunctorType >
465 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(
asImp().
forEach( f ) );
476 return asImp().multipleGeometryTypes();
488 return asImp().multipleBasisFunctionSets();
497 return asImp().communicationInterface();
506 return asImp().communicationDirection();
515 return asImp().communicator();
523 template <
class DiscreteFunction>
526 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(
536 template <
class DiscreteFunction,
class Operation>
537 void communicate(DiscreteFunction& discreteFunction,
const Operation& op)
const
539 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(
550 template<
class DiscreteFunction,
class Operation >
551 inline typename CommDataHandle< DiscreteFunction, Operation > :: Type
553 const Operation &operation )
const
555 CHECK_INTERFACE_IMPLEMENTATION
557 return asImp().createDataHandle( discreteFunction, operation );
564 return asImp().auxiliaryDofs();
568 [[deprecated(
"Use auxiliaryDofs instead!")]]
600 template<
class Traits >
624 template<
class FunctionSpaceTraits >
627 public std::enable_shared_from_this< typename FunctionSpaceTraits::DiscreteFunctionSpaceType >
637 typedef typename Traits :: DiscreteFunctionSpaceType
670 return new ObjectType( std::piecewise_construct, std::tie( *key.first, *key.second ), std::make_tuple( -1 ) );
683 typedef Dune::DynamicVector< typename BaseType::RangeFieldType, LocalDofVectorAllocatorType >
LocalDofVectorType;
705 const InterfaceType commInterface = InteriorBorder_All_Interface,
706 const CommunicationDirection commDirection = ForwardCommunication )
729 return asImp().basisFunctionSet( entity ).order();
735 return asImp().gridPart().grid();
741 return asImp().gridPart().grid();
753 return asImp().gridPart().indexSet();
775 return asImp().gridPart().template begin< 0 >();
785 return asImp().gridPart().template end< 0 >();
797 template<
class FunctorType >
842 template <
class DiscreteFunction>
846 typedef typename DiscreteFunction :: DiscreteFunctionSpaceType :: template
850 DefaultOperationType operation;
857 template <
class DiscreteFunction,
class Operation>
858 void communicate(DiscreteFunction& discreteFunction,
const Operation& op )
const
860 static_assert( std::is_same<
typename DiscreteFunctionSpaceType::BlockMapperType,
861 typename DiscreteFunction::DiscreteFunctionSpaceType::BlockMapperType >::value &&
862 localBlockSize ==
static_cast< std::size_t
>(DiscreteFunction::DiscreteFunctionSpaceType::localBlockSize),
863 "DiscreteFunctionSpaceDefault::communicate cannot be called with discrete functions defined over a different space" );
875 template<
class DiscreteFunction,
class Operation >
876 inline typename BaseType
877 :: template CommDataHandle< DiscreteFunction, Operation > :: Type
879 const Operation& operation )
const
881 static_assert( std::is_same<
typename DiscreteFunctionSpaceType::BlockMapperType,
882 typename DiscreteFunction::DiscreteFunctionSpaceType::BlockMapperType >::value &&
883 localBlockSize ==
static_cast< std::size_t
>(DiscreteFunction::DiscreteFunctionSpaceType::localBlockSize),
884 "DiscreteFunctionSpaceDefault::createDataHandle cannot be called with discrete functions defined over a different space" );
885 return typename BaseType
887 :: Type( discreteFunction, operation );
905 template <
class DiscreteFunction>
911 template <
class DiscreteFunction>
918 template <
class Vector>
919 void adapt(
const Vector& polynomialOrders,
const int polOrderShift = 0 )
const
929 inline const std::vector<GeometryType>&
geomTypes(
int codim)
const
955 template<
class FunctionSpaceImp,
class Gr
idPartImp >
957 :
public FunctionSpaceImp
958 ,
public std::enable_shared_from_this< DiscreteFunctionSpaceAdapter<FunctionSpaceImp,GridPartImp> >
975 typedef typename GridPartType :: GridType
GridType;
982 typedef typename GridType :: template Codim< 0 > :: Entity
EntityType;
1006 : BaseType( other ),
1025 template<
class FunctorType >
1088 template <
class KeyImp,
class ObjectImp,
class ObjectFactoryImp>
1095 ObjectFactoryImp fac(key);
1096 return new ObjectImp(fac);
bool operator==(const DiscreteFunctionInterface< ImplX > &x, const DiscreteFunctionInterface< ImplY > &y)
Definition: common/discretefunction.hh:1053
void exchange(DiscreteFunction &discreteFunction) const
exchange data for a discrete function using the copy operation
Definition: communicationmanager.hh:225
DFSpaceIdentifier
enumerator for identification of spaces
Definition: discretefunctionspace.hh:94
std::string spaceName(const DFSpaceIdentifier id)
Definition: discretefunctionspace.hh:109
@ CombinedSpace_id
id for Combined Space
Definition: discretefunctionspace.hh:95
@ LagrangeSpace_id
id for Lagrange Space
Definition: discretefunctionspace.hh:101
@ LegendreDGSpace_id
id for Legendre Discontinuous Galerkin Space
Definition: discretefunctionspace.hh:103
@ GenericSpace_id
id for Generic Space
Definition: discretefunctionspace.hh:100
@ LocalFiniteElementSpace_id
id for local finite element space
Definition: discretefunctionspace.hh:106
@ DFAdapter_id
id for DiscreteFunctionSpace Adapter
Definition: discretefunctionspace.hh:96
@ FourierSpace_id
id for Fourier space
Definition: discretefunctionspace.hh:99
@ DGSpace_id
id for Discontinuous Galerkin Space
Definition: discretefunctionspace.hh:97
@ LagrangeDGSpace_id
id for Lagrange Discontinuous Galerkin Space
Definition: discretefunctionspace.hh:105
@ FiniteVolumeSpace_id
id for Finite Volume Space
Definition: discretefunctionspace.hh:98
@ HierarchicLegendreDGSpace_id
id for Hierarchic Legendre Discontinuous Galerkin Space
Definition: discretefunctionspace.hh:104
@ RannacherTurekSpace_id
id for Rannacher-Turek space
Definition: discretefunctionspace.hh:102
int sequence() const
return number of sequence, if dofmanagers memory was changed by calling some method like resize,...
Definition: dofmanager.hh:978
Definition: bindguard.hh:11
Definition: stackallocator.hh:61
A temporary function carrying values for one entity.
Definition: temporary.hh:42
Definition: combinedspace/combinedspace.hh:32
default implementation uses method geomTypes of given index set. Used in DiscreteFunctionSpaces.
Definition: allgeomtypes.hh:99
static bool multipleGeomTypes()
UGGrid might have different geom types.
Definition: allgeomtypes.hh:178
const std ::vector< GeometryType > & geomTypes(unsigned int codim) const
returns vector with geometry tpyes this index set has indices for
Definition: allgeomtypes.hh:171
In parallel computations the dofs of a discrete function are made up by all primary dofs....
Definition: auxiliarydofs.hh:47
default communication manager using just the grids communicate method
Definition: communicationmanager.hh:77
Definition: dofmanager.hh:761
Definition: discretefunctionspace.hh:58
static const bool v
Definition: discretefunctionspace.hh:84
GetDiscreteFunctionSpaceType< T, v >::Type Type
Definition: discretefunctionspace.hh:85
Definition: discretefunctionspace.hh:129
Definition: discretefunctionspace.hh:133
DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, StorageImp > Type
Definition: discretefunctionspace.hh:145
DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, caching > Type
Definition: discretefunctionspace.hh:158
This is the interface for discrete function spaces. All methods declared here have to be implemented ...
Definition: discretefunctionspace.hh:184
static constexpr std::size_t localBlockSize
size of local blocks
Definition: discretefunctionspace.hh:207
Traits::BlockMapperType BlockMapperType
type of block mapper of this space
Definition: discretefunctionspace.hh:202
const CommunicationManagerType & communicator() const
return reference to communicator (see CommunicationManager)
Definition: discretefunctionspace.hh:512
GridPartType::GridType GridType
type of underlying dune grid
Definition: discretefunctionspace.hh:213
AuxiliaryDofs< GridPartType, BlockMapperType > AuxiliaryDofsType
type of auxiliary dofs
Definition: discretefunctionspace.hh:227
bool continuous() const
returns true if the space contains only globally continuous functions
Definition: discretefunctionspace.hh:324
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition: discretefunctionspace.hh:414
Traits::LocalBlockIndices LocalBlockIndices
Definition: discretefunctionspace.hh:204
const AuxiliaryDofsType & slaveDofs() const
deprecated method, use auxiliaryDofs
Definition: discretefunctionspace.hh:569
const DiscreteFunctionSpaceType & asImp() const
Definition: discretefunctionspace.hh:576
GridPartType::IndexSetType IndexSetType
type of used dune index set
Definition: discretefunctionspace.hh:215
DiscreteFunctionSpaceType & asImp()
Definition: discretefunctionspace.hh:582
Traits::FunctionSpaceType FunctionSpaceType
type of function space
Definition: discretefunctionspace.hh:193
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
bool multipleBasisFunctionSets() const
returns true if base function sets depend on the entity
Definition: discretefunctionspace.hh:485
InterfaceType communicationInterface() const
return the communication interface appropriate for this space
Definition: discretefunctionspace.hh:494
CommunicationManager< DiscreteFunctionSpaceType > CommunicationManagerType
type of communication manager
Definition: discretefunctionspace.hh:257
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition: discretefunctionspace.hh:384
FunctionSpaceTraits Traits
type of traits class
Definition: discretefunctionspace.hh:187
Traits::GridPartType GridPartType
type of underlying grid part
Definition: discretefunctionspace.hh:210
GridType & grid()
get reference to grid this discrete function space belongs to
Definition: discretefunctionspace.hh:394
const BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: discretefunctionspace.hh:306
int order() const
get global order of space
Definition: discretefunctionspace.hh:345
GridPartType::template Codim< Traits::codimension >::EntityType EntityType
type of entity of codimension 0
Definition: discretefunctionspace.hh:223
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition: discretefunctionspace.hh:293
GridPartType & gridPart()
get a reference to the associated grid partition
Definition: discretefunctionspace.hh:404
bool continuous(const IntersectionType &intersection) const
returns true if discrete functions over this space have zero jump over the given intersection.
Definition: discretefunctionspace.hh:364
GridPartType::template Codim< Traits::codimension >::IteratorType IteratorType
type of iterator for grid traversal
Definition: discretefunctionspace.hh:221
DiscreteFunctionSpaceInterface()
Definition: discretefunctionspace.hh:282
int sequence() const
get index of the sequence in grid sequences
Definition: discretefunctionspace.hh:334
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition: discretefunctionspace.hh:463
void communicate(DiscreteFunction &discreteFunction) const
communicate data for given discrete function using the space's default communication operation
Definition: discretefunctionspace.hh:524
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition: discretefunctionspace.hh:446
bool multipleGeometryTypes() const
returns true if the grid has more than one geometry type
Definition: discretefunctionspace.hh:473
int size() const
get number of DoFs for this space
Definition: discretefunctionspace.hh:424
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition: discretefunctionspace.hh:435
AuxiliaryDofsType SlaveDofsType
deprecated type
Definition: discretefunctionspace.hh:231
CommunicationDirection communicationDirection() const
return the communication direction appropriate for this space
Definition: discretefunctionspace.hh:503
BlockMapperType & blockMapper() const
get a reference to the block mapper
Definition: discretefunctionspace.hh:374
CommDataHandle< DiscreteFunction, Operation >::Type createDataHandle(DiscreteFunction &discreteFunction, const Operation &operation) const
Creates DataHandle for given discrete function.
Definition: discretefunctionspace.hh:552
void communicate(DiscreteFunction &discreteFunction, const Operation &op) const
communicate data for given discrete function
Definition: discretefunctionspace.hh:537
Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
type of DiscretefunctionSapce implementation (Barton-Nackman)
Definition: discretefunctionspace.hh:191
const AuxiliaryDofsType & auxiliaryDofs() const
get auxiliary dofs
Definition: discretefunctionspace.hh:561
defines type of data handle for communication
Definition: discretefunctionspace.hh:244
Traits::template CommDataHandle< DiscreteFunction, Operation >::OperationType OperationType
type of operation to perform on scatter
Definition: discretefunctionspace.hh:253
Traits::template CommDataHandle< DiscreteFunction, Operation >::Type Type
type of communication data handle
Definition: discretefunctionspace.hh:248
typedef struct for defining the same discrete function space with a different function space
Definition: discretefunctionspace.hh:262
DifferentDiscreteFunctionSpace< DiscreteFunctionSpaceType, NewFunctionSpace >::Type Type
type of my discrete function space with new function space
Definition: discretefunctionspace.hh:264
typedef struct for defining the same discrete function space with a different dimRange
Definition: discretefunctionspace.hh:270
ToNewFunctionSpace< NewFunctionSpaceType >::Type Type
type of my discrete function space with new dim range
Definition: discretefunctionspace.hh:274
ToNewDimRangeFunctionSpace< FunctionSpaceType, newDimRange >::Type NewFunctionSpaceType
Definition: discretefunctionspace.hh:271
This is the class with default implementations for discrete function. The methods not marked with hav...
Definition: discretefunctionspace.hh:628
std::unique_ptr< std::pair< AuxiliaryDofsType, int >, typename AuxiliaryDofsProviderType::Deleter > auxiliaryDofs_
Definition: discretefunctionspace.hh:936
const InterfaceType commInterface_
Definition: discretefunctionspace.hh:698
LocalDofVectorAllocatorType ldvAllocator_
Definition: discretefunctionspace.hh:686
BaseType::EntityType EntityType
Definition: discretefunctionspace.hh:644
std::unique_ptr< CommunicationManagerType > communicator_
Definition: discretefunctionspace.hh:700
BaseType::BlockMapperType BlockMapperType
Definition: discretefunctionspace.hh:660
bool multipleBasisFunctionSets() const
returns true if base function sets depend on the entity
Definition: discretefunctionspace.hh:815
BaseType::template CommDataHandle< DiscreteFunction, Operation >::Type createDataHandle(DiscreteFunction &discreteFunction, const Operation &operation) const
Definition: discretefunctionspace.hh:878
int order(const EntityType &entity) const
default implementation of the method order
Definition: discretefunctionspace.hh:727
BaseType::GridPartType GridPartType
Definition: discretefunctionspace.hh:640
const std::vector< GeometryType > & geomTypes(int codim) const
returns true if the grid has more than one geometry type
Definition: discretefunctionspace.hh:929
LocalDofVectorStackType ldvStack_
Definition: discretefunctionspace.hh:685
const CommunicationManagerType & communicator() const
return reference to communicator (see CommunicationManager)
Definition: discretefunctionspace.hh:833
BaseType::IndexSetType IndexSetType
Definition: discretefunctionspace.hh:642
void addFunction(DiscreteFunction &df) const
default implementation of addFunction does nothing at the moment
Definition: discretefunctionspace.hh:906
Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
Definition: discretefunctionspace.hh:638
void removeFunction(DiscreteFunction &df) const
default implementation of removeFunction does nothing at the moment
Definition: discretefunctionspace.hh:912
void communicate(DiscreteFunction &discreteFunction) const
communicate data for given discrete function using the space's default communication operation
Definition: discretefunctionspace.hh:843
GridPartType & gridPart_
Definition: discretefunctionspace.hh:679
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition: discretefunctionspace.hh:733
InterfaceType communicationInterface() const
return the communication interface appropriate for this space
Definition: discretefunctionspace.hh:821
SingletonList< std::pair< GridPartType *, BlockMapperType * >, std::pair< AuxiliaryDofsType, int >, AuxiliaryDofsFactory > AuxiliaryDofsProviderType
Definition: discretefunctionspace.hh:676
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition: discretefunctionspace.hh:798
const AllGeometryTypes allGeomTypes_
Definition: discretefunctionspace.hh:692
int maxNumDofs() const
return the maximal number of dofs on entities
Definition: discretefunctionspace.hh:763
GridType & grid()
get reference to grid this discrete function space belongs to
Definition: discretefunctionspace.hh:739
int sequence() const
get index of the sequence in grid sequences
Definition: discretefunctionspace.hh:718
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition: discretefunctionspace.hh:751
AllGeomTypes< IndexSetType, GridType > AllGeometryTypes
Definition: discretefunctionspace.hh:691
BaseType::AuxiliaryDofsType AuxiliaryDofsType
Definition: discretefunctionspace.hh:661
void communicate(DiscreteFunction &discreteFunction, const Operation &op) const
communicate data for given discrete function
Definition: discretefunctionspace.hh:858
const AuxiliaryDofsType & auxiliaryDofs() const
get auxiliary dofs
Definition: discretefunctionspace.hh:891
int size() const
get number of DoFs for this space
Definition: discretefunctionspace.hh:757
void adapt(const Vector &polynomialOrders, const int polOrderShift=0) const
default implementation of adapt does nothing, its only used in PAdaptiveLagrangeSpace
Definition: discretefunctionspace.hh:919
DofManagerType & dofManager_
Definition: discretefunctionspace.hh:695
BaseType::IteratorType IteratorType
Definition: discretefunctionspace.hh:643
BasicTemporaryLocalFunction< ThisType, LocalDofVectorType > LocalFunctionType
Definition: discretefunctionspace.hh:688
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
BaseType::GridType GridType
Definition: discretefunctionspace.hh:641
CommunicationManager< DiscreteFunctionSpaceType > CommunicationManagerType
type of communication manager
Definition: discretefunctionspace.hh:658
const CommunicationDirection commDirection_
Definition: discretefunctionspace.hh:699
CommunicationDirection communicationDirection() const
return the communication interface appropriate for this space
Definition: discretefunctionspace.hh:827
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition: discretefunctionspace.hh:783
DiscreteFunctionSpaceDefault(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
constructor
Definition: discretefunctionspace.hh:704
ThreadSafeValue< UninitializedObjectStack > LocalDofVectorStackType
Definition: discretefunctionspace.hh:681
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition: discretefunctionspace.hh:773
bool multipleGeometryTypes() const
returns true if the grid has more than one geometry type
Definition: discretefunctionspace.hh:806
Dune::DynamicVector< typename BaseType::RangeFieldType, LocalDofVectorAllocatorType > LocalDofVectorType
Definition: discretefunctionspace.hh:683
FunctionSpaceTraits Traits
Definition: discretefunctionspace.hh:630
StackAllocator< typename BaseType::RangeFieldType, LocalDofVectorStackType * > LocalDofVectorAllocatorType
Definition: discretefunctionspace.hh:682
DofManager< GridType > DofManagerType
type of DoF manager
Definition: discretefunctionspace.hh:655
Definition: discretefunctionspace.hh:665
static void deleteObject(ObjectType *object)
Definition: discretefunctionspace.hh:673
static ObjectType * createObject(std::pair< GridPartType *, BlockMapperType * > key)
Definition: discretefunctionspace.hh:668
std::pair< AuxiliaryDofsType, int > ObjectType
Definition: discretefunctionspace.hh:666
Create Obejct that behaves like a discrete function space without to provide functions with the itera...
Definition: discretefunctionspace.hh:959
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition: discretefunctionspace.hh:1013
GridType::template Codim< 0 >::Entity EntityType
Definition: discretefunctionspace.hh:982
@ polynomialOrder
Definition: discretefunctionspace.hh:972
GridPartType::template Codim< 0 >::IteratorType IteratorType
type of the grid iterator
Definition: discretefunctionspace.hh:980
bool continuous(const IntersectionType &intersection) const
returns true if the space contains only globally continuous functions
Definition: discretefunctionspace.hh:1057
DiscreteFunctionSpaceAdapter(const GridPartType &gridPart, unsigned int order=polynomialOrder)
constructor taking grid Part
Definition: discretefunctionspace.hh:996
DiscreteFunctionSpaceAdapter(const ThisType &other)
copy constructor
Definition: discretefunctionspace.hh:1005
bool continuous() const
returns true if the space contains only globally continuous functions
Definition: discretefunctionspace.hh:1052
DefaultCommunicationManager< ThisType > CommunicationManagerType
type of communication manager (only the default communication is valid here)
Definition: discretefunctionspace.hh:987
const GridPartType & gridPart() const
get a reference to the associated grid partition
Definition: discretefunctionspace.hh:1034
int order() const
get global order of space
Definition: discretefunctionspace.hh:1063
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition: discretefunctionspace.hh:1046
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition: discretefunctionspace.hh:1019
const GridPartType & gridPart_
Definition: discretefunctionspace.hh:990
GridPartImp GridPartType
type of the grid partition
Definition: discretefunctionspace.hh:964
GridPartType::IntersectionType IntersectionType
Definition: discretefunctionspace.hh:984
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition: discretefunctionspace.hh:1075
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition: discretefunctionspace.hh:1026
int order(const EntityType &) const
get global order of space
Definition: discretefunctionspace.hh:1069
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition: discretefunctionspace.hh:1040
FunctionSpaceImp FunctionSpaceType
Definition: discretefunctionspace.hh:962
const unsigned int order_
Definition: discretefunctionspace.hh:991
GridPartType::IndexSetType IndexSetType
type of the index set
Definition: discretefunctionspace.hh:977
GridPartType::GridType GridType
type of the grid
Definition: discretefunctionspace.hh:975
BasisFunctionSetSingletonFactory provides method createObject and deleteObject for the SingletonList.
Definition: discretefunctionspace.hh:1090
static ObjectImp * createObject(const KeyImp &key)
create new BaseFunctionSet
Definition: discretefunctionspace.hh:1093
static void deleteObject(ObjectImp *obj)
delete BaseFunctionSet
Definition: discretefunctionspace.hh:1100
convert functions space to space with new dim range
Definition: functionspace.hh:250
Singleton list for key/object pairs.
Definition: singletonlist.hh:53
static auto getObject(const KeyType &key, Args &&... args) -> std::enable_if_t< std::is_same< decltype(FactoryType::createObject(key, std::forward< Args >(args)...)), ObjectType * >::value, ObjectType & >
Definition: singletonlist.hh:94
Definition: singletonlist.hh:65