Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 426
    • Issues 426
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Merge requests
  • !578

ENH: new objective functions for adjoint-based optimisation

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Vaggelis Papoutsis requested to merge feature-newObjectiveFunctions into develop Nov 25, 2022
  • Overview 10
  • Commits 4
  • Changes 257

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 Dec 23, 2022 by Andrew Heather
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature-newObjectiveFunctions