Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
CLBVHDualTreeTraversal.hpp File Reference

Dual tree traversal algorithm for Compressed Leaf Bounding Volume Hierarchies. More...

#include "shamalgs/impl_utils.hpp"
#include "shambackends/vec.hpp"
#include "shamtree/CompressedLeafBVH.hpp"
+ Include dependency graph for CLBVHDualTreeTraversal.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  shamtree::DTTResult
 Result structure for dual tree traversal operations. More...
 
struct  shamtree::DTTResult::OrderedResult
 

Namespaces

namespace  shamtree::impl
 namespace to control implementation behavior
 

Functions

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.
 
std::vector< shamalgs::impl_paramshamtree::impl::get_default_impl_list_clbvh_dual_tree_traversal ()
 Get list of available dual tree traversal implementations.
 
shamalgs::impl_param shamtree::impl::get_current_impl_clbvh_dual_tree_traversal_impl ()
 Get the current implementation for dual tree traversal.
 
void shamtree::impl::set_impl_clbvh_dual_tree_traversal (const std::string &impl, const std::string &param="")
 Set the implementation for dual tree traversal.
 

Detailed Description

Dual tree traversal algorithm for Compressed Leaf Bounding Volume Hierarchies.

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

This header provides algorithms for performing dual tree traversal on Compressed Leaf Bounding Volume Hierarchies (CLBVH).

Definition in file CLBVHDualTreeTraversal.hpp.

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: