Owl_ode.Ode
val step : (module Owl_ode_base.Types.Solver with type f = 'a and type solve_output = 'b and type state = 'c and type step_output = 'd) -> 'a -> dt:float
-> 'c -> float -> 'd
step (module Solver) f dt y0 t0 ()
takes one step with the evolution function f(y,t) starting at time t0 with a step size of dt and returns output of type step_output.
val odeint : (module Owl_ode_base.Types.Solver with type f = 'a and type solve_output = 'b and type state = 'c and type step_output = 'd) -> 'a -> 'c -> Owl_ode_base.Types.tspec -> unit -> 'b
odeint (module Solver) f y0 timespec ()
numerically integrates an initial value problem for a system of ODEs given an initial value:
∂ₜ y = f(y, t)
y(t₀) = y₀
Here t is a one-dimensional independent variable (time), y(t) is an n-dimensional vector-valued function (state), and the n-dimensional vector-valued function f(y, t) determines the differential equations.
The goal is to find y(t) approximately satisfying the differential equations, given an initial value y(t₀)=y₀. The time t₀ is passed as part of the timespec, that includes also the final integration time and a time step. Refer to Owl_ode_base.Types.tspec
for further information.
The solver has to be passed as a first-class module and have a common type, Owl_ode_base.Types.Solver
. This is useful to write new custom solvers or extend and customise the provided ones.
Refer to the documentation of the Owl_ode_base.Types.Solver
type for further information.