|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
discretefunctionspace.hh
Go to the documentation of this file.
108 };
224 typedef typename GridPartType :: template Codim< Traits::codimension > :: EntityType EntityType;
279 static_assert( std::is_same<typename BaseType::DomainFieldType, typename GridType::ctype>::value,
691 return new ObjectType( std::piecewise_construct, std::tie( *key.first, *key.second ), std::make_tuple( -1 ) );
697 typedef SingletonList< std::pair< GridPartType *, BlockMapperType * >, std::pair< AuxiliaryDofsType, int >, AuxiliaryDofsFactory > AuxiliaryDofsProviderType;
703 typedef StackAllocator< typename BaseType::RangeFieldType, LocalDofVectorStackType* > LocalDofVectorAllocatorType;
704 typedef Dune::DynamicVector< typename BaseType::RangeFieldType, LocalDofVectorAllocatorType > LocalDofVectorType;
898 localBlockSize == static_cast< std::size_t >(DiscreteFunction::DiscreteFunctionSpaceType::localBlockSize),
899 "DiscreteFunctionSpaceDefault::communicate cannot be called with discrete functions defined over a different space" );
904 static_assert( std::is_base_of< IsBlockVector, DiscreteFunction> :: value, "DiscreteFunctionSpaceDefault::communicate needs at least a BlockVectorInterface and derived");
924 localBlockSize == static_cast< std::size_t >(DiscreteFunction::DiscreteFunctionSpaceType::localBlockSize),
935 auxiliaryDofs_.reset( &(AuxiliaryDofsProviderType::getObject( std::make_pair( &this->gridPart(), &this->blockMapper() ) )) );
999 , public std::enable_shared_from_this< DiscreteFunctionSpaceAdapter<FunctionSpaceImp,GridPartImp> >
1013 enum { polynomialOrder = 6 }; // default polynomial order basically for determination of quadrature orders
#define CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(__interface_method_to_call__)
#define CHECK_INTERFACE_IMPLEMENTATION(dummy)
constexpr auto size(const T &t)
CommunicationDirection
InterfaceType
ForwardCommunication
InteriorBorder_All_Interface
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
IndexType primarySize() const
return number of primaryDofs
Definition auxiliarydofs.hh:134
DFSpaceIdentifier
enumerator for identification of spaces
Definition discretefunctionspace.hh:95
std::string spaceName(const DFSpaceIdentifier id)
Definition discretefunctionspace.hh:110
@ CombinedSpace_id
id for Combined Space
Definition discretefunctionspace.hh:96
@ LagrangeSpace_id
id for Lagrange Space
Definition discretefunctionspace.hh:102
@ LegendreDGSpace_id
id for Legendre Discontinuous Galerkin Space
Definition discretefunctionspace.hh:104
@ GenericSpace_id
id for Generic Space
Definition discretefunctionspace.hh:101
@ LocalFiniteElementSpace_id
id for local finite element space
Definition discretefunctionspace.hh:107
@ DFAdapter_id
id for DiscreteFunctionSpace Adapter
Definition discretefunctionspace.hh:97
@ FourierSpace_id
id for Fourier space
Definition discretefunctionspace.hh:100
@ DGSpace_id
id for Discontinuous Galerkin Space
Definition discretefunctionspace.hh:98
@ LagrangeDGSpace_id
id for Lagrange Discontinuous Galerkin Space
Definition discretefunctionspace.hh:106
@ FiniteVolumeSpace_id
id for Finite Volume Space
Definition discretefunctionspace.hh:99
@ HierarchicLegendreDGSpace_id
id for Hierarchic Legendre Discontinuous Galerkin Space
Definition discretefunctionspace.hh:105
@ RannacherTurekSpace_id
id for Rannacher-Turek space
Definition discretefunctionspace.hh:103
int sequence() const
return number of sequence, if dofmanagers memory was changed by calling some method like resize,...
Definition dofmanager.hh:1007
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:46
default communication manager using just the grids communicate method
Definition communicationmanager.hh:78
Definition dofmanager.hh:786
Definition discretefunctionspace.hh:59
static const bool v
Definition discretefunctionspace.hh:85
GetDiscreteFunctionSpaceType< T, v >::Type Type
Definition discretefunctionspace.hh:86
Definition discretefunctionspace.hh:130
Definition discretefunctionspace.hh:134
DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, StorageImp > Type
Definition discretefunctionspace.hh:146
DiscreteFunctionSpaceImp< NewFunctionSpace, GridPartImp, polOrd, caching > Type
Definition discretefunctionspace.hh:159
This is the interface for discrete function spaces. All methods declared here have to be implemented ...
Definition discretefunctionspace.hh:185
static constexpr std::size_t localBlockSize
size of local blocks
Definition discretefunctionspace.hh:208
Traits::BlockMapperType BlockMapperType
type of block mapper of this space
Definition discretefunctionspace.hh:203
const CommunicationManagerType & communicator() const
return reference to communicator (see CommunicationManager)
Definition discretefunctionspace.hh:533
GridPartType::GridType GridType
type of underlying dune grid
Definition discretefunctionspace.hh:214
AuxiliaryDofs< GridPartType, BlockMapperType > AuxiliaryDofsType
type of auxiliary dofs
Definition discretefunctionspace.hh:228
bool continuous() const
returns true if the space contains only globally continuous functions
Definition discretefunctionspace.hh:325
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition discretefunctionspace.hh:415
Traits::LocalBlockIndices LocalBlockIndices
Definition discretefunctionspace.hh:205
const AuxiliaryDofsType & slaveDofs() const
deprecated method, use auxiliaryDofs
Definition discretefunctionspace.hh:590
const DiscreteFunctionSpaceType & asImp() const
Definition discretefunctionspace.hh:597
GridPartType::IndexSetType IndexSetType
type of used dune index set
Definition discretefunctionspace.hh:216
DiscreteFunctionSpaceType & asImp()
Definition discretefunctionspace.hh:603
Traits::FunctionSpaceType FunctionSpaceType
type of function space
Definition discretefunctionspace.hh:194
Traits::BasisFunctionSetType BasisFunctionSetType
type of basis function set of this space
Definition discretefunctionspace.hh:201
GridPartType::IntersectionType IntersectionType
type of the intersections
Definition discretefunctionspace.hh:226
int primarySize() const
get number of primary DoFs for this space
Definition discretefunctionspace.hh:435
bool multipleBasisFunctionSets() const
returns true if base function sets depend on the entity
Definition discretefunctionspace.hh:506
InterfaceType communicationInterface() const
return the communication interface appropriate for this space
Definition discretefunctionspace.hh:515
CommunicationManager< DiscreteFunctionSpaceType > CommunicationManagerType
type of communication manager
Definition discretefunctionspace.hh:258
int auxiliarySize() const
get number of auxiliary DoFs for this space
Definition discretefunctionspace.hh:445
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition discretefunctionspace.hh:385
FunctionSpaceTraits Traits
type of traits class
Definition discretefunctionspace.hh:188
Traits::GridPartType GridPartType
type of underlying grid part
Definition discretefunctionspace.hh:211
GridType & grid()
get reference to grid this discrete function space belongs to
Definition discretefunctionspace.hh:395
const BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition discretefunctionspace.hh:307
int order() const
get global order of space
Definition discretefunctionspace.hh:346
GridPartType::template Codim< Traits::codimension >::EntityType EntityType
type of entity of codimension 0
Definition discretefunctionspace.hh:224
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition discretefunctionspace.hh:294
GridPartType & gridPart()
get a reference to the associated grid partition
Definition discretefunctionspace.hh:405
bool continuous(const IntersectionType &intersection) const
returns true if discrete functions over this space have zero jump over the given intersection.
Definition discretefunctionspace.hh:365
GridPartType::template Codim< Traits::codimension >::IteratorType IteratorType
type of iterator for grid traversal
Definition discretefunctionspace.hh:222
DiscreteFunctionSpaceInterface()
Definition discretefunctionspace.hh:283
int sequence() const
get index of the sequence in grid sequences
Definition discretefunctionspace.hh:335
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition discretefunctionspace.hh:484
void communicate(DiscreteFunction &discreteFunction) const
communicate data for given discrete function using the space's default communication operation
Definition discretefunctionspace.hh:545
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition discretefunctionspace.hh:467
bool multipleGeometryTypes() const
returns true if the grid has more than one geometry type
Definition discretefunctionspace.hh:494
int size() const
get number of DoFs for this space
Definition discretefunctionspace.hh:425
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition discretefunctionspace.hh:456
AuxiliaryDofsType SlaveDofsType
deprecated type
Definition discretefunctionspace.hh:232
CommunicationDirection communicationDirection() const
return the communication direction appropriate for this space
Definition discretefunctionspace.hh:524
BlockMapperType & blockMapper() const
get a reference to the block mapper
Definition discretefunctionspace.hh:375
CommDataHandle< DiscreteFunction, Operation >::Type createDataHandle(DiscreteFunction &discreteFunction, const Operation &operation) const
Creates DataHandle for given discrete function.
Definition discretefunctionspace.hh:573
void communicate(DiscreteFunction &discreteFunction, const Operation &op) const
communicate data for given discrete function
Definition discretefunctionspace.hh:558
Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
type of DiscretefunctionSapce implementation (Barton-Nackman)
Definition discretefunctionspace.hh:192
const AuxiliaryDofsType & auxiliaryDofs() const
get auxiliary dofs
Definition discretefunctionspace.hh:582
defines type of data handle for communication
Definition discretefunctionspace.hh:245
Traits::template CommDataHandle< DiscreteFunction, Operation >::OperationType OperationType
type of operation to perform on scatter
Definition discretefunctionspace.hh:254
Traits::template CommDataHandle< DiscreteFunction, Operation >::Type Type
type of communication data handle
Definition discretefunctionspace.hh:249
typedef struct for defining the same discrete function space with a different function space
Definition discretefunctionspace.hh:263
DifferentDiscreteFunctionSpace< DiscreteFunctionSpaceType, NewFunctionSpace >::Type Type
type of my discrete function space with new function space
Definition discretefunctionspace.hh:265
typedef struct for defining the same discrete function space with a different dimRange
Definition discretefunctionspace.hh:271
ToNewFunctionSpace< NewFunctionSpaceType >::Type Type
type of my discrete function space with new dim range
Definition discretefunctionspace.hh:275
ToNewDimRangeFunctionSpace< FunctionSpaceType, newDimRange >::Type NewFunctionSpaceType
Definition discretefunctionspace.hh:272
This is the class with default implementations for discrete function. The methods not marked with hav...
Definition discretefunctionspace.hh:649
std::unique_ptr< std::pair< AuxiliaryDofsType, int >, typename AuxiliaryDofsProviderType::Deleter > auxiliaryDofs_
Definition discretefunctionspace.hh:977
const InterfaceType commInterface_
Definition discretefunctionspace.hh:719
LocalDofVectorAllocatorType ldvAllocator_
Definition discretefunctionspace.hh:707
BaseType::EntityType EntityType
Definition discretefunctionspace.hh:665
std::unique_ptr< CommunicationManagerType > communicator_
Definition discretefunctionspace.hh:721
BaseType::BlockMapperType BlockMapperType
Definition discretefunctionspace.hh:681
bool multipleBasisFunctionSets() const
returns true if base function sets depend on the entity
Definition discretefunctionspace.hh:849
BaseType::template CommDataHandle< DiscreteFunction, Operation >::Type createDataHandle(DiscreteFunction &discreteFunction, const Operation &operation) const
Definition discretefunctionspace.hh:919
int order(const EntityType &entity) const
default implementation of the method order
Definition discretefunctionspace.hh:748
BaseType::GridPartType GridPartType
Definition discretefunctionspace.hh:661
const std::vector< GeometryType > & geomTypes(int codim) const
returns true if the grid has more than one geometry type
Definition discretefunctionspace.hh:969
LocalDofVectorStackType ldvStack_
Definition discretefunctionspace.hh:706
const CommunicationManagerType & communicator() const
return reference to communicator (see CommunicationManager)
Definition discretefunctionspace.hh:867
BaseType::IndexSetType IndexSetType
Definition discretefunctionspace.hh:663
void addFunction(DiscreteFunction &df) const
default implementation of addFunction does nothing at the moment
Definition discretefunctionspace.hh:947
Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
Definition discretefunctionspace.hh:659
void removeFunction(DiscreteFunction &df) const
default implementation of removeFunction does nothing at the moment
Definition discretefunctionspace.hh:953
void communicate(DiscreteFunction &discreteFunction) const
communicate data for given discrete function using the space's default communication operation
Definition discretefunctionspace.hh:877
GridPartType & gridPart_
Definition discretefunctionspace.hh:700
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition discretefunctionspace.hh:754
InterfaceType communicationInterface() const
return the communication interface appropriate for this space
Definition discretefunctionspace.hh:855
SingletonList< std::pair< GridPartType *, BlockMapperType * >, std::pair< AuxiliaryDofsType, int >, AuxiliaryDofsFactory > AuxiliaryDofsProviderType
Definition discretefunctionspace.hh:697
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition discretefunctionspace.hh:832
const AllGeometryTypes allGeomTypes_
Definition discretefunctionspace.hh:713
int maxNumDofs() const
return the maximal number of dofs on entities
Definition discretefunctionspace.hh:797
int primarySize() const
get number of primary DoFs for this space
Definition discretefunctionspace.hh:784
GridType & grid()
get reference to grid this discrete function space belongs to
Definition discretefunctionspace.hh:760
int sequence() const
get index of the sequence in grid sequences
Definition discretefunctionspace.hh:739
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition discretefunctionspace.hh:772
AllGeomTypes< IndexSetType, GridType > AllGeometryTypes
Definition discretefunctionspace.hh:712
BaseType::AuxiliaryDofsType AuxiliaryDofsType
Definition discretefunctionspace.hh:682
void communicate(DiscreteFunction &discreteFunction, const Operation &op) const
communicate data for given discrete function
Definition discretefunctionspace.hh:892
const AuxiliaryDofsType & auxiliaryDofs() const
get auxiliary dofs
Definition discretefunctionspace.hh:932
int size() const
get number of DoFs for this space
Definition discretefunctionspace.hh:778
void adapt(const Vector &polynomialOrders, const int polOrderShift=0) const
default implementation of adapt does nothing, its only used in PAdaptiveLagrangeSpace
Definition discretefunctionspace.hh:960
DofManagerType & dofManager_
Definition discretefunctionspace.hh:716
BaseType::IteratorType IteratorType
Definition discretefunctionspace.hh:664
BasicTemporaryLocalFunction< ThisType, LocalDofVectorType > LocalFunctionType
Definition discretefunctionspace.hh:709
GridPartType & gridPart() const
Definition discretefunctionspace.hh:766
BaseType::GridType GridType
Definition discretefunctionspace.hh:662
CommunicationManager< DiscreteFunctionSpaceType > CommunicationManagerType
type of communication manager
Definition discretefunctionspace.hh:679
const CommunicationDirection commDirection_
Definition discretefunctionspace.hh:720
CommunicationDirection communicationDirection() const
return the communication interface appropriate for this space
Definition discretefunctionspace.hh:861
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition discretefunctionspace.hh:817
DiscreteFunctionSpaceDefault(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
constructor
Definition discretefunctionspace.hh:725
ThreadSafeValue< UninitializedObjectStack > LocalDofVectorStackType
Definition discretefunctionspace.hh:702
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition discretefunctionspace.hh:807
bool multipleGeometryTypes() const
returns true if the grid has more than one geometry type
Definition discretefunctionspace.hh:840
Dune::DynamicVector< typename BaseType::RangeFieldType, LocalDofVectorAllocatorType > LocalDofVectorType
Definition discretefunctionspace.hh:704
FunctionSpaceTraits Traits
Definition discretefunctionspace.hh:651
StackAllocator< typename BaseType::RangeFieldType, LocalDofVectorStackType * > LocalDofVectorAllocatorType
Definition discretefunctionspace.hh:703
DofManager< GridType > DofManagerType
type of DoF manager
Definition discretefunctionspace.hh:676
int auxiliarySize() const
get number of auxiliary DoFs for this space
Definition discretefunctionspace.hh:790
Definition discretefunctionspace.hh:686
static void deleteObject(ObjectType *object)
Definition discretefunctionspace.hh:694
static ObjectType * createObject(std::pair< GridPartType *, BlockMapperType * > key)
Definition discretefunctionspace.hh:689
std::pair< AuxiliaryDofsType, int > ObjectType
Definition discretefunctionspace.hh:687
Create Obejct that behaves like a discrete function space without to provide functions with the itera...
Definition discretefunctionspace.hh:1000
IteratorType begin() const
get iterator pointing to the first entity of the associated grid partition
Definition discretefunctionspace.hh:1054
GridType::template Codim< 0 >::Entity EntityType
Definition discretefunctionspace.hh:1023
GridPartType::template Codim< 0 >::IteratorType IteratorType
type of the grid iterator
Definition discretefunctionspace.hh:1021
bool continuous(const IntersectionType &intersection) const
returns true if the space contains only globally continuous functions
Definition discretefunctionspace.hh:1098
DiscreteFunctionSpaceAdapter(const GridPartType &gridPart, unsigned int order=polynomialOrder)
constructor taking grid Part
Definition discretefunctionspace.hh:1037
DiscreteFunctionSpaceAdapter(const ThisType &other)
copy constructor
Definition discretefunctionspace.hh:1046
bool continuous() const
returns true if the space contains only globally continuous functions
Definition discretefunctionspace.hh:1093
DefaultCommunicationManager< ThisType > CommunicationManagerType
type of communication manager (only the default communication is valid here)
Definition discretefunctionspace.hh:1028
const GridPartType & gridPart() const
get a reference to the associated grid partition
Definition discretefunctionspace.hh:1075
int order() const
get global order of space
Definition discretefunctionspace.hh:1104
const GridType & grid() const
get reference to grid this discrete function space belongs to
Definition discretefunctionspace.hh:1087
IteratorType end() const
get iterator pointing behind the last entity of the associated grid partition
Definition discretefunctionspace.hh:1060
@ polynomialOrder
Definition discretefunctionspace.hh:1013
const GridPartType & gridPart_
Definition discretefunctionspace.hh:1031
GridPartImp GridPartType
type of the grid partition
Definition discretefunctionspace.hh:1005
GridPartType::IntersectionType IntersectionType
Definition discretefunctionspace.hh:1025
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition discretefunctionspace.hh:1116
void forEach(FunctorType &f) const
apply a functor to each entity in the associated grid partition
Definition discretefunctionspace.hh:1067
int order(const EntityType &) const
get global order of space
Definition discretefunctionspace.hh:1110
const IndexSetType & indexSet() const
Get a reference to the associated index set.
Definition discretefunctionspace.hh:1081
FunctionSpaceImp FunctionSpaceType
Definition discretefunctionspace.hh:1003
const unsigned int order_
Definition discretefunctionspace.hh:1032
GridPartType::IndexSetType IndexSetType
type of the index set
Definition discretefunctionspace.hh:1018
GridPartType::GridType GridType
type of the grid
Definition discretefunctionspace.hh:1016
BasisFunctionSetSingletonFactory provides method createObject and deleteObject for the SingletonList.
Definition discretefunctionspace.hh:1131
static ObjectImp * createObject(const KeyImp &key)
create new BaseFunctionSet
Definition discretefunctionspace.hh:1134
static void deleteObject(ObjectImp *obj)
delete BaseFunctionSet
Definition discretefunctionspace.hh:1141
convert functions space to space with new dim range
Definition functionspace.hh:250
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
T make_pair(T... args)
T make_tuple(T... args)
T piecewise_construct
T tie(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8