]> https://gitweb.dealii.org/ - release-papers.git/commitdiff
Add section on automatic differentiation
authorJean-Paul Pelteret <jppelteret@gmail.com>
Wed, 25 Apr 2018 14:44:15 +0000 (16:44 +0200)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Wed, 25 Apr 2018 14:44:15 +0000 (16:44 +0200)
9.0/paper.bib
9.0/paper.tex

index a7567afa6dfd27595c5e97e9bbc6f453d1263362..f8acb982ec57da8d805f67584db315d54e221ded 100644 (file)
@@ -585,7 +585,7 @@ year = {2009}
 
 @inproceedings{adol-c,
   author = {A. Walther and A. Griewank},
-  title = {Getting started wiht {ADOL}-{C}},
+  title = {Getting started with {ADOL}-{C}},
   booktitle = {Combinatorial Scientific Computing},
   publisher = {U. Naumann and O.Schenk},
   series = {Chapman-Hall CRC Computational Science},
@@ -593,6 +593,18 @@ year = {2009}
   year = {2012}
 }
 
+@Article{Griewank1996a,
+  author    = {Griewank, Andreas and Juedes, David and Utke, Jean},
+  title     = {Algorithm 755: {ADOL-C}: a package for the automatic differentiation of algorithms written in {C/C++}},
+  journal   = {ACM Transactions on Mathematical Software (TOMS)},
+  year      = {1996},
+  volume    = {22},
+  number    = {2},
+  pages     = {131--167},
+  doi       = {10.1145/229473.229474},
+  publisher = {ACM},
+}
+
 @article{sundials,
   title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers},
   author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S},
@@ -704,4 +716,25 @@ year = {2009}
     YEAR = {1999},
     ADDRESS = {Philadelphia, PA},
     ISBN = {0-89871-447-8 (paperback)}
+}
+
+@Electronic{Pelteret2016a,
+  author    = {Pelteret, J-P. V. and McBride, A.},
+  title     = {The \texttt{deal.II} code gallery: Quasi-Static Finite-Strain Compressible Elasticity},
+  year      = {2016},
+  url       = {https://dealii.org/developer/doxygen/deal.II/code_gallery_Quasi_static_Finite_strain_Compressible_Elasticity.html},
+  note      = {Accessed April 2018. doi: \href{http://dx.doi.org/10.5281/zenodo.1228964}{\texttt{10.5281/zenodo.1228964}}},
+  doi       = {10.5281/zenodo.1228964},
+}
+
+@InCollection{Bartlett2006a,
+  author        = {Bartlett, R. A. and Gay, D. M. and Phipps, E. T.},
+  title         = {Automatic Differentiation of C++ Codes for Large-Scale Scientific Computing},
+  booktitle     = {International Conference on Computational Science {\textendash} {ICCS} 2006},
+  publisher     = {Springer Berlin Heidelberg},
+  year          = {2006},
+  editor        = {Alexandrov, V.N. and van Albada, G.D. and Sloot, P.M.A. amd Dongarra, J.},
+  pages         = {525--532},
+  doi           = {10.1007/11758549_73},
+  organization  = {Springer},
 }
\ No newline at end of file
index c5af83bb6ccafe0e3f4da171d5b8f6a40429db7b..84a89ee248f02dead3aa00bc637ca2767bd46afe 100644 (file)
@@ -172,7 +172,7 @@ The major changes of this release are:
 \begin{itemize}
 \item Improved support for curved geometries;
 \item Support for particle-in-cell methods;
-\item Dedicated support for automatic and symbolic differentiation;
+\item Dedicated support for automatic differentiation;
 \item Interfaces to more external libraries and programs;
 \item C++11 is now both required and used;
 \item Support for GPU computations;
@@ -328,26 +328,48 @@ implementation here originated in the \aspect code, see \cite{KHB12,HDGB17}.
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Dedicated support for automatic and symbolic differentiation}
+\subsection{Dedicated support for automatic differentiation}
 
-\marginpar{J-P: Please edit as appropriate}
-Automatic differentiation is often used to automatically derive
-residuals from the stored energy functional, and to derive Jacobian
-matrices from residual vectors for simulations that use complicated
-material models. Examples can be found widely for nonlinear solid
-mechanics as well as for nonlinear viscosity models in fluid flow.
+Automatic differentiation (AD) is often used to automatically derive
+residuals and their linearization from a stored energy functional, and to
+derive Jacobian matrices from residual vectors for simulations that use
+complicated material models. Examples of its application can be found widely
+within nonlinear solid mechanics, coupled multiphysics problems, as well as
+for nonlinear viscosity models in fluid flow.
 
 \dealii has had a tutorial program (step-33) since 2007 that
-demonstrates this technique based on the Trilinos Sacado package, but
+demonstrates this technique based on the Trilinos Sacado \cite{Bartlett2006a} package, but
 the functionality was not available pervasively throughout
-deal.II. This has changed with release 9.0 where support for
-differentiation has been collected in one module that provides both
-automatic and symbolic differentiation. Currently, this module relies
-on either the ADOL-C and Sacado libraries, through a unified
-interface. In practice, this support means that ADOL-C and Sacado data
+deal.II. 
+This has changed with release 9.0 where support is given for differentiation 
+using a selection of ``white-listed'' libraries (namely ADOL-C \citep{Griewank1996a} 
+and Sacado) and a subset of their supported number types. Currently, we offer support for
+\begin{itemize}
+\item ADOL-C taped (n-differentiable),
+\item ADOL-C tapeless (once differentiable),
+\item Sacado dynamic forward (once differentiable),
+\item Sacado reverse (once differentiable),
+\item Sacado nested dynamic forward (twice differentiable), and
+\item Sacado nested reverse and dynamic forward (twice differentiable)
+\end{itemize}
+numbers. In practice, this support means that these ADOL-C and Sacado data
 types can be used in the \texttt{FEValues}, \texttt{FEValuesViews},
+\texttt{Tensor}, \texttt{SymmetricTensor},
 and related classes that are generally used to assemble linear systems
 and right hand sides.
+Given the updated capabilities of the library, there is now a dedicated module 
+that presents the AD compatibility and capabilities of the \dealii libraries. 
+Furthermore, the use of Sacado is now  demonstrated in a much more simplified 
+and transparent manner in an modernized version of an existing ``code gallery'' 
+example \cite{Pelteret2016a}. 
+
+To date it remains necessary for the user  to manage the initialization of AD 
+independent variables and the resultant calls  to the AD dependent variables 
+in order to initiate the computation of derivatives.
+In the next release we expect to provide a unified interface to these
+AD libraries, which will hide these library-dependent implementational details 
+and facilitate switching between the supported libraries and AD number types
+based on the user's requirements.
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -634,7 +656,7 @@ following:
 \dealii can interface with many other libraries:
 \begin{multicols}{3}
 \begin{itemize}
-\item ADOL-C \cite{adol-c}
+\item ADOL-C \cite{Griewank1996a,adol-c}
 \item ARPACK \cite{arpack}
 \item Assimp \cite{assimp}
 \item BLAS and LAPACK \cite{lapack}

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.