pub struct ParticleOrdered<V, S> { /* private fields */ }
Expand description

Storage inside of which the massive particles are placed before the massless ones.

Allows for easy optimisation of the computation of forces between massive and massless particles.

Implementations§

source§

impl<V, S> ParticleOrdered<V, S>

source

pub fn with<I, U>(massive: I, massless: U) -> Self
where S: PartialEq + Zero, I: IntoIterator<Item = PointMass<V, S>>, U: IntoIterator<Item = PointMass<V, S>>,

Creates a new ParticleOrdered with the given massive and massless particles.

source

pub const fn massive_len(&self) -> usize

Returns the number of stored massive particles.

source

pub fn massive(&self) -> &[PointMass<V, S>]

Returns a reference to the massive particles.

source

pub fn massless(&self) -> &[PointMass<V, S>]

Returns a reference to the massless particles.

source

pub fn particles(&self) -> &[PointMass<V, S>]

Returns a reference to the particles.

source

pub fn massive_mut(&mut self) -> &mut [PointMass<V, S>]

Returns a mutable reference to the massive particles.

source

pub fn massless_mut(&mut self) -> &mut [PointMass<V, S>]

Returns a mutable reference to the massless particles.

source

pub fn particles_mut(&mut self) -> &mut [PointMass<V, S>]

Returns a mutable reference to the stored ordered particles.

Trait Implementations§

source§

impl<V: Clone, S: Clone> Clone for ParticleOrdered<V, S>

source§

fn clone(&self) -> ParticleOrdered<V, S>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V, S> ComputeMethod<&ParticleOrdered<V, S>> for BruteForcePairs
where V: FloatVector<Float = S> + Copy, S: Float + Copy,

§

type Output = Vec<V>

IntoIterator that yields the computed values.
source§

fn compute(&mut self, storage: &ParticleOrdered<V, S>) -> Self::Output

Performs the computation between objects contained in the storage.
source§

impl<V, S> ComputeMethod<&ParticleOrdered<V, S>> for BruteForcePairsSoftened<S>
where V: FloatVector<Float = S> + Copy, S: Float + Copy,

§

type Output = Vec<V>

IntoIterator that yields the computed values.
source§

fn compute(&mut self, storage: &ParticleOrdered<V, S>) -> Self::Output

Performs the computation between objects contained in the storage.
source§

impl<V: Debug, S: Debug> Debug for ParticleOrdered<V, S>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<V, S> From<&[PointMass<V, S>]> for ParticleOrdered<V, S>
where V: Clone, S: Clone + PartialEq + Zero,

source§

fn from(particles: &[PointMass<V, S>]) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<V, S> Freeze for ParticleOrdered<V, S>

§

impl<V, S> RefUnwindSafe for ParticleOrdered<V, S>

§

impl<V, S> Send for ParticleOrdered<V, S>
where S: Send, V: Send,

§

impl<V, S> Sync for ParticleOrdered<V, S>
where S: Sync, V: Sync,

§

impl<V, S> Unpin for ParticleOrdered<V, S>
where S: Unpin, V: Unpin,

§

impl<V, S> UnwindSafe for ParticleOrdered<V, S>
where S: UnwindSafe, V: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<U> AsPrimitive for U

source§

fn as_<F: FromPrimitive<Self>>(self) -> F

Converts this primitive into the input primitive.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<V, S, C, O> ComputeMethod<&ParticleOrdered<V, S>> for C
where O: IntoIterator, C: for<'a> ComputeMethod<ParticleSystem<'a, V, S, [PointMass<V, S>]>, Output = O>,

§

type Output = O

IntoIterator that yields the computed values.
source§

fn compute( &mut self, ordered: &ParticleOrdered<V, S> ) -> <C as ComputeMethod<&ParticleOrdered<V, S>>>::Output

Performs the computation between objects contained in the storage.
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,