pub struct SymplecticEuler { /* private fields */ }Expand description
Basic symplectic Euler integrator
slightly slower than super::SymplecticEulerRayon (for appropriate choice of number_of_thread)
but use less memory
For an example see the module level documentation super.
Implementations§
Trait Implementations§
Source§impl Clone for SymplecticEuler
impl Clone for SymplecticEuler
Source§fn clone(&self) -> SymplecticEuler
fn clone(&self) -> SymplecticEuler
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SymplecticEuler
impl Debug for SymplecticEuler
Source§impl Default for SymplecticEuler
impl Default for SymplecticEuler
Source§fn default() -> Self
fn default() -> Self
Default value using the number of threads rayon would use,
see rayon::current_num_threads().
Source§impl<'de> Deserialize<'de> for SymplecticEuler
impl<'de> Deserialize<'de> for SymplecticEuler
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for SymplecticEuler
impl Display for SymplecticEuler
Source§impl Hash for SymplecticEuler
impl Hash for SymplecticEuler
Source§impl PartialEq for SymplecticEuler
impl PartialEq for SymplecticEuler
Source§impl Serialize for SymplecticEuler
impl Serialize for SymplecticEuler
Source§impl<State, const D: usize> SymplecticIntegrator<State, SimulationStateLeap<State, D>, D> for SymplecticEulerwhere
State: SimulationStateSynchronous<D> + LatticeStateWithEField<D> + LatticeStateWithEFieldNew<D>,
impl<State, const D: usize> SymplecticIntegrator<State, SimulationStateLeap<State, D>, D> for SymplecticEulerwhere
State: SimulationStateSynchronous<D> + LatticeStateWithEField<D> + LatticeStateWithEFieldNew<D>,
Source§type Error = SymplecticEulerError<<State as LatticeStateWithEFieldNew<D>>::Error>
type Error = SymplecticEulerError<<State as LatticeStateWithEFieldNew<D>>::Error>
Type of error returned by the Integrator.
Source§fn integrate_sync_sync(
&self,
l: &State,
delta_t: Real,
) -> Result<State, Self::Error>
fn integrate_sync_sync( &self, l: &State, delta_t: Real, ) -> Result<State, Self::Error>
Integrate a sync state to a sync state by advancing the link matrices and the electrical field simultaneously. Read more
Source§fn integrate_leap_leap(
&self,
l: &SimulationStateLeap<State, D>,
delta_t: Real,
) -> Result<SimulationStateLeap<State, D>, Self::Error>
fn integrate_leap_leap( &self, l: &SimulationStateLeap<State, D>, delta_t: Real, ) -> Result<SimulationStateLeap<State, D>, Self::Error>
Integrate a leap state to a leap state using leap frog algorithm. Read more
Source§fn integrate_sync_leap(
&self,
l: &State,
delta_t: Real,
) -> Result<SimulationStateLeap<State, D>, Self::Error>
fn integrate_sync_leap( &self, l: &State, delta_t: Real, ) -> Result<SimulationStateLeap<State, D>, Self::Error>
Integrate a sync state to a leap state by doing a half step for the conjugate momenta. Read more
Source§fn integrate_leap_sync(
&self,
l: &SimulationStateLeap<State, D>,
delta_t: Real,
) -> Result<State, Self::Error>
fn integrate_leap_sync( &self, l: &SimulationStateLeap<State, D>, delta_t: Real, ) -> Result<State, Self::Error>
Integrate a leap state to a sync state by finishing doing a step for the position and finishing
the half step for the conjugate momenta. Read more
impl Copy for SymplecticEuler
impl Eq for SymplecticEuler
impl StructuralPartialEq for SymplecticEuler
Auto Trait Implementations§
impl Freeze for SymplecticEuler
impl RefUnwindSafe for SymplecticEuler
impl Send for SymplecticEuler
impl Sync for SymplecticEuler
impl Unpin for SymplecticEuler
impl UnwindSafe for SymplecticEuler
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.