pub struct Octree<'a, T: RealType> {
pub particles: ArrayView2<'a, T>,
pub max_level: usize,
pub origin: [f64; 3],
pub diameter: [f64; 3],
pub level_keys: HashMap<usize, HashSet<usize>>,
pub particle_keys: Array1<usize>,
pub near_field: HashMap<usize, HashSet<usize>>,
pub interaction_list: HashMap<usize, HashSet<usize>>,
pub leaf_key_to_particles: HashMap<usize, HashSet<usize>>,
pub all_keys: HashSet<usize>,
pub octree_type: OctreeType,
pub statistics: Statistics,
}
Expand description
The basic Octree data structure
Fields§
§particles: ArrayView2<'a, T>
A (3, N) array of N particles.
max_level: usize
The maximum level in the tree.
origin: [f64; 3]
The origin of the bounding box for the particles.
diameter: [f64; 3]
The diameter across each dimension of the bounding box.
level_keys: HashMap<usize, HashSet<usize>>
The non-empty keys for each level of the tree.
particle_keys: Array1<usize>
The keys associated with the particles.
near_field: HashMap<usize, HashSet<usize>>
The set of near-field keys for each non-empty key.
interaction_list: HashMap<usize, HashSet<usize>>
The set of keys in the interaction list for each non-empty key.
leaf_key_to_particles: HashMap<usize, HashSet<usize>>
The index set of particles associated with each leaf key.
all_keys: HashSet<usize>
The set of all non-empty keys in the tree.
octree_type: OctreeType
The type of the Octree.
statistics: Statistics
Statistics for the tree.
Auto Trait Implementations§
impl<'a, T> Freeze for Octree<'a, T>
impl<'a, T> RefUnwindSafe for Octree<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Octree<'a, T>
impl<'a, T> Sync for Octree<'a, T>
impl<'a, T> Unpin for Octree<'a, T>
impl<'a, T> UnwindSafe for Octree<'a, T>where
T: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more