Tree¶
- class hoomd.md.nlist.Tree(buffer, exclusions=('bond',), rebuild_check_delay=1, check_dist=True, mesh=None, default_r_cut=0.0)¶
Bases:
NeighborList
Bounding volume hierarchy based neighbor list.
- Parameters:
buffer (float) – Buffer width \([\mathrm{length}]\).
exclusions (tuple[str]) – Defines which particles to exclude from the neighbor list, see more details in
NeighborList
.rebuild_check_delay (int) – How often to attempt to rebuild the neighbor list.
check_dist (bool) – Flag to enable / disable distance checking.
mesh (Mesh) – When a mesh object is passed, the neighbor list uses the mesh to determine the bond exclusions in addition to all other set exclusions.
Tree
creates a neighbor list using a bounding volume hierarchy (BVH) tree traversal in \(O(N \log N)\) time. A BVH tree of axis-aligned bounding boxes is constructed per particle type, and each particle queries each tree to determine its neighbors. This method of searching leads to significantly improved performance compared to cell lists in systems with moderate size asymmetry, but has slower performance for monodisperse systems.Tree
can also be slower thanCell
if there are multiple types in the system, but the cutoffs between types are identical. (This is because one BVH is created per type.) The user should carefully benchmark neighbor list build times to select the appropriate neighbor list construction type.Tree
’s memory requirements scale with the number of particles in the system rather than the box volume, which may be particularly advantageous for large, sparse systems.Important
M.P. Howard et al. 2016 describes the original implementation of this algorithm for HOOMD-blue. M.P. Howard et al. 2019 describes the improved algorithm that is currently implemented. Cite both if you utilize this neighbor list style in your work.
Examples:
nl_t = nlist.Tree(check_dist=False)
Members inherited from
AutotunedObject
:- property kernel_parameters¶
Kernel parameters.
Read more...
- property is_tuning_complete¶
Check if kernel parameter tuning is complete.
Read more...
- tune_kernel_parameters()¶
Start tuning kernel parameters.
Read more...
Members inherited from
NeighborList
:- buffer¶
Buffer width.
Read more...
- check_dist¶
Flag to enable / disable distance checking.
Read more...
- exclusions¶
Defines which particles to exclude from the neighbor list.
Read more...
- mesh¶
Associated mesh data structure.
Read more...
- rebuild_check_delay¶
How often to attempt to rebuild the neighbor list.
Read more...
- r_cut¶
Base cutoff radius for neighbor list queries.
Read more...
- property cpu_local_nlist_arrays¶
Local nlist arrays on the CPU.
Read more...
- property gpu_local_nlist_arrays¶
Local nlist arrays on the GPU.
Read more...
- property local_pair_list¶
Local pair list.
Read more...
- property num_builds¶
The number of neighbor list builds.
Read more...
- property pair_list¶
Global pair list.
Read more...
- property shortest_rebuild¶
The shortest period between neighbor list rebuilds.
Read more...