Using Automatic Differentiation to Implement a Family of Material Models
Other
Overview
Overview
abstract
Virtlab is a virtual material testing laboratory that works with a variety of material models. These materials specify functions as part of their definition, some of which must be differentiated for use in the simulator. Virtlab can be extended with new models by the user, and as a result all functions needed will not be known at development time. To prevent the user from calculating large error-prone expressions by hand, general purpose methods for calculating these derivatives must be considered. Previously, Maple's symbolic computation and code generation facilities were used for this task. However, this creates a dependency on a commercial software package and an associated maintenance challenge if the Maple interface should be modified in the future. The goal of the current project is to use FADBAD++, an automatic differentiation package, for the same task and to compare the two methods. The refactored code proved to be faster in some cases, and slower in others. Enough changes were made to the underlying code that the particular reasons for this are unknown, and a more detailed analysis is needed to determine the direction of future development.