pub struct BackwardDifferentiationFormula<E, T: Real, Y: State<T>> {}Expand description
Adaptive variable-order Backward Differentiation Formula solver.
Uses Backward Differentiation Formula orders 1-5 with automatic order and step size selection. Newton iteration resolves the implicit Backward Differentiation Formula equations. Dense output via polynomial interpolation is supported.
The solver starts at order 1 and considers increasing the order after enough successful steps. On step rejection, the order is decreased.
Fields§
§h0: T§rtol: Tolerance<T>§atol: Tolerance<T>§h_max: T§h_min: T§max_steps: usize§safety_factor: T§min_scale: T§max_scale: T§filter: fn(T) -> T§newton_tol: T§max_newton_iter: usize§max_order: usizeImplementations§
Source§impl<E, T: Real, Y: State<T>> BackwardDifferentiationFormula<E, T, Y>
impl<E, T: Real, Y: State<T>> BackwardDifferentiationFormula<E, T, Y>
pub fn adaptive() -> Self
pub fn rtol<V: Into<Tolerance<T>>>(self, rtol: V) -> Self
pub fn atol<V: Into<Tolerance<T>>>(self, atol: V) -> Self
pub fn h0(self, h0: T) -> Self
pub fn h_min(self, h_min: T) -> Self
pub fn h_max(self, h_max: T) -> Self
pub fn max_steps(self, max_steps: usize) -> Self
pub fn safety_factor(self, safety_factor: T) -> Self
pub fn newton_tol(self, newton_tol: T) -> Self
pub fn max_newton_iter(self, max_newton_iter: usize) -> Self
pub fn max_order(self, max_order: usize) -> Self
pub fn filter(self, filter: fn(T) -> T) -> Self
pub fn order(&self) -> usize
Trait Implementations§
Source§impl<T: Real, Y: State<T>> Interpolation<T, Y> for BackwardDifferentiationFormula<Ordinary, T, Y>
impl<T: Real, Y: State<T>> Interpolation<T, Y> for BackwardDifferentiationFormula<Ordinary, T, Y>
Source§impl<T: Real, Y: State<T>> OrdinaryNumericalMethod<T, Y> for BackwardDifferentiationFormula<Ordinary, T, Y>
impl<T: Real, Y: State<T>> OrdinaryNumericalMethod<T, Y> for BackwardDifferentiationFormula<Ordinary, T, Y>
Source§fn init<F>(
&mut self,
ode: &F,
t0: T,
tf: T,
y0: &Y,
) -> Result<Evals, Error<T, Y>>
fn init<F>( &mut self, ode: &F, t0: T, tf: T, y0: &Y, ) -> Result<Evals, Error<T, Y>>
Initialize the solver before integration Read more
Source§fn step<F>(&mut self, ode: &F) -> Result<Evals, Error<T, Y>>
fn step<F>(&mut self, ode: &F) -> Result<Evals, Error<T, Y>>
Advance the solution by one step Read more
Source§fn set_status(&mut self, status: Status<T, Y>)
fn set_status(&mut self, status: Status<T, Y>)
Set solver status
Auto Trait Implementations§
impl<E, T, Y> Freeze for BackwardDifferentiationFormula<E, T, Y>
impl<E, T, Y> RefUnwindSafe for BackwardDifferentiationFormula<E, T, Y>
impl<E, T, Y> Send for BackwardDifferentiationFormula<E, T, Y>
impl<E, T, Y> Sync for BackwardDifferentiationFormula<E, T, Y>
impl<E, T, Y> Unpin for BackwardDifferentiationFormula<E, T, Y>
impl<E, T, Y> UnsafeUnpin for BackwardDifferentiationFormula<E, T, Y>where
T: UnsafeUnpin,
Y: UnsafeUnpin,
impl<E, T, Y> UnwindSafe for BackwardDifferentiationFormula<E, T, Y>
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<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.