This is the documentation for ARKode, an adaptive step time integration package for stiff, nonstiff and mixed stiff/nonstiff systems of ordinary differential equations (ODEs) using Runge-Kutta (i.e. one-step, multi-stage) methods. The ARKode solver is a component of the SUNDIALS suite of nonlinear and differential/algebraic equation solvers. It is designed to have a similar user experience to the CVODE solver, including user modes to allow adaptive integration to specified output times, return after each internal step and root-finding capabilities, and for calculations in serial, using shared-memory parallelism (via OpenMP, Pthreads, CUDA, Raja) or distributed-memory parallelism (via MPI). The default integration and solver options should apply to most users, though control over nearly all internal parameters and time adaptivity algorithms is enabled through optional interface routines.

ARKode is written in C, with C++ and Fortran interfaces.

Due to its similarities in both function and design with the CVODE package, this documentation is highly similar with the corresponding CVODE user guide [HS2017].

ARKode is developed by Southern Methodist University, with support by the US Department of Energy through the FASTMath SciDAC Institute, under subcontract B598130 from Lawrence Livermore National Laboratory.

Documentation sections:

- Introduction
- Mathematical Considerations
- Code Organization
- Using ARKode for C and C++ Applications
- FARKODE, an Interface Module for FORTRAN Applications
- Vector Data Structures
- Matrix Data Structures
- Linear Solver Data Structures
- ARKode Installation Procedure
- Appendix: ARKode Constants
- Appendix: Butcher tables
- References