SolvIND
The C++ package SolvIND is a suite of ODE and DAE solvers capable of generating accurate forward and adjoint sensitivity information of the solutions using the principle of internal numerical differentiation. The packages is designed to be a building block for dynamic optimization software and contains various functionality, e.g. the integrators DAESOL-II (Link zu DAESOL), based on BDF methods for stiff ODEs and index-1 DAEs and the integrator family RKFSWT, based on Runge-Kutta methods with continuous extension. All integrators support forward and adjoint sensitivity generation of first and higher order directional sensitivities. A high-efficiency evaluator layer computes function values and derivatives requested by the integrators encompassing optimization software, from the dynamic model as well as from other functions like constraints, objectives, and other user-defined functionals. SolvIND supports user defined derivatives, has built-in ADOL-C support for automatic differentiation and also supports finite differences for derivative generation of the model functions. SolvIND is further extensible by the user via own integrator modules and a flexible plug-in system (e.g. for visualization, problem specific tailored linear algebra, etc.).
[1] J. Albersmeyer, H. G. Bock: Sensitivity generation in an adaptive BDF-method, in Proc. of Conference on High Performance Scientific Computing (HPSC), Hanoi, Vietnam, 2006. Online: https://link.springer.com/chapter/10.1007/978-3-540-79409-7_2