This release contains a major update that adds the Jacobian-free adjoint capability using automatic-differentiation.

  • Added the Jacobian-free adjoint solution capability. There is no need to explicitly compute the state Jacobian matrix, which increases the adjoint solution speed.

  • Enabled loading two DAFoam solvers in the Python layer, i.e., both the original and AD versions of DAFoam libraries can be loaded simultaneously. By doing this, the primal solution and dRdWTPC can be computed by the original DAFoam lib, while the matrix-vector products in the GMRES solution can be computed by the AD version.

  • The Jacobian-free adjoint version of DAFoam is based on the differentiated version of OpenFOAM, i.e., OpenFOAM-v1812-AD.

  • Re-structured the adjoint solution code. Now all the adjoint calls are handled in the Python layer.

  • Added the capability to compute derivatives with respect to state variables, i.e., betaSA, a scalar field multiplying to the production term in the SA turbulence model.