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:
CUDAFactoryConfigBundle numerical values and metadata for an ODE system.
- Parameters:
constants (cubie.odesystems.SystemValues.SystemValues | None) – System constants that do not change during simulation.
parameters (cubie.odesystems.SystemValues.SystemValues | None) – Tunable system parameters that may vary between simulations.
initial_states (cubie.odesystems.SystemValues.SystemValues) – Initial state values for the ODE system.
observables (cubie.odesystems.SystemValues.SystemValues) – Observable variables to track during simulation.
precision (type[numpy.float16] | type[numpy.float32] | type[numpy.float64] | numpy.dtype[numpy.float16] | numpy.dtype[numpy.float32] | numpy.dtype[numpy.float64]) – Precision factory used for numerical calculations. Defaults to
numpy.float32.num_drivers (int) – Number of driver or forcing functions. Defaults to
1.
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
SolverHelperRequestvalues, so the system’s identity never depends on helper request order.- 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
ODEDatafromBaseODEinitialization 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_valuesomits entries.default_parameters – Default parameter values if
parametersomits entries.default_constants – Default constant values if
constantsomits entries.default_observable_names – Default observable names if
observablesomits 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:
- property initial_state_values: Dict[str, float]
Initial state values as plain floats keyed by name.
- initial_states: SystemValues
- observables: SystemValues
- 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
precisionre-materialises every embeddedSystemValuescontainer at the new precision on the replacement snapshot, so packed value arrays always match the configured precision.