Automated derivation of the adjoint of high-level transient finite element programs
Patrick E. Farrell (1), David A. Ham (2, 3), Simon F. Funke (1 and, 3), Marie E. Rognes (4) ((1) Department of Earth Science, Engineering, Imperial College London, (2) Department of Computing Imperial College London,

TL;DR
This paper introduces a high-level, automated method for deriving adjoint and tangent linear models of finite element programs, significantly improving efficiency and ease of use over traditional techniques.
Contribution
The paper presents a novel high-level symbolic approach for automatic adjoint derivation in finite element models, implemented in the dolfin-adjoint software package based on FEniCS.
Findings
Automated adjoint derivation is more efficient than standard methods.
The approach works with complex, nonlinear, time-dependent models.
It automatically manages checkpointing and parallel execution.
Abstract
In this paper we demonstrate a new technique for deriving discrete adjoint and tangent linear models of finite element models. The technique is significantly more efficient and automatic than standard algorithmic differentiation techniques. The approach relies on a high-level symbolic representation of the forward problem. In contrast to developing a model directly in Fortran or C++, high-level systems allow the developer to express the variational problems to be solved in near-mathematical notation. As such, these systems have a key advantage: since the mathematical structure of the problem is preserved, they are more amenable to automated analysis and manipulation. The framework introduced here is implemented in a freely available software package named dolfin-adjoint, based on the FEniCS Project. Our approach to automated adjoint derivation relies on run-time annotation of the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
