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: usizeThe 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: OctreeTypeThe type of the Octree.
statistics: StatisticsStatistics 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