-
Parts of the adjoint optimisation library were re-designed to generalise the way sensitivity derivatives (SDs) are computed and to allow easier extension to primal problems other than the ones governed by incompressible flows. In specific: - the adjoint solver now holds virtual functions returning the part of SDs that depends only on the primal and the adjoint fields. - a new class named designVariables was introduced which, apart from defining the design variables of the optimisation problem and providing hooks for updating them in an optimisation loop, provides the part of the SDs that affects directly the flow residuals (e.g. geometric variations in shape optimisation, derivatives of source terms in topology optimisation, etc). The final assembly of the SDs happens here, with the updated sensitivity class acting as an intermediate. With the new structure, when the primal problem changes (for instance, passive scalars are included), the ...
b6a30fae