Algorithms

cubie.integrators.algorithms

Factories in cubie.integrators.algorithms assemble explicit and implicit step implementations that plug into the CUDA-based integrator loop. Explicit steps wrap direct right-hand-side evaluations, while implicit steps couple user-supplied device callbacks with matrix-free Newton–Krylov helpers to satisfy nonlinear solves. Precision handling is central: every factory propagates the configured precision through compiled device helpers and the shared linear and nonlinear solver stack.

Base infrastructure

  • BaseStepConfig – attrs configuration shared by explicit and implicit steps.

  • BaseAlgorithmStep – base class that wires precision and CUDA compilation helpers.

  • StepCache – container storing compiled kernels and loop scratch buffers.

Explicit steps

Implicit steps

Factory helpers

Dependencies

Implicit steps depend on cubie.integrators.matrix_free_solvers for the linear and Newton–Krylov factories and reuse cubie.CUDAFactory utilities for JIT compilation and caching. All algorithms expect caller supplied device callbacks for time derivatives, operator assembly, and observable evaluation, operating on preallocated device buffers whose precision matches the configured integration precision.