DAFoam: Discrete Adjoint with OpenFOAM


NOTE: this website is for DAFoam v1.1 and is no longer updated. For DAFoam v2.0+, visit dafoam.github.io

DAFoam contains a suite of discrete adjoint solvers for OpenFOAM. These adjoint solvers run as standalone executives to compute derivatives. DAFoam also has a Python interface that allows the adjoint solvers to interact with external modules for high-fidelity design optimization using the MACH framework. DAFoam has the following features:

  • It implements an efficient discrete adjoint approach with competitive speed, scalability, accuracy, and compatibility.
  • It allows rapid discrete adjoint development for any steady-state OpenFOAM solvers with modifying only a few hundred lines of source codes.
  • It supports design optimizations for a wide range of disciplines such as aerodynamics, heat transfer, structures, hydrodynamics, and radiation.

The DAFoam repository comprises of five main directories, and the source code is available on GitHub.

  • applications: adjoint solvers and utilities
  • doc: documentation
  • python: python interface to other optimization packages
  • src: the core DAFoam libraries
  • tutorials: sample optimization setup for each adjoint solver