DENSERKS is a Fortran 90 solver suite designed for performing sensitivity analysis of models whose evolution can be described by ordinary differential equations (ODEs).
A salient feature of DENSERKS is its support for both forward and adjoint sensitivity analyses, with built-in integrators for both first and second order continuous adjoint models. The software implements explicit Runge-Kutta methods with adaptive timestepping and high-order dense output schemes for the forward and the tangent linear model trajectory interpolation. Implementations of six Runge-Kutta methods are provided, with orders of accuracy ranging from two to eight. This makes DENSERKS suitable for a wide range of practical applications. The use of dense output, a novel approach in adjoint sensitivity analysis solvers, allows for a high-order cost-effective interpolation. This is a necessary feature when solving adjoints of nonlinear systems using highly accurate Runge-Kutta methods (order five and above). To minimize memory requirements and make long-time integrations computationally efficient, DENSERKS implements a two-level checkpointing mechanism used for adjoint model integrations.
The DENSERKS package contains example programs that illustrate the use of each of the forward, tangent linear and adjoint model integrators.
| Source Code for DENSERKS: tar.gz or zip | |
| DENSERKS Technical Report (paper submitted to ACM Transactions on Mathematical Software): pdf |
DENSERKS was developed with support from the National Science Foundation through the award NSF CCF-0635194.