Skip to content

ENH: new objective functions for adjoint-based optimisation

Vaggelis Papoutsis requested to merge feature-newObjectiveFunctions into develop

Summary

Added five new objective functions for use in adjoint-based optimisation.

Details of new models

The new objective functions mainly target internal flow optimisation problems. A short description and an indicative example for each of them follows. All figures that follow depict the velocity magnitude.

flowRate

Computes and minimizes/maximizes the volume-flow rate through a given set of patches. An indicative application follows, in which the flow-rate though the upper part of the duct should be maximized (flow from left to right).

Initial geometry (52.8% of the flow-rate goes through the upper part) Optimised geometry (53.7% of the flow-rate goes through the upper part)
flowRate.0000 flowRate.0004

Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/flowRate

Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveFlowRate

flowRatePartition

Used to distribute the inlet flow-rate to outlet patches with prescribed target percentages. An indicative application follows, in which the equal distribution of the inlet flow-rate to the two outlets is targeted.

Initial geometry (52.8%/47.2% distribution between the upper/lower outlets) Optimised geometry (equally distributed flow)
flowRate.0000 flowRatePartition.0009

Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/flowRatePartition

Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveFlowRatePartition

uniformityPatch

Enhances the flow uniformity by minimizing the velocity variance computed on prescribed (outlet) patches (the lower outlet patch in this case).

Initial geometry Optimised geometry (velocity variance reduced by 34%)
flowRate.0000 uniformityPatchGeom.0004

Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/fork-uneven/uniformityPatch

Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveUniformityPatch

uniformityCellZone

Enhances the flow uniformity by minimizing the velocity variance within prescribed cellZones.

In this case, the boundaries of the target cellZone are highlighted in black.

Initial geometry Optimised geometry (velocity variance reduced by 34%)
uniformityCellZone.0001 uniformityCellZone.0010

Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/laminar/opt/unconstrained/uniformityCellZone

Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveUniformityCellZone

powerDissipation

Computes and minimizes the fluid power dissipation that takes place within given cellZones. If the cellZone covers the entire flow domain, this objective is equivalent to volume flow-rate weighted total pressure losses (i.e. the PtLosses objective function).

The boundaries of the target cellZone are highlighted in black.

Initial geometry Optimised geometry (Power dissipation reduced by 57% within the cellZone)
powerDissipation-partial.0001 powerDissipation-partial.0009

Tutorial: $FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation

Source code: $FOAM_SRC/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectivePowerDissipation

Manual: adjointOptimisationFoamManual_v2212.pdf

Edited by Andrew Heather

Merge request reports