BaseStepController
- class cubie.integrators.step_control.base_step_controller.BaseStepController(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], dt: float = None, n: int = 1, **kwargs)[source]
Bases:
CUDAFactoryFactory interface for compiling CUDA step-size controllers.
- __init__(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], dt: float = None, n: int = 1, **kwargs) None[source]
Initialise the step controller.
- Parameters:
precision – Precision used for controller calculations.
dt – Step size or initial step size.
n – Number of state variables.
**kwargs – Additional parameters passed to the config class.
- _ensure_sane_bounds() None[source]
Ensure step bounds satisfy constraints.
Called during __init__ and after update(). Subclasses override to validate bounds and fix constraint violations on non-user-provided parameters.
- _resolve_step_params(dt: float, kwargs: dict) None[source]
Resolve step parameters and track user-provided values.
Subclasses override to implement controller-specific translation and set entries in
self._user_step_paramsfor user-provided values.- Parameters:
dt – Step size, or None if not provided.
kwargs – Mutable dict of keyword arguments. Modified in place.
- abstractmethod build() ControllerCache[source]
Compile and return the CUDA device controller.
- Returns:
Cache containing the compiled controller device function.
- Return type:
ControllerCache
- register_buffers() None[source]
Register controller buffers with the central buffer registry.
Registers the timestep_buffer using size from
local_memory_elementsand location fromcompile_settings.timestep_memory_location.
- update(updates_dict: dict[str, object] | None = None, silent: bool = False, **kwargs: object) set[str][source]
Propagate configuration updates to the compiled controller.
- Parameters:
updates_dict – Dictionary of configuration values to update.
silent – When
Truesuppress warnings for recognised but unused controller parameters.**kwargs – Additional configuration key-value pairs to update.
- Returns:
Names of parameters that were applied successfully.
- Return type:
- Raises:
KeyError – Raised when an update references parameters that are not defined for any controller.