ODEData

class cubie.odesystems.ODEData(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], constants: Any, parameters: Any, initial_states: Any, observables: Any, num_drivers: int = 1, operation_ordering: str = NOTHING, mass: Any = None, *, jit_flags: JITFlags = NOTHING, unroll: UnrollFlags = NOTHING)[source]

Bases: CUDAFactoryConfig

Bundle numerical values and metadata for an ODE system.

Parameters:

Notes

This container holds only ODE-system state. Solver-helper request parameters (operator_beta, operator_gamma, preconditioner order, stage tableaus) belong to the requesting algorithm’s compile settings and reach the system as immutable SolverHelperRequest values, so the system’s identity never depends on helper request order.

property constant_values: Dict[str, float]

Constant values as plain floats keyed by name.

constants: SystemValues | None
classmethod from_BaseODE_initargs(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], initial_values: Dict[str, float] | None = None, parameters: Dict[str, float] | None = None, constants: Dict[str, float] | None = None, observables: Dict[str, float] | None = None, default_initial_values: Dict[str, float] | None = None, default_parameters: Dict[str, float] | None = None, default_constants: Dict[str, float] | None = None, default_observable_names: Dict[str, float] | None = None, num_drivers: int = 1, operation_ordering: str = 'liveness_auto') ODEData[source]

Create ODEData from BaseODE initialization arguments.

Parameters:
  • initial_values – Initial values for state variables.

  • parameters – Parameter values for the system.

  • constants – Constants that are not expected to change during simulation.

  • observables – Auxiliary variables to track during simulation.

  • default_initial_values – Default initial values if initial_values omits entries.

  • default_parameters – Default parameter values if parameters omits entries.

  • default_constants – Default constant values if constants omits entries.

  • default_observable_names – Default observable names if observables omits entries.

  • precision – Precision factory used for calculations.

  • num_drivers – Number of driver or forcing functions. Defaults to 1.

  • operation_ordering – Generated-operation ordering policy: stable "kahn", fixed "greedy" or "dfs", or thresholded "liveness_auto" selection.

Returns:

Initialised data container for CUDA compilation.

Return type:

ODEData

property initial_state_values: Dict[str, float]

Initial state values as plain floats keyed by name.

initial_states: SystemValues
property mass: Any

Return the cached solver mass matrix.

property num_constants: int

Number of constants.

num_drivers: int
property num_observables: int

Number of observable variables.

property num_parameters: int

Number of parameters.

property num_states: int

Number of state variables.

observables: SystemValues
operation_ordering: str
property parameter_values: Dict[str, float]

Parameter values as plain floats keyed by name.

parameters: SystemValues | None
property sizes: SystemSizes

System component sizes grouped for CUDA kernels.

update(updates_dict: dict = None, **kwargs) Tuple[ODEData, Set[str], Set[str]][source]

Derive a replacement snapshot, propagating precision changes.

A changed precision re-materialises every embedded SystemValues container at the new precision on the replacement snapshot, so packed value arrays always match the configured precision.