pub struct SplittingIntegrator { /* private fields */ }Expand description
Splitting method for separable Hamiltonians
Implementations§
Source§impl SplittingIntegrator
impl SplittingIntegrator
Sourcepub fn strang(
kinetic: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>,
potential: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>,
dim: usize,
) -> Self
pub fn strang( kinetic: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>, potential: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>, dim: usize, ) -> Self
Create a new splitting integrator with Strang splitting
Sourcepub fn yoshida4(
kinetic: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>,
potential: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>,
dim: usize,
) -> Self
pub fn yoshida4( kinetic: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>, potential: Box<dyn Fn(&ArrayView1<'_, f64>) -> f64>, dim: usize, ) -> Self
Create with Yoshida 4th order coefficients
Sourcepub fn step(
&self,
q: &ArrayView1<'_, f64>,
p: &ArrayView1<'_, f64>,
dt: f64,
) -> IntegrateResult<(Array1<f64>, Array1<f64>)>
pub fn step( &self, q: &ArrayView1<'_, f64>, p: &ArrayView1<'_, f64>, dt: f64, ) -> IntegrateResult<(Array1<f64>, Array1<f64>)>
Perform one splitting step
Auto Trait Implementations§
impl Freeze for SplittingIntegrator
impl !RefUnwindSafe for SplittingIntegrator
impl !Send for SplittingIntegrator
impl !Sync for SplittingIntegrator
impl Unpin for SplittingIntegrator
impl !UnwindSafe for SplittingIntegrator
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