Efficient High-Fidelity Analysis of Composite Materials and Structures

A new approach achieving the best compromise between accuracy and efficiency
Home
About Us
VABS
VAPAS
VAMUCH
DNAD
GEBT
Publications
What Is New
FAQ
Contact Us
 
 
DNAD
 
A Simple Automatic Differentiation Tool Using Dual Numbers

Target Application
 
  1.  Automatically differentiate analysis codes
  2.  Sensitivity calculation with respect to multiple design variables 

 

Introduction

 

 

Dual Number Automatic Differentiation (DNAD) is a simple, general-purpose tool to carry out automatic differentiation of analysis codes including those legacy codes written in F77. Although only implementation using Fortran 90/95 was carried out, it should be simple to translate it to other computer languages such as  c/c++.

 

Currently, DNAD is a Fortran 90/95 module developed using the arithmetic of dual numbers and the operator overloading feature of Fortran 90/95. Very minimum changes of  the source codes are needed to enable sensitivity calculation of existing Fortran codes. Code differentiated using DNAD can exactly compute derivatives of the outputs with respect to multiple design variables. DNAD has been shown to be a better alterative than using finite differ-ence or complex-step approximation for computing derivatives 

(sensitivities). It has been used to automatically differentiate VABS and GEBT in addition to well-known packages such as BLAS, LAPACK, ARPACK and MA28.  It is an ideal way to compute sensitivities for a code you don’t know much about it. More details about DNAD including the source codes can be found from the following links. If you have successful story to share with us, you are welcome to either send me an email or post in my Google group: HiFi-Comp.

 
DNAD Documentation and Source Codes
 

 

References for DNAD