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.

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 ARKStep for C and C++ Applications
- Using ERKStep for C and C++ Applications
- Using MRIStep for C and C++ Applications
- Using ARKode for Fortran Applications
- Butcher Table Data Structure
- ARKODE Features for GPU Accelerated Computing
- Vector Data Structures
- Matrix Data Structures
- Description of the SUNLinearSolver module
- Description of the SUNNonlinearSolver Module
- Tools for Memory Management
- ARKode Installation Procedure
- Appendix: ARKode Constants
- Appendix: Butcher tables
- Appendix: SUNDIALS Release History
- References