Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
CLBVHDualTreeTraversal.cpp File Reference
Include dependency graph for CLBVHDualTreeTraversal.cpp:

Go to the source code of this file.

Classes

struct  shamtree::impl::Reference
 Naive reference CPU implementation of the dual tree traversal. More...
struct  shamtree::impl::ParallelSelect
 Parallel-select implementation of the dual tree traversal. More...
struct  shamtree::impl::ScanMultipass
 Scan-multipass implementation of the dual tree traversal. More...

Namespaces

namespace  shamtree::impl
 namespace to control implementation behavior

Functions

std::vector< std::string > shamtree::impl::get_default_impl_list_clbvh_dual_tree_traversal ()
 Get list of available dual tree traversal implementations, as config json strings.
std::string shamtree::impl::get_current_impl_clbvh_dual_tree_traversal_impl ()
 Get the current implementation for dual tree traversal, as a config json string.
bool shamtree::impl::is_impl_set_clbvh_dual_tree_traversal ()
 Check if an implementation has been selected for dual tree traversal.
void shamtree::impl::set_impl_clbvh_dual_tree_traversal (const std::string &impl)
 Set the implementation for dual tree traversal, from a config json string.
void shamtree::impl::autoselect_impl_clbvh_dual_tree_traversal (const sham::DeviceScheduler_ptr &dev_sched)
 Select the default implementation for dual tree traversal.
template<class Tmorton, class Tvec, u32 dim>
DTTResult shamtree::clbvh_dual_tree_traversal (sham::DeviceScheduler_ptr dev_sched, const CompressedLeafBVH< Tmorton, Tvec, dim > &bvh, shambase::VecComponent< Tvec > theta_crit, bool ordered_result=false, bool allow_leaf_lowering=false)
 Perform dual tree traversal on a compressed leaf bounding volume hierarchy.
template DTTResult shamtree::clbvh_dual_tree_traversal< u64, f64_3, 3 > (sham::DeviceScheduler_ptr dev_sched, const CompressedLeafBVH< u64, f64_3, 3 > &bvh, shambase::VecComponent< f64_3 > theta_crit, bool ordered_result, bool allow_leaf_lowering)
template DTTResult shamtree::clbvh_dual_tree_traversal< u32, f64_3, 3 > (sham::DeviceScheduler_ptr dev_sched, const CompressedLeafBVH< u32, f64_3, 3 > &bvh, shambase::VecComponent< f64_3 > theta_crit, bool ordered_result, bool allow_leaf_lowering)

Variables

shamalgs::ImplVariantGlobal< Reference, ParallelSelect, ScanMultipass > shamtree::impl::dtt_impl
 Currently selected dual tree traversal implementation.

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 CLBVHDualTreeTraversal.cpp.

Function Documentation

◆ clbvh_dual_tree_traversal()

template<class Tmorton, class Tvec, u32 dim>
DTTResult shamtree::clbvh_dual_tree_traversal ( sham::DeviceScheduler_ptr dev_sched,
const CompressedLeafBVH< Tmorton, Tvec, dim > & bvh,
shambase::VecComponent< Tvec > theta_crit,
bool ordered_result = false,
bool allow_leaf_lowering = false )

Perform dual tree traversal on a compressed leaf bounding volume hierarchy.

Parameters
dev_schedThe device scheduler to use
bvhThe compressed leaf bounding volume hierarchy to traverse
theta_critThe critical theta value for the dual tree traversal
ordered_resultIf true the list of M2L and P2P will be ordered and the offsets will be provided
allow_leaf_loweringIf true leaves can be lowered to the next interaction to reduce the number of P2P interactions
Returns
The result of the dual tree traversal

Definition at line 80 of file CLBVHDualTreeTraversal.cpp.

Here is the call graph for this function: