Evaluating derivatives: principles and techniques of algorithmic differentiation
Evaluating derivatives: principles and techniques of algorithmic differentiation
Optimizing FORTRAN Programs
Efficient operator overloading AD for solving nonlinear PDEs
Automatic differentiation of algorithms
Making Automatic Differentiation Truly Automatic: Coupling PETSc with ADIC
ICCS '02 Proceedings of the International Conference on Computational Science-Part II
Mathematical modelling of syneresis of cheese curd
Mathematics and Computers in Simulation - Special issue: Selected papers of the IMACS/IFAC fourth international symposium on mathematical modelling and simulation in agricultural and bio-industries
Mathematical modelling of syneresis of cheese curd
Mathematics and Computers in Simulation - Special issue: Selected papers of the IMACS/IFAC fourth international symposium on mathematical modelling and simulation in agricultural and bio-industries
Hi-index | 0.00 |
FastDer++ is a C++ class library for automatic differentiation designed for use in situations where a set of dependent variables and their gradients are to be evaluated in a large number of points. Typical settings constitute non-linear systems of partial differential equations (PDEs) and ODEs. Although automatic differentiation is traditionally considered to slow for implementation in non-linear PDE and ODE solvers, it has recently been demonstrated [E. Tijskens, H. Ramon, J. De Baerdemaeker, Efficient operator overloading AD for solving non-linear PDEs, in: G. Corliss, C. Faure, A. Griewank, L. Hascoët, U. Nauman (Eds.), Automatic Differentiation of Algorithms--From Simulation to Optimisation, Springer, Verlag, 2002; Num. Algorithms 30 (2002) 259] that thanks to an extension called vectorised AD and careful design handcoded derivatives, finite differencing and state of the art AD tools can be outperformed in common situations. In addition, the user gains the advantage of directly dealing with the non-linear equations rather than with its linearised counterpart. This paper describes the FastDer++ library and its underlying principles in detail, both from the point of implementation and of user programming.