ExplicitEulerStep

Defaults

algorithm="euler" performs a single-stage, order-1 forward-Euler update under fixed-step control. Forward Euler carries no embedded error estimate, so adaptive control is unavailable, and as an explicit method it needs no nonlinear or linear solver. See Default settings for the defaults shared across algorithms.

class cubie.integrators.ExplicitEulerStep(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n_states: int, dxdt_fn: Callable | None = None, observables_fn: Callable | None = None, drivers_fn: Callable | None = None, get_solver_helper_fn: Callable | None = None, **kwargs)[source]

Bases: ODEExplicitStep

Forward Euler integration step for explicit ODE updates.

__init__(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n_states: int, dxdt_fn: Callable | None = None, observables_fn: Callable | None = None, drivers_fn: Callable | None = None, get_solver_helper_fn: Callable | None = None, **kwargs) None[source]

Initialise the explicit Euler step configuration.

Parameters:
  • precision – Precision applied to device buffers.

  • n_states – Number of state entries advanced per step.

  • dxdt_fn – Device function for evaluating f(t, y) right-hand side.

  • observables_fn – Device function computing system observables.

  • drivers_fn – Optional device function evaluating drivers at arbitrary times.

  • get_solver_helper_fn – Present for interface parity with implicit steps and ignored here.

  • **kwargs – Optional parameters passed to config classes. See ExplicitStepConfig for available parameters. None values are ignored.

build_step(dxdt_fn: Callable, observables_fn: Callable, drivers_fn: Callable | None, numba_precision: type, n: int, n_drivers: int) StepCache[source]

Build the device function for an explicit Euler step.

Parameters:
  • dxdt_fn – Device function for evaluating f(t, y).

  • observables_fn – Device function for computing observables.

  • drivers_fn – Optional device function for evaluating drivers at time t.

  • numba_precision – Numba type for device buffers.

  • n – State vector dimension.

  • n_drivers – Number of driver signals.

Returns:

Compiled step function.

Return type:

StepCache

classmethod family_defaults(tableau=None) AlgorithmDefaults[source]

Return the explicit Euler defaults.

has_error_estimate = False
property is_multistage: bool

Return False because explicit Euler is a single-stage method.

property order: int

Return the classical order of the explicit Euler method.

property threads_per_step: int

Return the number of threads used per step.