dune-pdelab  2.0.0
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN > Class Template Reference

base class for tuples of grid function spaces base class that holds implementation of the methods this is the default version with lexicographic ordering More...

#include <dune/pdelab/gridfunctionspace/compositegridfunctionspace.hh>

Inheritance diagram for Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >:
Inheritance graph

Public Types

typedef
CompositeGridFunctionSpaceTag 
ImplementationTag
 
typedef
ordering_transformation::Type 
Ordering
 
typedef ImplementationBase::Traits Traits
 
typedef OrderingTag OrderingTag
 
typedef std::size_t size_type
 

Public Member Functions

 CompositeGridFunctionSpace (const Backend &backend, DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (const OrderingTag &ordering_tag, DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (const Backend &backend, const OrderingTag &ordering_tag, DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (const Backend &backend, DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (const OrderingTag &ordering_tag, DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (const Backend &backend, const OrderingTag &ordering_tag, DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE)
 
 CompositeGridFunctionSpace (DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE)
 
const Orderingordering () const
 Direct access to the DOF ordering. More...
 
Orderingordering ()
 Direct access to the DOF ordering. More...
 
shared_ptr< const OrderingorderingStorage () const
 Direct access to the storage of the DOF ordering. More...
 
shared_ptr< OrderingorderingStorage ()
 Direct access to the storage of the DOF ordering. More...
 
const Traits::GridViewTypegridView () const
 get grid view More...
 
Traits::SizeType size () const
 
Traits::SizeType blockCount () const
 
Traits::SizeType globalSize () const
 
Traits::SizeType maxLocalSize () const
 get max dimension of shape function space More...
 
bool containsPartition (PartitionType partition) const
 Returns whether this GridFunctionSpace contains entities with PartitionType partition. More...
 
void update ()
 
const std::string & name () const
 
void name (const std::string &name)
 
Traits::Backendbackend ()
 
const Traits::Backendbackend () const
 
Traits::OrderingTagorderingTag ()
 
const Traits::OrderingTagorderingTag () const
 
bool isRootSpace () const
 
bool dataHandleContains (int codim) const
 returns true if data for this codim should be communicated More...
 
bool dataHandleFixedSize (int codim) const
 returns true if size per entity of given dim and codim is a constant More...
 
DUNE_CONSTEXPR bool sendLeafSizes () const
 Returns true if the sizes of the leaf orderings in this tree should be sent as part of the communcation. More...
 
size_type dataHandleSize (const Entity &e) const
 
void setup_dof_indices (V &v, size_type n, const EntityIndex &ei, std::integral_constant< bool, true >) const
 
void setup_dof_indices (V &v, size_type n, const EntityIndex &ei, std::integral_constant< bool, false >) const
 
V::iterator dof_indices_begin (V &v, std::integral_constant< bool, true >) const
 
DummyDOFIndexIterator dof_indices_begin (V &v, std::integral_constant< bool, false >) const
 
void dataHandleIndices (const Entity &e, std::vector< ContainerIndex > &container_indices, std::vector< DOFIndex > &dof_indices, OffsetIterator oit, std::integral_constant< bool, map_dof_indices > map_dof_indices_value) const
 return vector of global indices associated with the given entity More...
 

Protected Member Functions

void update (Ordering &ordering) const
 
const
CompositeGridFunctionSpace
< Backend, OrderingTag,
DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > & 
gfs () const
 

Friends

class PowerCompositeGridFunctionSpaceBase< CompositeGridFunctionSpace, typename NodeT::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, NodeT::CHILDREN >
 
template<typename , typename >
class GridFunctionSpaceBase
 

Detailed Description

template<typename Backend, typename OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN>
class Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >

base class for tuples of grid function spaces base class that holds implementation of the methods this is the default version with lexicographic ordering

Template Parameters
Mapperis the ordering parameter. Use e.g. GridFunctionSpaceLexicographicMapper or GridFunctionSpaceComponentBlockwiseMapper or GridFunctionSpaceBlockwiseMapper or GridFunctionSpaceDynamicBlockwiseMapper
Tiare all grid function spaces

Member Typedef Documentation

template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
typedef CompositeGridFunctionSpaceTag Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::ImplementationTag
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
typedef ordering_transformation::Type Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::Ordering
typedef OrderingTag Dune::PDELab::PowerCompositeGridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType , Backend , OrderingTag , k >::OrderingTag
inherited
typedef std::size_t Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::size_type
inherited
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
typedef ImplementationBase::Traits Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::Traits

Constructor & Destructor Documentation

template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const Backend &  backend,
DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const OrderingTag ordering_tag,
DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const Backend &  backend,
const OrderingTag ordering_tag,
DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE  )
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const Backend &  backend,
DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const OrderingTag ordering_tag,
DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( const Backend &  backend,
const OrderingTag ordering_tag,
DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE   
)
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::CompositeGridFunctionSpace ( DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE  )
inline

Member Function Documentation

Traits::Backend& Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::backend ( )
inlineinherited
const Traits::Backend& Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::backend ( ) const
inlineinherited
Traits::SizeType Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::blockCount ( ) const
inlineinherited
bool Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::containsPartition ( PartitionType  partition) const
inlineinherited

Returns whether this GridFunctionSpace contains entities with PartitionType partition.

bool Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dataHandleContains ( int  codim) const
inlineinherited

returns true if data for this codim should be communicated

bool Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dataHandleFixedSize ( int  codim) const
inlineinherited

returns true if size per entity of given dim and codim is a constant

void Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dataHandleIndices ( const Entity &  e,
std::vector< ContainerIndex > &  container_indices,
std::vector< DOFIndex > &  dof_indices,
OffsetIterator  oit,
std::integral_constant< bool, map_dof_indices >  map_dof_indices_value 
) const
inlineinherited

return vector of global indices associated with the given entity

size_type Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dataHandleSize ( const Entity &  e) const
inlineinherited

how many objects of type DataType have to be sent for a given entity

Note: Only the sender side needs to know this size.

V::iterator Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dof_indices_begin ( V &  v,
std::integral_constant< bool, true >   
) const
inlineinherited
DummyDOFIndexIterator Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::dof_indices_begin ( V &  v,
std::integral_constant< bool, false >   
) const
inlineinherited
const CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > & Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::gfs ( ) const
inlineprotectedinherited
Traits::SizeType Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::globalSize ( ) const
inlineinherited
const Traits::GridViewType& Dune::PDELab::PowerCompositeGridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType , Backend , OrderingTag , k >::gridView ( ) const
inlineinherited
bool Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::isRootSpace ( ) const
inlineinherited
Traits::SizeType Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::maxLocalSize ( ) const
inlineinherited

get max dimension of shape function space

const std::string& Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::name ( ) const
inlineinherited
void Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::name ( const std::string &  name)
inlineinherited
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
const Ordering& Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::ordering ( ) const
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
Ordering& Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::ordering ( )
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
shared_ptr<const Ordering> Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::orderingStorage ( ) const
inline
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
shared_ptr<Ordering> Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >::orderingStorage ( )
inline
Traits::OrderingTag& Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::orderingTag ( )
inlineinherited
const Traits::OrderingTag& Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::orderingTag ( ) const
inlineinherited
DUNE_CONSTEXPR bool Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::sendLeafSizes ( ) const
inlineinherited

Returns true if the sizes of the leaf orderings in this tree should be sent as part of the communcation.

The MultiDomain extensions require knowledge about the size of the individual orderings, which might belong to separate subdomains. Otherwise it is possible to have size mismatches for entities with codim > 0 if there are protruding edges in the parallel mesh partitioning.

By default, this method will always return false. It must be overridden for cases where the data actually needs to be sent.

This flag also modifies the behavior of the generic data handles, which will automatically send, receive and process the additional information. Note that if sendLeafSizes() returns true, the underlying DataHandleIF of the grid will always use the data type char to be able to send different types of data, which will automatically be marshalled to / from a byte stream.

void Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::setup_dof_indices ( V &  v,
size_type  n,
const EntityIndex &  ei,
std::integral_constant< bool, true >   
) const
inlineinherited
void Dune::PDELab::DataHandleProvider< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > >::setup_dof_indices ( V &  v,
size_type  n,
const EntityIndex &  ei,
std::integral_constant< bool, false >   
) const
inlineinherited
Traits::SizeType Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::size ( ) const
inlineinherited
void Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::update ( )
inlineinherited
void Dune::PDELab::GridFunctionSpaceBase< CompositeGridFunctionSpace< Backend, OrderingTag, DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES > , PowerCompositeGridFunctionSpaceTraits< DUNE_TYPETREE_COMPOSITENODE_BASETYPE::template Child< 0 >::Type::Traits::GridViewType, Backend, OrderingTag, k > >::update ( Ordering &  ordering) const
inlineprotectedinherited

Friends And Related Function Documentation

template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
template<typename , typename >
friend class GridFunctionSpaceBase
friend
template<typename Backend , typename OrderingTag , DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN >
friend class PowerCompositeGridFunctionSpaceBase< CompositeGridFunctionSpace,typename NodeT::template Child< 0 >::Type::Traits::GridViewType,Backend,OrderingTag,NodeT::CHILDREN >
friend

The documentation for this class was generated from the following file: