![]() |
Shamrock 2025.10.0
Astrophysical Code
|
The radix tree. More...
#include <shamtree/include/shamtree/RadixTree.hpp>
Collaboration diagram for RadixTree< Umorton, Tvec >:Classes | |
| struct | CuttedTree |
| class | LeafIterator |
Public Types | |
| using | ipos_t = typename shamrock::sfc::MortonCodes< Umorton, dim >::int_vec_repr |
| using | coord_t = typename shambase::VectorProperties< Tvec >::component_type |
| template<class T > | |
| using | RadixTreeField = RadixTreeField< T > |
Public Member Functions | |
| bool | is_tree_built () |
| bool | are_range_int_built () |
| bool | are_range_float_built () |
| void | serialize (shamalgs::SerializeHelper &serializer) |
| shamalgs::SerializeSize | serialize_byte_size () |
| RadixTreeField< coord_t > | compute_int_boxes (sycl::queue &queue, sham::DeviceBuffer< coord_t > &int_rad_buf, coord_t tolerance) |
| void | compute_cell_ibounding_box (sycl::queue &queue) |
| void | convert_bounding_box (sycl::queue &queue) |
| std::unique_ptr< sycl::buffer< Umorton > > | build_new_morton_buf (sycl::buffer< Tvec > &pos_buf, u32 obj_cnt) |
| RadixTree (sycl::queue &queue, std::tuple< Tvec, Tvec > treebox, const std::unique_ptr< sycl::buffer< Tvec > > &pos_buf, u32 cnt_obj, u32 reduc_level) | |
| RadixTree (sycl::queue &queue, std::tuple< Tvec, Tvec > treebox, sycl::buffer< Tvec > &pos_buf, u32 cnt_obj, u32 reduc_level) | |
| RadixTree (sham::DeviceScheduler_ptr dev_sched, std::tuple< Tvec, Tvec > treebox, sham::DeviceBuffer< Tvec > &pos_buf, u32 cnt_obj, u32 reduc_level) | |
| RadixTree (const RadixTree &other) | |
| u64 | memsize () const |
| RadixTree | duplicate () |
| std::unique_ptr< RadixTree > | duplicate_to_ptr () |
| bool | is_same (RadixTree &other) |
| template<class T , class LambdaComputeLeaf , class LambdaCombinator > | |
| RadixTreeField< T > | compute_field (sycl::queue &queue, u32 nvar, LambdaComputeLeaf &&compute_leaf, LambdaCombinator &&combine) const |
| template<class LambdaForEachCell > | |
| std::pair< std::set< u32 >, std::set< u32 > > | get_walk_res_set (LambdaForEachCell &&interact_cd) const |
| template<class LambdaForEachCell > | |
| void | for_each_leaf (sycl::queue &queue, LambdaForEachCell &&par_for_each_cell) const |
| std::tuple< coord_t, coord_t > | get_min_max_cell_side_length () |
| CuttedTree | cut_tree (sycl::queue &queue, sycl::buffer< u8 > &valid_node) |
| template<class T > | |
| void | print_tree_field (sycl::buffer< T > &buf_field) |
| LeafIterator | get_leaf_access (sycl::handler &device_handler) |
| template<class T , class LambdaComputeLeaf , class LambdaCombinator > | |
| RadixTree< u_morton, vec3 >::template RadixTreeField< T > | compute_field (sycl::queue &queue, u32 nvar, LambdaComputeLeaf &&compute_leaf, LambdaCombinator &&combine) const |
Static Public Member Functions | |
| static RadixTree | deserialize (shamalgs::SerializeHelper &serializer) |
| static RadixTree | make_empty () |
Public Attributes | |
| std::tuple< Tvec, Tvec > | bounding_box |
| shamrock::tree::TreeMortonCodes< Umorton > | tree_morton_codes |
| shamrock::tree::TreeReducedMortonCodes< Umorton > | tree_reduced_morton_codes |
| shamrock::tree::TreeStructure< Umorton > | tree_struct |
| shamrock::tree::TreeCellRanges< Umorton, Tvec > | tree_cell_ranges |
Static Public Attributes | |
| static constexpr u32 | tree_depth = Morton::significant_bits + 1 |
Friends | |
| bool | operator== (const RadixTree &t1, const RadixTree &t2) |
The radix tree.
| Umorton | the morton representation |
| Tvec | The position representation |
Definition at line 50 of file RadixTree.hpp.
| using RadixTree< Umorton, Tvec >::coord_t = typename shambase::VectorProperties<Tvec>::component_type |
Definition at line 68 of file RadixTree.hpp.
| using RadixTree< Umorton, Tvec >::ipos_t = typename shamrock::sfc::MortonCodes<Umorton, dim>::int_vec_repr |
Definition at line 67 of file RadixTree.hpp.
| using RadixTree< Umorton, Tvec >::RadixTreeField = RadixTreeField<T> |
Definition at line 192 of file RadixTree.hpp.
| RadixTree< u_morton, Tvec >::RadixTree | ( | sham::DeviceScheduler_ptr | dev_sched, |
| std::tuple< Tvec, Tvec > | treebox, | ||
| sham::DeviceBuffer< Tvec > & | pos_buf, | ||
| u32 | cnt_obj, | ||
| u32 | reduc_level | ||
| ) |
Definition at line 70 of file RadixTree.cpp.
|
inline |
Definition at line 143 of file RadixTree.hpp.
|
inline |
Definition at line 87 of file RadixTree.hpp.
|
inline |
Definition at line 85 of file RadixTree.hpp.
|
inline |
Definition at line 112 of file RadixTree.hpp.
| void RadixTree< u_morton, vec3 >::compute_cell_ibounding_box | ( | sycl::queue & | queue | ) |
Definition at line 146 of file RadixTree.cpp.
|
inline |
Definition at line 259 of file RadixTree.hpp.
| auto RadixTree< u_morton, vec >::compute_int_boxes | ( | sycl::queue & | queue, |
| sham::DeviceBuffer< coord_t > & | int_rad_buf, | ||
| coord_t | tolerance | ||
| ) |
Definition at line 159 of file RadixTree.cpp.
| void RadixTree< morton_t, pos_t >::convert_bounding_box | ( | sycl::queue & | queue | ) |
Definition at line 152 of file RadixTree.cpp.
| RadixTree< u_morton, vec3 >::CuttedTree RadixTree< u_morton, vec3 >::cut_tree | ( | sycl::queue & | queue, |
| sycl::buffer< u8 > & | valid_node | ||
| ) |
Definition at line 386 of file RadixTree.cpp.
|
static |
Definition at line 126 of file RadixTree.cpp.
Definition at line 167 of file RadixTree.hpp.
|
inline |
Definition at line 172 of file RadixTree.hpp.
|
inline |
Definition at line 407 of file RadixTree.hpp.
|
inline |
Definition at line 252 of file RadixTree.hpp.
|
inline |
Definition at line 501 of file RadixTree.hpp.
|
inline |
Definition at line 349 of file RadixTree.hpp.
|
inline |
Definition at line 177 of file RadixTree.hpp.
|
inline |
Definition at line 83 of file RadixTree.hpp.
|
inlinestatic |
Definition at line 221 of file RadixTree.hpp.
Definition at line 148 of file RadixTree.hpp.
| template void RadixTree< Umorton, Tvec >::print_tree_field | ( | sycl::buffer< T > & | buf_field | ) |
Definition at line 323 of file RadixTree.cpp.
| void RadixTree< u_morton, vec3 >::serialize | ( | shamalgs::SerializeHelper & | serializer | ) |
Definition at line 106 of file RadixTree.cpp.
| shamalgs::SerializeSize RadixTree< u_morton, pos_t >::serialize_byte_size | ( | ) |
Definition at line 118 of file RadixTree.cpp.
|
friend |
Definition at line 95 of file RadixTree.hpp.
| std::tuple<Tvec, Tvec> RadixTree< Umorton, Tvec >::bounding_box |
Definition at line 72 of file RadixTree.hpp.
| shamrock::tree::TreeCellRanges<Umorton, Tvec> RadixTree< Umorton, Tvec >::tree_cell_ranges |
Definition at line 81 of file RadixTree.hpp.
|
staticconstexpr |
Definition at line 70 of file RadixTree.hpp.
| shamrock::tree::TreeMortonCodes<Umorton> RadixTree< Umorton, Tvec >::tree_morton_codes |
Definition at line 75 of file RadixTree.hpp.
| shamrock::tree::TreeReducedMortonCodes<Umorton> RadixTree< Umorton, Tvec >::tree_reduced_morton_codes |
Definition at line 76 of file RadixTree.hpp.
| shamrock::tree::TreeStructure<Umorton> RadixTree< Umorton, Tvec >::tree_struct |
Definition at line 79 of file RadixTree.hpp.