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?


1 Answer 1


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

  • $\begingroup$ Could you explain more (or point me to a reference) about AD being used to compute matrix vector products for the adjoint linear solve? $\endgroup$
    – NNN
    Commented Nov 2, 2022 at 6:46
  • 1
    $\begingroup$ Here's an example: arxiv.org/pdf/1107.1831.pdf but if you look up adjoint automatic differentiation (AAD) you will find many examples. $\endgroup$
    – EMP
    Commented Nov 2, 2022 at 12:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.