BaseStepControllerConfig

class cubie.integrators.step_control.base_step_controller.BaseStepControllerConfig(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n_states: int = 1, mass_flags: Iterable | None = None, dt: float | None = None, timestep_memory_location: str = 'local', atol: float | ArrayLike = array([1.e-06]), rtol: float | ArrayLike = array([1.e-06]), *, jit_flags: JITFlags = NOTHING, unroll: UnrollFlags = NOTHING)[source]

Bases: CUDAFactoryConfig, ABC

Configuration interface for step-size controllers.

precision

Precision used for controller calculations.

Type:

type[numpy.float16] | type[numpy.float32] | type[numpy.float64] | numpy.dtype[numpy.float16] | numpy.dtype[numpy.float32] | numpy.dtype[numpy.float64]

n_states

Number of state variables controlled per step.

Type:

int

atol

Absolute tolerance vector. Adaptive controllers scale their error norms with it; every controller carries it so implicit algorithms can derive inner-solver tolerances from it.

Type:

numpy.ndarray

rtol

Relative tolerance vector, carried on the same terms as atol.

Type:

numpy.ndarray

mass_flags

Per-state mass-diagonal flags, True for a differential row; defaults to all True.

atol: ndarray
abstract property dt: float

Return the initial step size used when integration starts.

abstract property dt_max: float

Return the maximum supported step size.

abstract property dt_min: float

Return the minimum supported step size.

abstract property is_adaptive: bool

Return True when the controller adapts its step size.

property mass_flags: Tuple[bool, ...]

Return the per-state mass flags; every row when unset.

n_states: int
rtol: ndarray
timestep_memory_location: str
property tol_length: int

Return the tolerance-array length for tol_converter.