We develop a discrete adjoint version of OpenFOAM (currently based on OpenFOAM-3.0.x). It can be applied to topology optimization cases, but a wide range of other use-cases can also be tackled due to the flexibility of the discrete adjoint approach. The following features are available:

  • Full first order adjoint of the whole OpenFOAM package
  • Equidistant or Revolve Checkpointing
  • Symbolically differentiated linear solvers
  • Parallelization with adjoint-MPI (AMPI)
  • Tangent Linear and Finite Difference Implementations for verification

The source is available upon request. Please drop us a mail and we'll grant you access to the repository.


Workshop Materials

  • Introduction to Algorithmic Differentiation available here
  • Advanced Topics in Algorithmic Differentiation available here
  • Introduction to Discrete Adjoint OpenFOAM available here
  • Workshop Materials -to appear soon-


Markus Towara & Arindam Sen





This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software and owner of the OPENFOAM®  and OpenCFD®  trade marks.