Skip to main content

IdeSystem

Trait IdeSystem 

Source
pub trait IdeSystem<S: Scalar> {
    // Required methods
    fn dim(&self) -> usize;
    fn rhs(&self, t: S, y: &[S], f: &mut [S]);
    fn kernel(&self, t: S, s: S, y_s: &[S], k: &mut [S]);

    // Provided method
    fn is_convolution_kernel(&self) -> bool { ... }
}
Expand description

Trait for integro-differential equation systems.

Defines a Volterra IDE of the form:

y'(t) = f(t, y) + ∫₀ᵗ K(t, s, y(s)) ds,  y(0) = y₀

Required Methods§

Source

fn dim(&self) -> usize

Dimension of the state space.

Source

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

Evaluate the local right-hand side f(t, y).

This is the non-integral part of the equation.

Source

fn kernel(&self, t: S, s: S, y_s: &[S], k: &mut [S])

Evaluate the memory kernel K(t, s, y(s)).

§Arguments
  • t - Current time
  • s - Integration variable (past time)
  • y_s - Solution at time s
  • k - Output buffer for kernel values

Provided Methods§

Source

fn is_convolution_kernel(&self) -> bool

Whether the kernel depends only on (t-s), not t and s separately.

Convolution kernels K(t-s) can be computed more efficiently.

Implementors§