January 21st, 10:45 (sharp), Aula MS1, DICAr, Via Ferrata, 3 – Pavia
Speaker: Dott. Andrea Vigliotti, Innovative Materials Laboratory, Italian Aerospace Research Centre, Capua (Italy)
Automatic Differentiation (AD) is an ensemble of techniques that allows for the numerical evaluation of the derivatives of a function, expressed in a computer programming language, with the same accuracy of the function itself. AD techniques rely on the assumption that mathematical expressions are always decomposed into in a sequence of elementary sub-expressions by computers. Therefore, if the analytical derivatives of the elementary operators and functions are known, it is possible to evaluate the derivatives of complex expressions, with respect to the given independent variables, by operating on the partial results. As a result, AD differs from finite differences, because it does not approximate the continuous derivatives with discrete differences, thus it does not suffer from truncation error. Also, in comparison with symbolic differentiation, AD does not suffer from expression swelling, due to the limitations of the simplification algorithms, which induces both on memory and CPU costs.
This seminar will focus on forward automatic differentiation, a flavor of AD that can be easily implemented in the programming languages that allow user defined data type and the overloading of existing operators and functions to work with the user introduced types. Together with the theoretical basis of AD, a specific implementation in the Julia programming language will be presented, along with the application of AD techniques to the solution of a selection of solid mechanics problems.