|
[1]
|
Christian H. Bischof, H. Martin Bücker, Arno Rasch, Emil Slusanschi, and
Bruno Lang.
Automatic differentiation of the general-purpose computational fluid
dynamics package FLUENT.
ASME J. Fluids Engrg., 129(5):652--658, May 2007.
[ DOI ]
Derivatives are a crucial ingredient to a broad
variety of computational techniques in science and
engineering. While numerical approaches for evaluating
derivatives suffer from truncation error, automatic
differentiation is accurate up to machine precision.
The term automatic differentiation comprises a set of
techniques for mechanically transforming a given
computer program to another one capable of evaluating
derivatives. A common misconception about automatic
differentiation is that this technique only works on
local pieces of fairly simple code. Here, it is shown
that automatic differentiation is not only applicable
to small academic codes, but scales to advanced
industrial software packages. In particular, the
general-purpose computational fluid dynamics software
package FLUENT is transformed by automatic
differentiation.
|
|
[2]
|
C. H. Bischof, H. M. Bücker, B. Lang, A. Rasch, and J. W. Risch.
Extending the functionality of the general-purpose finite element
package SEPRAN by automatic differentiation.
Int. J. Numer. Meth. Engng., 58(14):2225--2238, December
2003.
From an abstract point of view, a numerical
simulation implements a mathematical function that
produces some output from some given input.
Derivatives (or sensitivities) of the function's
output with respect to its input can be
obtained---free from truncation error---by using a
technique called automatic differentiation. Given a
computer code in a high-level programming language
like Fortran, C, or, C++, automatic differentiation
generates another code capable of computing not only
the original function but also its derivatives. Thus,
the application of automatic differentiation
significantly extends the functionality of a
simulation package. For instance, automatic
differentiation enables, in a completely mechanical
fashion, the usage of derivative-based optimization
algorithms where the evaluation of the objective
function comprises some given large-scale engineering
simulation. In this note, the automatic
differentiation tool Adifor is used to transform the
general purpose finite element package SEPRAN.In
doing so, we automatically translate the given 400,000
lines of Fortran 77 into a new program consisting of
600,000 lines of Fortran 77. We compare our approach
with a traditional approach based on numerical
differentiation and quantify its advantages in terms
of accuracy and computational efficiency for a
standard fluid flow problem.
|
|
[3]
|
Christian H. Bischof, H. Martin Bücker, Bruno Lang, and Arno Rasch.
Solving large-scale optimization problems with EFCOSS.
Advances Engrg. Software, 34(10):633--639, October 2003.
[ DOI ]
Derivatives play a prominent role in many areas of
scientific computing. Traditionally, divided
differences are employed to approximate derivatives,
leading to results of dubious quality at often great
computational expense. Automatic differentiation (AD),
by contrast, is a powerful technique for accurately
evaluating derivatives of functions described in a
high-level programming language. AD requires little
human effort and produces derivatives without
truncation error. Although there is no conceptual
difference between small and large codes, applying AD
to programs with hundreds of thousands lines of code
is still a challenging task and requires a robust AD
tool. We report on recent accomplishments of AD
applied to the general purpose finite element package
SEPRAN consisting of approximately 400,000 lines of
Fortran77 and its integration into a prototype problem
solving environment called EFCOSS supporting
interoperability of simulation codes with optimization
software using AD technology.
|
|
[4]
|
Christian H. Bischof, H. Martin Bücker, Bruno Lang, and Arno Rasch.
An interactive environment for supporting the paradigm shift from
simulation to optimization.
Scientific Prog., 11(4):263--272, 2003.
[ DOI ]
Numerical simulation is a powerful tool in science and
engineering, and it is also used for optimizing the
design of products and experiments rather than only
for reproducing the behavior of scientific and
engineering systems. In order to reduce the number of
simulation runs, the traditional “trial and error”
approach for finding near-to-optimum design parameters
is more and more replaced with efficient numerical
optimization algorithms. Done by hand, the coupling of
simulation and optimization software is tedious and
error-prone. In this note we introduce a software
environment called EFCOSS (Environment For Combining
Optimization and Simulation Software) that facilitates
and speeds up this task by doing much of the required
work automatically. Our framework includes support for
automatic differentiation providing the derivatives
required by many optimization algorithms. We describe
the process of integrating the widely used
computational fluid dynamics package FLUENT and
a MINPACK-1 least squares optimizer into EFCOSS and
follow a sample session solving a data assimilation
problem.
|
|
[5]
|
H. Martin Bücker, Bruno Lang, Arno Rasch, and Christian H. Bischof.
Computing sensitivities of the electrostatic potential by automatic
differentiation.
Comput. Phys. Comm., 147(1--2):720--723, August 2002.
[ DOI ]
Given a computer model for the electrostatic potential
in an L-shaped region with media of different
dielectric permeabilities in two subregions, we are
interested in the robustness of the simulation by
identifying the rate of change of the potential with
respect to a change in the permeabilities. Such
sensitivity analyses, assessing the rate of change of
certain model outputs implied by varying certain model
inputs, can be carried out by computing the
corresponding partial derivatives. In large-scale
computational physics, the underlying computer model
is typically available as a complicated computer code
in a high-level programming language such as Fortran,
C, or C++. To obtain accurate and efficient
derivatives of functions given in this form, we use a
technique called automatic or algorithmic
differentiation. Unlike numerical differentiation
based on divided differences, derivatives generated by
automatic differentiation are free of truncation
error. Here, the automatic differentiation tool Adifor
is used to transform the given computer
model---implemented with the general purpose finite
element package SEPRAN---into a new computer code
computing the derivatives of the electrostatic
potential with respect to the dielectric
permeabilities. In doing so, we automatically
translate 400,000 lines of Fortran 77 into a new
program consisting of 600,000 lines of Fortran 77. We
compare our approach with a traditional approach based
on numerical differentiation and quantify its
advantages in terms of accuracy and computational
efficiency.
|
|
[6]
|
Christian H. Bischof, H. Martin Bücker, Bruno Lang, Arno Rasch, and
Jakob W. Risch.
A CORBA-based environment for coupling large-scale simulation and
optimization software.
In H. R. Arabnia, editor, Proceedings of the International
Conference on Parallel and Distributed Processing Techniques and
Applications, PDPTA'2001, Las Vegas, Nevada, June 25--28, 2001, volume 1,
pages 68--72. CSREA Press, 2001.
Simulation is an essential part in computational
science and engineering. Since the underlying physical
models become more and more complex, the adjustment of
certain model parameters (“parameter
identification”) is often a nontrivial task and
should be addressed by means of efficient numerical
optimization algorithms. We describe an environment
for coupling simulation and optimization software. The
modular architecture of the system supports easy
modification of the problem configuration, including
the exchange of software components. Therefore our
tool is well-suited for rapid prototyping of
optimization problems.
|
|
[7]
|
H. Martin Bücker, Bruno Lang, Arno Rasch, and Christian H. Bischof.
From analytic to automated derivatives: A case study of the
electrostatic potential.
In Algorithms and Software for Mobile Communications, Proc. 10th Aachen Symposium on Signal Theory, Aachen, Germany, September 20--21,
2001, pages 255--260, Berlin, 2001. VDE Verlag.
Given a large-scale engineering simulation, one is
often interested in the derivatives of certain program
outputs with respect to certain input parameters,
e.g., for sensitivity analysis. From an abstract point
of view, the computer program defines a mathematical
function whose derivatives are sought. In this note,
two cases are investigated where the underlying
functions are given by the solution of different
two-dimensional electrostatic potential problems. For
a rectangular region, the function and its derivatives
can be derived analytically. For a function based on
an L-shaped region, the function is computed by a
simulation code and its derivatives are obtained by
automatic differentiation. In general, this powerful
technique is applicable if a function is given in the
form of a computer program in a high-level programming
language such as Fortran, C, or C++. In contrast to
numerical differentiation providing approximations
based on divided differences, the derivatives computed
by automatic differentiation are accurate.
Furthermore, automatic differentiation is also shown
to be computationally efficient.
|
|
[8]
|
Christian H. Bischof, H. Martin Bücker, Bruno Lang, Arno Rasch, and
Jakob W. Risch.
On the use of a differentiated finite element package for sensitivity
analysis.
In Vassil N. Alexandrov, Jack J. Dongarra, Benjoe A. Juliano,
René S. Renner, and C. J. Kenneth Tan, editors, Computational
Science --- ICCS 2001 International Conference San Francisco, CA, May 2001,
Proceedings, Part I, volume 2073 of LNCS, pages 795--801, Berlin,
2001. Springer.
[ DOI ]
Derivatives are ubiquitous in various areas of
computational science including sensitivity analysis
and parameter optimization of computer models. Among
the various methods for obtaining derivatives,
automatic differentiation (AD) combines freedom from
approximation errors, high performance, and the
ability to handle arbitrarily complex codes arising
from large-scale scientific investigations. In this
note, we show how AD technology can aid in the
sensitivity analysis of a computer model by
considering a classic fluid flow experiment as an
example. To this end, the software tool ADIFOR
implementing the AD technology for functions written
in Fortran 77 was applied to the large finite element
package SEPRAN. Differentiated versions of SEPRAN
enable sensitivity analysis for a wide range of
applications, not only from computational fluid
dynamics.
|