Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Functions
RadixTree.hpp File Reference
#include "shamalgs/memory.hpp"
#include "shamalgs/primitives/reduction.hpp"
#include "shamalgs/reduction.hpp"
#include "shammath/sfc/morton.hpp"
#include "shamsys/NodeInstance.hpp"
#include "shamsys/legacy/log.hpp"
#include "shamsys/legacy/sycl_mpi_interop.hpp"
#include "shamtree/RadixTreeField.hpp"
#include "shamtree/TreeCellRanges.hpp"
#include "shamtree/TreeMortonCodes.hpp"
#include "shamtree/TreeReducedMortonCodes.hpp"
#include "shamtree/TreeStructure.hpp"
#include "shamtree/kernels/compute_ranges.hpp"
#include "shamtree/kernels/convert_ranges.hpp"
#include "shamtree/kernels/geometry_utils.hpp"
#include "shamtree/kernels/karras_alg.hpp"
#include "shamtree/kernels/reduction_alg.hpp"
#include "shamtree/key_morton_sort.hpp"
#include <array>
#include <memory>
#include <set>
#include <stdexcept>
#include <tuple>
#include <vector>
+ Include dependency graph for RadixTree.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  RadixTree< Umorton, Tvec >
 The radix tree. More...
 
struct  RadixTree< Umorton, Tvec >::CuttedTree
 
class  RadixTree< Umorton, Tvec >::LeafIterator
 
class  tree_comm::RadixTreeMPIRequest< u_morton, vec3 >
 
class  walker::Radix_tree_accessor< u_morton, vec3 >
 

Functions

template<class u_morton , class vec3 >
void tree_comm::wait_all (std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &rqs)
 
template<class u_morton , class vec3 >
u64 tree_comm::comm_isend (RadixTree< u_morton, vec3 > &rtree, std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &rqs, i32 rank_dest, i32 tag, MPI_Comm comm)
 
template<class u_morton , class vec3 >
u64 tree_comm::comm_irecv_probe (RadixTree< u_morton, vec3 > &rtree, std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &rqs, i32 rank_source, i32 tag, MPI_Comm comm)
 
template<class vec3 , class flt >
bool walker::interaction_crit::sph_radix_cell_crit (vec3 xyz_a, vec3 part_a_box_min, vec3 part_a_box_max, vec3 cur_cell_box_min, vec3 cur_cell_box_max, flt box_int_sz)
 
template<class vec3 , class flt >
bool walker::interaction_crit::sph_cell_cell_crit (vec3 cella_min, vec3 cella_max, vec3 cellb_min, vec3 cellb_max, flt rint_a, flt rint_b)
 
template<class Rta , class Functor_iter >
void walker::iter_object_in_cell (const Rta &acc, const u32 &cell_id, Functor_iter &&func_it)
 
template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl >
void walker::rtree_for_cell (const Rta &acc, Functor_int_cd &&func_int_cd, Functor_iter &&func_it, Functor_iter_excl &&func_excl)
 
template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl >
void walker::rtree_for (const Rta &acc, Functor_int_cd &&func_int_cd, Functor_iter &&func_it, Functor_iter_excl &&func_excl)
 
template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl , class arr_type >
void walker::rtree_for_fill_cache (Rta &acc, arr_type &cell_cache, Functor_int_cd &&func_int_cd)
 
template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl , class arr_type >
void walker::rtree_for (Rta &acc, arr_type &cell_cache, Functor_int_cd &&func_int_cd, Functor_iter &&func_it)
 

Detailed Description

Author
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)

Definition in file RadixTree.hpp.

Function Documentation

◆ comm_irecv_probe()

template<class u_morton , class vec3 >
u64 tree_comm::comm_irecv_probe ( RadixTree< u_morton, vec3 > &  rtree,
std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &  rqs,
i32  rank_source,
i32  tag,
MPI_Comm  comm 
)
inline

Definition at line 738 of file RadixTree.hpp.

◆ comm_isend()

template<class u_morton , class vec3 >
u64 tree_comm::comm_isend ( RadixTree< u_morton, vec3 > &  rtree,
std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &  rqs,
i32  rank_dest,
i32  tag,
MPI_Comm  comm 
)
inline

Definition at line 621 of file RadixTree.hpp.

◆ iter_object_in_cell()

template<class Rta , class Functor_iter >
void walker::iter_object_in_cell ( const Rta &  acc,
const u32 cell_id,
Functor_iter &&  func_it 
)
inline

Definition at line 880 of file RadixTree.hpp.

◆ rtree_for() [1/2]

template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl >
void walker::rtree_for ( const Rta &  acc,
Functor_int_cd &&  func_int_cd,
Functor_iter &&  func_it,
Functor_iter_excl &&  func_excl 
)
inline

Definition at line 986 of file RadixTree.hpp.

◆ rtree_for() [2/2]

template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl , class arr_type >
void walker::rtree_for ( Rta &  acc,
arr_type &  cell_cache,
Functor_int_cd &&  func_int_cd,
Functor_iter &&  func_it 
)
inline

Definition at line 1122 of file RadixTree.hpp.

◆ rtree_for_cell()

template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl >
void walker::rtree_for_cell ( const Rta &  acc,
Functor_int_cd &&  func_int_cd,
Functor_iter &&  func_it,
Functor_iter_excl &&  func_excl 
)
inline

Definition at line 940 of file RadixTree.hpp.

◆ rtree_for_fill_cache()

template<class Rta , class Functor_int_cd , class Functor_iter , class Functor_iter_excl , class arr_type >
void walker::rtree_for_fill_cache ( Rta &  acc,
arr_type &  cell_cache,
Functor_int_cd &&  func_int_cd 
)
inline

Definition at line 1050 of file RadixTree.hpp.

◆ sph_cell_cell_crit()

template<class vec3 , class flt >
bool walker::interaction_crit::sph_cell_cell_crit ( vec3  cella_min,
vec3  cella_max,
vec3  cellb_min,
vec3  cellb_max,
flt  rint_a,
flt  rint_b 
)
inline

Definition at line 819 of file RadixTree.hpp.

◆ sph_radix_cell_crit()

template<class vec3 , class flt >
bool walker::interaction_crit::sph_radix_cell_crit ( vec3  xyz_a,
vec3  part_a_box_min,
vec3  part_a_box_max,
vec3  cur_cell_box_min,
vec3  cur_cell_box_max,
flt  box_int_sz 
)
inline

Definition at line 802 of file RadixTree.hpp.

◆ wait_all()

template<class u_morton , class vec3 >
void tree_comm::wait_all ( std::vector< RadixTreeMPIRequest< u_morton, vec3 > > &  rqs)
inline

Definition at line 614 of file RadixTree.hpp.