pub struct ImplicitEuler {
pub max_iter: usize,
pub tol: f64,
pub fd_eps: f64,
}Expand description
Implicit (backward) Euler integrator for stiff ODEs.
Solves the nonlinear system y_{n+1} - y_n - h * f(t_{n+1}, y_{n+1}) = 0
using fixed-point (Picard) iteration followed by Newton correction steps.
Fields§
§max_iter: usizeMaximum Newton iterations per step.
tol: f64Convergence tolerance for Newton iteration.
fd_eps: f64Finite-difference step size for the Jacobian.
Implementations§
Source§impl ImplicitEuler
impl ImplicitEuler
Sourcepub fn new(max_iter: usize, tol: f64, fd_eps: f64) -> Self
pub fn new(max_iter: usize, tol: f64, fd_eps: f64) -> Self
Construct with specified parameters.
Sourcepub fn default_params() -> Self
pub fn default_params() -> Self
Construct with default parameters.
Sourcepub fn step<F>(&self, s: &OdeState, h: f64, f: &F) -> OdeState
pub fn step<F>(&self, s: &OdeState, h: f64, f: &F) -> OdeState
Perform one backward Euler step from state s with step h.
Uses simple fixed-point / Picard iteration (no Jacobian required).
For strongly stiff systems prefer Newton iteration via ImplicitEuler::step_newton.
Auto Trait Implementations§
impl Freeze for ImplicitEuler
impl RefUnwindSafe for ImplicitEuler
impl Send for ImplicitEuler
impl Sync for ImplicitEuler
impl Unpin for ImplicitEuler
impl UnsafeUnpin for ImplicitEuler
impl UnwindSafe for ImplicitEuler
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.