Skip to content

Systems

Systems

TSDynamics ships 149 built-in systems across three families:

Family Base class Count Time Engine
Continuous ContinuousSystem 118 continuous JiTCODE (compiled C)
Delay DelaySystem 5 continuous, with memory JiTCDDE (compiled C)
Discrete DiscreteMap 26 discrete Numba (JIT)

Every built-in is importable from the top level:

import tsdynamics as ts

ts.Lorenz()         # continuous
ts.MackeyGlass()    # delay
ts.Henon()          # discrete

or discoverable programmatically through the registry:

from tsdynamics import registry

registry.families()                          # {'ode': 118, 'dde': 5, 'map': 26}
[e.name for e in registry.all_systems(family="dde")]
# ['MackeyGlass', 'IkedaDelay', 'SprottDelay', 'ScrollDelay', 'PiecewiseCircuit']

How the pages below are built

The per-system pages under each family section are generated from the code at build time — there are no hand-written equation pages to drift out of sync. For each registered system, the generator renders:

  • the governing equations, derived from the actual symbolic _equations (or _step) definition that the integrator compiles,
  • the default parameters, dimension, and named variables,
  • a phase-portrait or orbit figure integrated at build time,
  • the literature reference and known Lyapunov values, when the class declares them.

Adding a system = writing the class

There is no separate documentation step. Subclass the right base class (see the mental model), and the new class auto-registers; its documentation page, registry entry, and bulk test coverage all follow from the class definition itself. The full checklist lives in Contributing.