ODE systems

cubie.odesystems

The create_ODE_system() helper is the main entry point. It consumes symbolic sympy equations and creates SymbolicODE instances that inherit CUDA compilation behaviour from cubie.CUDAFactory. BaseODE sets the abstract requirements, and SymbolicODE is currently its concrete implementation. Base classes and data containers expose the precision-aware metadata required by integrator factories.

Subpackages

Core API

Data containers and caches

  • ODEData – captures compile-time metadata such as precision and state sizes.

  • Variables – the states, parameters and observables a system declares, with their default values, and the parameters a batch compiles into the code as numbers.

  • SystemLayout – the variables in each solver argument (initial values, parameters) and the ones which get compiled into the code as numbers.

  • SystemSizes – records shape information for state and observable vectors.

  • ODECache – caches compiled device functions and solver helpers.

Dependencies

  • SymbolicODE subclasses cubie.CUDAFactory so integrator loops can request compiled CUDA device functions directly.

  • Precision handling relies on cubie._utils helpers.

  • Generated kernels are consumed by cubie.integrators factories during loop construction.