Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Enumerations | Functions | Variables
CLBVHDualTreeTraversal.cpp File Reference
#include "shambase/exception.hpp"
#include "shamtree/details/dtt_parallel_select.hpp"
#include "shamtree/details/dtt_reference.hpp"
#include "shamtree/details/dtt_scan_multipass.hpp"
+ Include dependency graph for CLBVHDualTreeTraversal.cpp:

Go to the source code of this file.

Enumerations

enum class  DTTImpl : u32 { REFERENCE , PARALLEL_SELECT , SCAN_MULTIPASS }
 

Functions

DTTImpl shamtree::dtt_impl_from_params (const std::string &impl)
 
shamalgs::impl_param shamtree::dtt_impl_to_params (const DTTImpl &impl)
 
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

DTTImpl shamtree::dtt_impl = DTTImpl::SCAN_MULTIPASS
 

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.

Enumeration Type Documentation

◆ DTTImpl

enum class shamtree::DTTImpl : u32
strong

Definition at line 23 of 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 69 of file CLBVHDualTreeTraversal.cpp.

+ Here is the call graph for this function:

◆ dtt_impl_from_params()

DTTImpl shamtree::dtt_impl_from_params ( const std::string &  impl)
inline

Definition at line 26 of file CLBVHDualTreeTraversal.cpp.

◆ dtt_impl_to_params()

shamalgs::impl_param shamtree::dtt_impl_to_params ( const DTTImpl &  impl)
inline

Definition at line 40 of file CLBVHDualTreeTraversal.cpp.

Variable Documentation

◆ dtt_impl

DTTImpl shamtree::dtt_impl = DTTImpl::SCAN_MULTIPASS

Definition at line 24 of file CLBVHDualTreeTraversal.cpp.