I've been working with TensorFlow and I'm very impressed with its automatic differentiation capabilities. I'm wondering what the state of the art in automatic differentiation for finite element methods (and other pde solvers) is. Has automatic differentiation rendered adjoint methods for computing sensitivities of objective functionals obsolete?
Asked
Active
Viewed 299 times
1 Answers
8
No. It's more frequently used as a complement to adjoint sensitivity computation. Often times it's used to compute the matrix vector products needed as part of the adjoint linear solve. As nice/simple as AD can make sensitivity computation, if you have many more inputs than outputs, adjoint differentiation is really scalable and desirable over direct methods. An additional point in favor of computing the adjoint state is that it allows for the use of dual-weighted residual based error estimates which are very desirable in automatic mesh refinement in the simulation of governing equations of PDEs
EMP
- 2,079
- 10
- 19
-
Could you explain more (or point me to a reference) about AD being used to compute matrix vector products for the adjoint linear solve? – NNN Nov 02 '22 at 06:46
-
1Here's an example: https://arxiv.org/pdf/1107.1831.pdf but if you look up adjoint automatic differentiation (AAD) you will find many examples. – EMP Nov 02 '22 at 12:44