DUNE PDELab (git)

Dune::PDELab::CompositeLexicographicOrdering< DI, CI, Children > Class Template Reference

Interface for merging index spaces. More...

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

Public Types

typedef CompositeNodeTag NodeTag
 The type tag that describes a CompositeNode.
 
typedef std::tuple< std::shared_ptr< Children >... > NodeStorage
 The type used for storing the children.
 
typedef std::tuple< Children... > ChildTypes
 A tuple storing the types of all children.
 

Public Member Functions

 CompositeLexicographicOrdering (bool backend_blocked, typename Base::GFSData *gfs_data, std::shared_ptr< Children >... children)
 Construct ordering object. More...
 
Traits::SizeType size (typename Traits::ContainerIndex suffix) const
 Gives the size for a given suffix. More...
 
Child Access
Child< k >::Type & child (index_constant< k >={})
 Returns the k-th child. More...
 
const Child< k >::Type & child (index_constant< k >={}) const
 Returns the k-th child (const version). More...
 
std::shared_ptr< typename Child< k >::Type > childStorage (index_constant< k >={})
 Returns the storage of the k-th child. More...
 
std::shared_ptr< const typename Child< k >::Type > childStorage (index_constant< k >={}) const
 Returns the storage of the k-th child (const version). More...
 
void setChild (typename Child< k >::Type &child, index_constant< k >={})
 Sets the k-th child to the passed-in value.
 
void setChild (typename Child< k >::Type &&child, index_constant< k >={})
 Store the passed value in k-th child.
 
void setChild (std::shared_ptr< typename Child< k >::Type > child, index_constant< k >={})
 Sets the storage of the k-th child to the passed-in value.
 
const NodeStoragenodeStorage () const
 
Nested Child Access
ImplementationDefinedchild (Indices... indices)
 Returns the child given by the list of indices. More...
 
const ImplementationDefinedchild (Indices... indices)
 Returns the child given by the list of indices. More...
 

Static Public Attributes

static const bool isLeaf
 Mark this class as non leaf in the dune-typetree.
 
static const bool isPower
 Mark this class as a non power in the dune-typetree.
 
static const bool isComposite
 Mark this class as a composite in the dune-typetree.
 

Protected Member Functions

void setDelegate (const VirtualOrderingBase< DI, CI > *delegate)
 Set the delegate called in mapIndex(). More...
 

Detailed Description

template<typename DI, typename CI, typename... Children>
class Dune::PDELab::CompositeLexicographicOrdering< DI, CI, Children >

Interface for merging index spaces.

Constructor & Destructor Documentation

◆ CompositeLexicographicOrdering()

template<typename DI , typename CI , typename... Children>
Dune::PDELab::CompositeLexicographicOrdering< DI, CI, Children >::CompositeLexicographicOrdering ( bool  backend_blocked,
typename Base::GFSData *  gfs_data,
std::shared_ptr< Children >...  children 
)
inline

Construct ordering object.

In general, an ordering object is not properly setup after construction. This must be done by a seperate call to update() after all the children have been properly set up.

Note
This constructor must be present for ordering objects not at the leaf of the tree.

Member Function Documentation

◆ child() [1/4]

Child<k>::Type& Dune::TypeTree::CompositeNode< Children >::child ( index_constant< k >  = {})
inlineinherited

Returns the k-th child.

Returns
a reference to the k-th child.

◆ child() [2/4]

const Child<k>::Type& Dune::TypeTree::CompositeNode< Children >::child ( index_constant< k >  = {}) const
inlineinherited

Returns the k-th child (const version).

Returns
a const reference to the k-th child.

◆ child() [3/4]

ImplementationDefined& Dune::TypeTree::CompositeNode< Children >::child ( Indices...  indices)
inlineinherited

Returns the child given by the list of indices.

This method simply forwards to the freestanding function child(). See that function for further information.

◆ child() [4/4]

const ImplementationDefined& Dune::TypeTree::CompositeNode< Children >::child ( Indices...  indices)
inlineinherited

Returns the child given by the list of indices.

This method simply forwards to the freestanding function child(). See that function for further information.

◆ childStorage() [1/2]

std::shared_ptr<typename Child<k>::Type> Dune::TypeTree::CompositeNode< Children >::childStorage ( index_constant< k >  = {})
inlineinherited

Returns the storage of the k-th child.

Returns
a copy of the object storing the k-th child.

◆ childStorage() [2/2]

std::shared_ptr<const typename Child<k>::Type> Dune::TypeTree::CompositeNode< Children >::childStorage ( index_constant< k >  = {}) const
inlineinherited

Returns the storage of the k-th child (const version).

Returns
a copy of the object storing the k-th child.

◆ setDelegate()

template<typename DI , typename CI >
void Dune::PDELab::OrderingBase< DI, CI >::setDelegate ( const VirtualOrderingBase< DI, CI > *  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!

◆ size()

template<typename DI , typename CI , typename... Children>
Traits::SizeType Dune::PDELab::CompositeLexicographicOrdering< DI, CI, Children >::size ( typename Traits::ContainerIndex  suffix) const
inline

Gives the size for a given suffix.

Parameters
suffixMultiIndex with a partial path to a container
Returns
Traits::SizeType The size required for such a path.

References Dune::Hybrid::forEach(), and Dune::Hybrid::max.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 8, 22:30, 2024)