Interface Documentation
Version: invalid
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
flecsi::topo::ntree< POLICY_TYPE >::access< Priv > Struct Template Reference
Collaboration diagram for flecsi::topo::ntree< POLICY_TYPE >::access< Priv >:
Collaboration graph
[legend]

Public Types

using storage_t = ntree_storage< Policy >
 
using id_t = util::id_t
 
using offset_t = util::offset_t
 
using element_t = typename Policy::element_t
 
using point_t = util::point< element_t, dimension >
 
using range_t = std::array< point_t, 2 >
 
using key_t = typename Policy::key_t
 
using node_t = typename Policy::node_t
 
using tree_entity_t = typename Policy::tree_entity_t
 
using entity_t = typename Policy::entity_t
 
using entity_id_t = typename entity_base< 0 >::id_t
 
using geometry_t = ntree_geometry< element_t, dimension >
 

Public Member Functions

 access ()
 
void set_range (const range_t &range)
 Set the range of the current domain. This range is the same among all the processes and is used to compute the keys for each particles.
 
template<class... S, class = std::enable_if_t<Write>>
entity_t * make_entity (S &&... args)
 Construct a new entity. The entity's constructor should not be called directly.
 
void generate_keys ()
 Make the keys for all the enities present in the tree.
 
void sort_entities ()
 Sort the entities present in the tree.
 
node_t * root ()
 
template<class... S, class = std::enable_if_t<Write>>
entity_t * make_tree_entity (S &&... args)
 Construct a new tree entity. The tree entity's constructor should not be called directly.
 
void build_tree ()
 Build the tree topology in the node_map_, insert all the local particles of the tree in a serial way.
 
void insert (entity_t &ent)
 Insert a particle in the tree. Search for the nearest parent and refine if necessary.
 
entity_t & get (const entity_id_t &id)
 get an entity from the storage
 
node_t * find_parent (key_t key)
 Find the closest parent of a key.
 
void cofm (node_t *b=nullptr, bool local=false)
 Compute the cofm data for the tree using double stack.
 
void update_COM (node_t *b, bool=false)
 Compute the COFM information for a dedicated branch.
 
void graphviz (int num)
 Output the tree topology in a file The format is graphviz and can be converted to PDF with dot dot -Tpng file.gv > file.png.
 

Public Attributes

storage_t nts_
 

Static Public Attributes

static constexpr bool Write = privilege_write(Priv)
 
static constexpr size_t dimension = Policy::dimension
 

Friends

std::ostream & operator<< (std::ostream &os, const access &t)
 

Constructor & Destructor Documentation

◆ access()

template<typename POLICY_TYPE >
template<std::size_t Priv>
flecsi::topo::ntree< POLICY_TYPE >::access< Priv >::access ( )
inline

Constuct a tree topology with unit coordinates, i.e. each coordinate dimension is in range [0, 1].

Member Function Documentation

◆ root()

template<typename POLICY_TYPE >
template<std::size_t Priv>
node_t* flecsi::topo::ntree< POLICY_TYPE >::access< Priv >::root ( )
inline

Return the root from the hash table


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