dune-pdelab  2.4-dev
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | List of all members
Dune::PDELab::ChunkedBlockOrdering< Ordering > Class Template Referenceabstract

Ordering that permutes top-level ContainerIndex entries. More...

#include <dune/pdelab/ordering/chunkedblockordering.hh>

Inheritance diagram for Dune::PDELab::ChunkedBlockOrdering< Ordering >:
Inheritance graph

Public Types

typedef Ordering::Traits Traits
 
typedef HierarchicContainerAllocationTag ContainerAllocationTag
 
typedef DefaultLFSCacheTag CacheTag
 

Public Member Functions

Ordering & ordering ()
 
const Ordering & ordering () const
 
 ChunkedBlockOrdering (const typename NodeT::NodeStorage &ordering, const ordering::chunked::tag_base &tag)
 
 ChunkedBlockOrdering (const ChunkedBlockOrdering &r)
 
 ChunkedBlockOrdering (ChunkedBlockOrdering &&r)
 
virtual void map_index_dynamic (typename Traits::DOFIndexView di, typename Traits::ContainerIndex &ci) const
 
template<typename ItIn , typename ItOut >
void map_lfs_indices (ItIn in, const ItIn end, ItOut out) const
 
template<typename CIOutIterator >
Traits::SizeType extract_entity_indices (const typename Traits::DOFIndex::EntityIndex &ei, typename Traits::SizeType child_index, CIOutIterator ci_out, const CIOutIterator ci_end) const
 
void update ()
 
virtual void map_index_dynamic (typename Traits::DOFIndexView di, typename Traits::ContainerIndex &ci) const =0
 
Traits::ContainerIndex mapIndex (const typename Traits::DOFIndex &di) const
 
void mapIndex (typename Traits::DOFIndexView di, typename Traits::ContainerIndex &ci) const
 
Traits::SizeType size () const
 
Traits::SizeType size (const typename Traits::SizeType child_index) const
 
Traits::SizeType blockCount () const
 
Traits::SizeType sizeOffset (const typename Traits::SizeType child_index) const
 
Traits::SizeType blockOffset (const typename Traits::SizeType child_index) const
 
Traits::SizeType maxLocalSize () const
 
MergeMode::type mergeMode () const
 
bool containerBlocked () const
 
std::size_t childOrderingCount () const
 
OrderingBasechildOrdering (typename Traits::SizeType i)
 
const OrderingBasechildOrdering (typename Traits::SizeType i) const
 
bool contains (typename Traits::SizeType codim) const
 
bool fixedSize (typename Traits::SizeType codim) const
 
bool containsPartition (PartitionType partition) const
 Returns whether this ordering contains entities with PartitionType partition. More...
 
std::bitset< 6 > containedPartitions () const
 Returns the internal representation of the set of contained entities. More...
 

Public Attributes

bool _fixed_size
 
const bool _container_blocked
 
const MergeMode::type _merge_mode
 
const std::size_t _child_count
 
std::vector< OrderingBase * > _children
 
std::vector< typename Traits::SizeType > _child_size_offsets
 
std::vector< typename Traits::SizeType > _child_block_offsets
 
std::vector< typename Traits::SizeType > _child_block_merge_offsets
 
Traits::CodimFlag _codim_used
 
Traits::CodimFlag _codim_fixed_size
 
std::size_t _max_local_size
 
std::size_t _size
 
std::size_t _block_count
 
const VirtualOrderingBase< Ordering::Traits::DOFIndex, Ordering::Traits::ContainerIndex > * _delegate
 
GFSData_gfs_data
 

Static Public Attributes

static const bool consume_tree_index = false
 
static const bool has_dynamic_ordering_children
 

Protected Types

typedef Dune::PDELab::impl::GridFunctionSpaceOrderingData< typename Traits::SizeType > GFSData
 

Protected Member Functions

void setDelegate (const VirtualOrderingBase< Ordering::Traits::DOFIndex, Ordering::Traits::ContainerIndex > *delegate)
 Set the delegate called in mapIndex(). More...
 
void _mapIndex (typename Traits::DOFIndexView di, typename Traits::ContainerIndex &ci) const
 
void clearPartitionSet ()
 Empties the set of contained partitions. More...
 
void mergePartitionSet (const PartitionInfoProvider &r)
 Adds all partitions contained in r the set of contained partitions. More...
 
void setPartitionSet (const std::bitset< 6 > &partitions)
 Sets the set of contained partitions to the passed-in value. More...
 
void setPartitionSet (const PartitionInfoProvider &r)
 Copies the set of contained partitions from r. More...
 
template<typename It >
void mergePartitionSets (It begin, It end)
 Adds the partitions from all PartitionInfoProviders in the range [begin,end). More...
 

Detailed Description

template<typename Ordering>
class Dune::PDELab::ChunkedBlockOrdering< Ordering >

Ordering that permutes top-level ContainerIndex entries.

Member Typedef Documentation

typedef DefaultLFSCacheTag Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::CacheTag
inherited
typedef HierarchicContainerAllocationTag Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::ContainerAllocationTag
inherited
typedef Dune::PDELab::impl::GridFunctionSpaceOrderingData<typename Traits::SizeType> Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::GFSData
protectedinherited
template<typename Ordering >
typedef Ordering::Traits Dune::PDELab::ChunkedBlockOrdering< Ordering >::Traits

Constructor & Destructor Documentation

template<typename Ordering >
Dune::PDELab::ChunkedBlockOrdering< Ordering >::ChunkedBlockOrdering ( const typename NodeT::NodeStorage &  ordering,
const ordering::chunked::tag_base &  tag 
)
inline
template<typename Ordering >
Dune::PDELab::ChunkedBlockOrdering< Ordering >::ChunkedBlockOrdering ( const ChunkedBlockOrdering< Ordering > &  r)
inline
template<typename Ordering >
Dune::PDELab::ChunkedBlockOrdering< Ordering >::ChunkedBlockOrdering ( ChunkedBlockOrdering< Ordering > &&  r)
inline

Member Function Documentation

void Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_mapIndex ( typename Traits::DOFIndexView  di,
typename Traits::ContainerIndex ci 
) const
inlineprotectedinherited
Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::blockCount ( ) const
inlineinherited
Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::blockOffset ( const typename Traits::SizeType  child_index) const
inlineinherited
OrderingBase& Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::childOrdering ( typename Traits::SizeType  i)
inlineinherited
const OrderingBase& Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::childOrdering ( typename Traits::SizeType  i) const
inlineinherited
std::size_t Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::childOrderingCount ( ) const
inlineinherited
void Dune::PDELab::PartitionInfoProvider::clearPartitionSet ( )
inlineprotectedinherited

Empties the set of contained partitions.

Referenced by Dune::PDELab::PartitionInfoProvider::mergePartitionSets().

std::bitset<6> Dune::PDELab::PartitionInfoProvider::containedPartitions ( ) const
inlineinherited

Returns the internal representation of the set of contained entities.

bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::containerBlocked ( ) const
inlineinherited
bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::contains ( typename Traits::SizeType  codim) const
inlineinherited
bool Dune::PDELab::PartitionInfoProvider::containsPartition ( PartitionType  partition) const
inlineinherited

Returns whether this ordering contains entities with PartitionType partition.

Referenced by Dune::PDELab::GridFunctionSpaceBase< GridFunctionSpace, PowerCompositeGridFunctionSpaceTraits< GV, B, O, k > >::containsPartition().

template<typename Ordering >
template<typename CIOutIterator >
Traits::SizeType Dune::PDELab::ChunkedBlockOrdering< Ordering >::extract_entity_indices ( const typename Traits::DOFIndex::EntityIndex &  ei,
typename Traits::SizeType  child_index,
CIOutIterator  ci_out,
const CIOutIterator  ci_end 
) const
inline
bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::fixedSize ( typename Traits::SizeType  codim) const
inlineinherited
template<typename Ordering >
virtual void Dune::PDELab::ChunkedBlockOrdering< Ordering >::map_index_dynamic ( typename Traits::DOFIndexView  di,
typename Traits::ContainerIndex &  ci 
) const
inlinevirtual
virtual void Dune::PDELab::VirtualOrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::map_index_dynamic ( typename Traits::DOFIndexView  di,
typename Traits::ContainerIndex ci 
) const
pure virtualinherited
template<typename Ordering >
template<typename ItIn , typename ItOut >
void Dune::PDELab::ChunkedBlockOrdering< Ordering >::map_lfs_indices ( ItIn  in,
const ItIn  end,
ItOut  out 
) const
inline
Traits::ContainerIndex Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::mapIndex ( const typename Traits::DOFIndex di) const
inlineinherited
void Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::mapIndex ( typename Traits::DOFIndexView  di,
typename Traits::ContainerIndex ci 
) const
inlineinherited
Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::maxLocalSize ( ) const
inlineinherited
MergeMode::type Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::mergeMode ( ) const
inlineinherited
void Dune::PDELab::PartitionInfoProvider::mergePartitionSet ( const PartitionInfoProvider r)
inlineprotectedinherited

Adds all partitions contained in r the set of contained partitions.

Referenced by Dune::PDELab::PartitionInfoProvider::mergePartitionSets().

template<typename It >
void Dune::PDELab::PartitionInfoProvider::mergePartitionSets ( It  begin,
It  end 
)
inlineprotectedinherited

Adds the partitions from all PartitionInfoProviders in the range [begin,end).

Note
The passed-in iterators may yield both references and pointers to the PartitionInfoProviders in the range. This feature exists mostly to simplify implementation of the dynamic ordering base classes, which hold pointers to their children.

References Dune::PDELab::PartitionInfoProvider::clearPartitionSet(), and Dune::PDELab::PartitionInfoProvider::mergePartitionSet().

Referenced by Dune::PDELab::LocalOrderingBase< first_type< Children...>::type::Traits::GridView, first_type< Children...>::type::Traits::DOFIndex, first_type< Children...>::type::Traits::ContainerIndex >::LocalOrderingBase(), and Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex, Ordering::Traits::ContainerIndex >::OrderingBase().

template<typename Ordering >
Ordering& Dune::PDELab::ChunkedBlockOrdering< Ordering >::ordering ( )
inline
template<typename Ordering >
const Ordering& Dune::PDELab::ChunkedBlockOrdering< Ordering >::ordering ( ) const
inline
void Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::setDelegate ( const VirtualOrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex > *  delegate)
inlineprotectedinherited

Set the delegate called in mapIndex().

When copying an Ordering with a delegate, the derived Ordering must call this method with 'this' as its argument in the copy and the move constructors!

References Dune::PDELab::OrderingBase< DI, CI >::_delegate.

Referenced by Dune::PDELab::ChunkedBlockOrdering< Ordering >::ChunkedBlockOrdering(), and Dune::PDELab::PermutedOrdering< Ordering >::PermutedOrdering().

void Dune::PDELab::PartitionInfoProvider::setPartitionSet ( const std::bitset< 6 > &  partitions)
inlineprotectedinherited
void Dune::PDELab::PartitionInfoProvider::setPartitionSet ( const PartitionInfoProvider r)
inlineprotectedinherited

Copies the set of contained partitions from r.

Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::size ( ) const
inlineinherited
Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::size ( const typename Traits::SizeType  child_index) const
inlineinherited
Traits::SizeType Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::sizeOffset ( const typename Traits::SizeType  child_index) const
inlineinherited
template<typename Ordering >
void Dune::PDELab::ChunkedBlockOrdering< Ordering >::update ( )
inline

Member Data Documentation

std::size_t Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_block_count
inherited
std::vector<typename Traits::SizeType> Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_child_block_merge_offsets
inherited
std::vector<typename Traits::SizeType> Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_child_block_offsets
inherited
const std::size_t Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_child_count
inherited
std::vector<typename Traits::SizeType> Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_child_size_offsets
inherited
std::vector<OrderingBase*> Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_children
inherited
Traits::CodimFlag Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_codim_fixed_size
inherited
Traits::CodimFlag Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_codim_used
inherited
const bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_container_blocked
inherited
const VirtualOrderingBase<Ordering::Traits::DOFIndex ,Ordering::Traits::ContainerIndex >* Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_delegate
inherited
bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_fixed_size
inherited
GFSData* Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_gfs_data
inherited
std::size_t Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_max_local_size
inherited
const MergeMode::type Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_merge_mode
inherited
std::size_t Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::_size
inherited
template<typename Ordering >
const bool Dune::PDELab::ChunkedBlockOrdering< Ordering >::consume_tree_index = false
static
const bool Dune::PDELab::OrderingBase< Ordering::Traits::DOFIndex , Ordering::Traits::ContainerIndex >::has_dynamic_ordering_children
staticinherited

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