skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Automatic Differentiation Package

Abstract

Sacado is an automatic differentiation package for C++ codes using operator overloading and C++ templating. Sacado provide forward, reverse, and Taylor polynomial automatic differentiation classes and utilities for incorporating these classes into C++ codes. Users can compute derivatives of computations arising in engineering and scientific applications, including nonlinear equation solving, time integration, sensitivity analysis, stability analysis, optimization and uncertainity quantification.

Authors:
; ;
Publication Date:
Research Org.:
Sandia National Laboratories
Sponsoring Org.:
USDOE
OSTI Identifier:
1248624
Report Number(s):
SACADO; 002044MLTPL00
DOE Contract Number:
DE-AC04-04AL85000
Resource Type:
Software
Software Revision:
00
Software Package Number:
002044
Software Package Contents:
OPEN SOURCE SOFTWARE PACKAGE AVAILABLE FROM SANDIA NATIONAL LABORATORY AT: http://software.sandia.gov/trilinos/packages/sacado
Software CPU:
MLTPL
Open Source:
Yes
Source Code Available:
Yes
Related Software:
Fad and ADOL-C
Country of Publication:
United States

Citation Formats

Gay, David M., Phipps, Eric, and Bratlett, Roscoe. Automatic Differentiation Package. Computer software. https://www.osti.gov//servlets/purl/1248624. Vers. 00. USDOE. 1 Mar. 2007. Web.
Gay, David M., Phipps, Eric, & Bratlett, Roscoe. (2007, March 1). Automatic Differentiation Package (Version 00) [Computer software]. https://www.osti.gov//servlets/purl/1248624.
Gay, David M., Phipps, Eric, and Bratlett, Roscoe. Automatic Differentiation Package. Computer software. Version 00. March 1, 2007. https://www.osti.gov//servlets/purl/1248624.
@misc{osti_1248624,
title = {Automatic Differentiation Package, Version 00},
author = {Gay, David M. and Phipps, Eric and Bratlett, Roscoe},
abstractNote = {Sacado is an automatic differentiation package for C++ codes using operator overloading and C++ templating. Sacado provide forward, reverse, and Taylor polynomial automatic differentiation classes and utilities for incorporating these classes into C++ codes. Users can compute derivatives of computations arising in engineering and scientific applications, including nonlinear equation solving, time integration, sensitivity analysis, stability analysis, optimization and uncertainity quantification.},
url = {https://www.osti.gov//servlets/purl/1248624},
doi = {},
year = {Thu Mar 01 00:00:00 EST 2007},
month = {Thu Mar 01 00:00:00 EST 2007},
note =
}

Software:
To order this software, request consultation services, or receive further information, please fill out the following request.

Save / Share:
  • SnadiOpt is a package that supports the use of the automatic differentiation package ADIFOR with the optimization package Snopt. Snopt is a general-purpose system for solving optimization problems with many variables and constraints. It minimizes a linear or nonlinear function subject to bounds on the variables and sparse linear or nonlinear constraints. It is suitable for large-scale linear and quadratic programming and for linearly constrained optimization, as well as for general nonlinear programs. The method used by Snopt requires the first derivatives of the objective and constraint functions to be available. The SnadiOpt package allows users to avoid the time-consumingmore » and error-prone process of evaluating and coding these derivatives. Given Fortran code for evaluating only the values of the objective and constraints, SnadiOpt automatically generates the code for evaluating the derivatives and builds the relevant Snopt input files and sparse data structures.« less
  • The C++ package ADOL-C described here facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run-time and randomly accessed memory of the given function evaluation program. Derivative matrices are obtained by columns or rows. For solution curves defined by ordinary differential equations, special routines are provided that evaluatemore » the Taylor coefficient vectors and their Jacobians with respect to the current state vector. The derivative calculations involve a possibly substantial (but always predictable) amount of data that are accessed strictly sequentially and are therefore automatically paged out to external files.« less
  • Automatic differentiation (AD) tools can generate accurate and efficient derivative code for computer programs of arbitrary length. In some cases, however, the developer of the code to be differentiated may be required to provide additional information to an AD tool to ensure the desired solution. We illustrate these issues with nondifferentiable language intrinsics such as max() in the context of computing the Euclidean norm and numerical integrators. In both cases, very little additional information is required to ensure that AD computes the ``do-what-I-mean`` derivatives. In addition, the provision of such information makes it easy to derive ``derivative- enhanced`` versions ofmore » these codes.« less
  • The authors discuss the role of automatic differentiation tools in optimization software. We emphasize issues that are important to large-scale optimization and that have proved useful in the installation of nonlinear solvers in the NEOS Server. Our discussion centers on the computation of the gradient and Hessian matrix for partially separable functions and shows that the gradient and Hessian matrix can be computed with guaranteed bounds in time and memory requirements.
  • The authors give a gentle introduction to using various software tools for Automatic Differentiation (AD). Ready-to-use examples are discussed and links to further information are presented. The target audience includes all those who are looking for a straight-forward way to get started using the available AD technology. The document is supposed to be dynamic in the sense that its content will be kept up-to-date as the AD software covered is evolving.

To initiate an order for this software, request consultation services, or receive further information, fill out the request form below. You may also reach us by email at: .

OSTI staff will begin to process an order for scientific and technical software once the payment and signed site license agreement are received. If the forms are not in order, OSTI will contact you. No further action will be taken until all required information and/or payment is received. Orders are usually processed within three to five business days.

Software Request

(required)
(required)
(required)
(required)
(required)
(required)
(required)
(required)