pub enum ODEMethod {
Euler,
RK4,
RK45,
RK23,
Bdf,
DOP853,
Radau,
LSODA,
EnhancedLSODA,
EnhancedBDF,
}Expand description
ODE solver method
Variants§
Euler
Euler method (first-order)
RK4
Fourth-order Runge-Kutta method (fixed step size)
RK45
Dormand-Prince method (variable step size) 5th order method with 4th order error estimate
RK23
Bogacki-Shampine method (variable step size) 3rd order method with 2nd order error estimate
Bdf
Backward Differentiation Formula (BDF) method Implicit method for stiff equations Default is BDF order 2
DOP853
Dormand-Prince method of order 8(5,3) 8th order method with 5th order error estimate High-accuracy explicit Runge-Kutta method
Radau
Implicit Runge-Kutta method of Radau IIA family 5th order method with 3rd order error estimate L-stable implicit method for stiff problems
LSODA
Livermore Solver for Ordinary Differential Equations with Automatic method switching Automatically switches between Adams methods (non-stiff) and BDF (stiff) Efficiently handles problems that change character during integration
EnhancedLSODA
Enhanced LSODA method with improved stiffness detection and method switching Features better Jacobian handling, adaptive order selection, and robust error control Provides detailed diagnostics about method switching decisions
EnhancedBDF
Enhanced BDF method with improved Jacobian handling and error estimation Features intelligent Jacobian strategy selection based on problem size Supports multiple Newton solver variants and provides better convergence Includes specialized handling for banded matrices and adaptive order selection
Trait Implementations§
impl Copy for ODEMethod
impl Eq for ODEMethod
impl StructuralPartialEq for ODEMethod
Auto Trait Implementations§
impl Freeze for ODEMethod
impl RefUnwindSafe for ODEMethod
impl Send for ODEMethod
impl Sync for ODEMethod
impl Unpin for ODEMethod
impl UnwindSafe for ODEMethod
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
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>
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>
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