Integrators =========== ``cubie.integrators`` --------------------- .. currentmodule:: cubie.integrators .. toctree:: :hidden: :maxdepth: 2 :titlesonly: single_integrator_run integrator_return_codes The :class:`SingleIntegratorRun` interface is the primary entry point. It creates a loop callable by combining controller, algorithm, and loop submodules as directed by the supplied :class:`IntegratorRunSettings`. The :mod:`cubie.integrators` package coordinates CUDA-based initial value problem integrations. It bundles algorithm factories, controller builders, matrix-free solver helpers, and loop orchestrators that combine CUDA device functions from ODE systems with adaptive or fixed step control. .. toctree:: :maxdepth: 2 :caption: Subpackages :titlesonly: algorithms loops matrix_free_solvers step_control Core API -------- * :doc:`SingleIntegratorRun ` – high-level integration driver. * :doc:`IntegratorReturnCodes ` – enumerates loop exit statuses. Dependencies ------------ - Implicit algorithms obtain Newton--Krylov helpers from :mod:`cubie.integrators.matrix_free_solvers` via ``get_solver_helper_fn`` closures. - Loop factories depend on :mod:`cubie.outputhandling` for compile flags and saving callbacks generated by :class:`cubie.outputhandling.output_functions.OutputFunctions`. - Controllers operate alongside algorithm step objects exposed by :mod:`cubie.integrators.algorithms` to manage adaptive step sizes.