pub struct DdeOptions<S: Scalar> {
pub rtol: S,
pub atol: S,
pub h0: Option<S>,
pub h_max: S,
pub h_min: S,
pub max_steps: usize,
pub t_eval: Option<Vec<S>>,
pub dense_output: bool,
pub track_discontinuities: bool,
pub discontinuity_order: usize,
}Expand description
Options for DDE solvers.
Divergence from numra_ode::SolverOptions (per Foundation Spec §2.5):
the field set most closely mirrors SolverOptions (rtol, atol, h0,
h_max, h_min, max_steps, t_eval, dense_output) but diverges on
two DDE-specific concerns: (1) dense_output defaults to true here
because the Method-of-Steps solver evaluates y(t − τ) at delay-shifted
times that don’t generally land on integration grid points; (2)
track_discontinuities + discontinuity_order encode the inherent DDE
discontinuity-propagation structure (initial-history non-smoothness
propagates forward at integer multiples of the delays), which has no
ODE analog. See docs/architecture/foundation-specification.md §2.5.
Fields§
§rtol: SRelative tolerance
atol: SAbsolute tolerance
h0: Option<S>Initial step size (None = auto)
h_max: SMaximum step size
h_min: SMinimum step size
max_steps: usizeMaximum number of steps
t_eval: Option<Vec<S>>Save solution at these times (None = save all steps)
dense_output: boolEnable dense output (required for accurate history interpolation)
track_discontinuities: boolTrack discontinuities in the solution
discontinuity_order: usizeTrack discontinuities up to this derivative order
Implementations§
Source§impl<S: Scalar> DdeOptions<S>
impl<S: Scalar> DdeOptions<S>
pub fn rtol(self, rtol: S) -> Self
pub fn atol(self, atol: S) -> Self
pub fn h0(self, h0: S) -> Self
pub fn h_max(self, h_max: S) -> Self
pub fn max_steps(self, max_steps: usize) -> Self
Sourcepub fn track_discontinuities(self, track: bool) -> Self
pub fn track_discontinuities(self, track: bool) -> Self
Enable discontinuity tracking.
When enabled, the solver will detect and step exactly to discontinuity points that propagate from t0 at each delay interval.
Sourcepub fn discontinuity_order(self, order: usize) -> Self
pub fn discontinuity_order(self, order: usize) -> Self
Set the discontinuity order to track.
Discontinuities propagate: the initial discontinuity at t0 propagates to t0 + tau for each delay tau. Setting order=3 tracks up to 3 levels of propagation (e.g., t0, t0+tau, t0+2tau, t0+3tau for single delay).
Trait Implementations§
Source§impl<S: Clone + Scalar> Clone for DdeOptions<S>
impl<S: Clone + Scalar> Clone for DdeOptions<S>
Source§fn clone(&self) -> DdeOptions<S>
fn clone(&self) -> DdeOptions<S>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more