Skip to main content

DdeSystem

Trait DdeSystem 

Source
pub trait DdeSystem<S: Scalar> {
    // Required methods
    fn dim(&self) -> usize;
    fn delays(&self) -> Vec<S>;
    fn rhs(&self, t: S, y: &[S], y_delayed: &[&[S]], dydt: &mut [S]);

    // Provided methods
    fn delays_at(&self, _t: S, _y: &[S]) -> Vec<S> { ... }
    fn n_delays(&self) -> usize { ... }
    fn has_state_dependent_delays(&self) -> bool { ... }
}
Expand description

Trait for delay differential equation systems.

Defines a DDE of the form:

y'(t) = f(t, y(t), y(t - τ₁), y(t - τ₂), ...)

Required Methods§

Source

fn dim(&self) -> usize

Dimension of the state space.

Source

fn delays(&self) -> Vec<S>

Get the delays τᵢ.

For constant delays, this returns a fixed vector. For state-dependent delays, implement delays_at instead.

Source

fn rhs(&self, t: S, y: &[S], y_delayed: &[&[S]], dydt: &mut [S])

Evaluate the right-hand side f(t, y(t), y(t-τ₁), …).

§Arguments
  • t - Current time
  • y - Current state y(t)
  • y_delayed - Delayed states: y_delayed[i] = y(t - τᵢ)
  • dydt - Output buffer for y’(t)

Provided Methods§

Source

fn delays_at(&self, _t: S, _y: &[S]) -> Vec<S>

Get delays at a specific state (for state-dependent delays).

Default implementation returns constant delays.

Source

fn n_delays(&self) -> usize

Number of delays.

Source

fn has_state_dependent_delays(&self) -> bool

Whether delays are state-dependent.

Implementors§