From ecc1fb5efbd95b7bec233f5cea2753448a13e824 Mon Sep 17 00:00:00 2001
From: Vaggelis Papoutsis <>
Date: Mon, 17 Jun 2019 12:59:11 +0100
Subject: [PATCH] CONTRIB: New adjoint optimisation and tools
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followed by the adjoint equations and,
eventually, the computation of sensitivity derivatives.
Current functionality supports the solution of the adjoint equations for
incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].
Sensitivity derivatives are computed with respect to the normal displacement of
boundary wall nodes/faces (the so-called sensitivity maps) following the
Enhanced Surface Integrals (E-SI) formulation, [3].
The software was developed by PCOpt/NTUA and FOSS GP, with contributions from
Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather
and contributions in earlier version from
Dr. Ioannis Kavvadias,
Dr. Alexandros Zymaris,
Dr. Dimitrios Papadimitriou
[1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
Continuous adjoint approach to the Spalart-Allmaras turbulence model for
incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.
[2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
for turbulent flows, applied to shape and topology optimization: Industrial
applications. 23(2):255–299, 2016.
[3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
proper treatment of grid sensitivities in continuous adjoint methods for shape
optimization. Journal of Computational Physics, 301:1–18, 2015.
Integration into the official OpenFOAM release by OpenCFD
---
.../adjointOptimisationFoam/Make/files | 3 +
.../adjointOptimisationFoam/Make/options | 21 +
.../adjointOptimisationFoam.C | 87 ++
.../adjointOptimisationFoam/createFields.H | 6 +
.../computeSensitivities/Make/files | 3 +
.../computeSensitivities/Make/options | 23 +
.../computeSensitivities.C | 76 ++
.../computeSensitivities/createFields.H | 9 +
bin/tools/CleanFunctions | 8 +
src/Allwmake | 1 +
.../adjoint/ATCModel/ATCModel/ATCModel.C | 263 ++++
.../adjoint/ATCModel/ATCModel/ATCModel.H | 220 ++++
.../ATCModel/ATCModel/ATCModelTemplates.C | 63 +
.../adjoint/ATCModel/ATCUaGradU/ATCUaGradU.C | 141 +++
.../adjoint/ATCModel/ATCUaGradU/ATCUaGradU.H | 109 ++
.../ATCModel/ATCstandard/ATCstandard.C | 155 +++
.../ATCModel/ATCstandard/ATCstandard.H | 109 ++
.../adjoint/ATCModel/cancelATC/cancelATC.C | 93 ++
.../adjoint/ATCModel/cancelATC/cancelATC.H | 110 ++
.../zeroATCcells/faceCells/faceCells.C | 84 ++
.../zeroATCcells/faceCells/faceCells.H | 101 ++
.../zeroATCcells/pointCells/pointCells.C | 92 ++
.../zeroATCcells/pointCells/pointCells.H | 100 ++
.../zeroATCcells/zeroATCcells/zeroATCcells.C | 111 ++
.../zeroATCcells/zeroATCcells/zeroATCcells.H | 141 +++
.../adjointOptimisation/adjoint/Make/files | 116 ++
.../adjointOptimisation/adjoint/Make/options | 25 +
.../adjointBoundaryCondition.C | 151 +++
.../adjointBoundaryCondition.H | 159 +++
.../adjointBoundaryConditionTemplates.C | 166 +++
...djointFarFieldPressureFvPatchScalarField.C | 474 +++++++
...djointFarFieldPressureFvPatchScalarField.H | 196 +++
...djointFarFieldVelocityFvPatchVectorField.C | 204 +++
...djointFarFieldVelocityFvPatchVectorField.H | 153 +++
.../adjointInletVelocityFvPatchVectorField.C | 150 +++
.../adjointInletVelocityFvPatchVectorField.H | 157 +++
.../adjointOutletPressureFvPatchScalarField.C | 179 +++
.../adjointOutletPressureFvPatchScalarField.H | 142 +++
.../adjointOutletVelocityFvPatchVectorField.C | 194 +++
.../adjointOutletVelocityFvPatchVectorField.H | 170 +++
...ointOutletVelocityFluxFvPatchVectorField.C | 232 ++++
...ointOutletVelocityFluxFvPatchVectorField.H | 190 +++
.../adjointWallVelocityFvPatchVectorField.C | 241 ++++
.../adjointWallVelocityFvPatchVectorField.H | 165 +++
...jointWallVelocityLowReFvPatchVectorField.C | 130 ++
...jointWallVelocityLowReFvPatchVectorField.H | 139 +++
.../adjointZeroInletFvPatchField.C | 106 ++
.../adjointZeroInletFvPatchField.H | 153 +++
.../adjointZeroInletFvPatchFields.C | 46 +
.../adjointZeroInletFvPatchFields.H | 53 +
.../adjointZeroInletFvPatchFieldsFwd.C | 53 +
.../boundaryAdjointContribution.C | 133 ++
.../boundaryAdjointContribution.H | 175 +++
...oundaryAdjointContributionIncompressible.C | 421 +++++++
...oundaryAdjointContributionIncompressible.H | 183 +++
...jointContributionIncompressibleTemplates.C | 57 +
.../adjoint/deltaBoundary/deltaBoundary.C | 369 ++++++
.../adjoint/deltaBoundary/deltaBoundary.H | 146 +++
.../deltaBoundary/deltaBoundaryTemplates.C | 111 ++
.../linearUpwindNormal/linearUpwindNormal.C | 148 +++
.../linearUpwindNormal/linearUpwindNormal.H | 167 +++
.../fvOptions/fvIOoptionListAdjoint.C | 93 ++
.../fvOptions/fvIOoptionListAdjoint.H | 105 ++
.../fvOptions/fvOptionAdjoint.C | 113 ++
.../fvOptions/fvOptionAdjoint.H | 135 ++
.../fvOptions/fvOptionAdjointList.C | 182 +++
.../fvOptions/fvOptionAdjointList.H | 220 ++++
.../fvOptions/fvOptionAdjointListTemplates.C | 254 ++++
.../include/createFvOptionsAdjoint.H | 1 +
.../adjoint/global/boundaryFieldsFwd.H | 72 ++
.../adjoint/global/createZeroField.H | 155 +++
.../objectiveManager/objectiveManager.C | 241 ++++
.../objectiveManager/objectiveManager.H | 193 +++
.../objectiveManagerIncompressible.C | 131 ++
.../objectiveManagerIncompressible.H | 117 ++
.../objectiveForce/objectiveForce.C | 299 +++++
.../objectiveForce/objectiveForce.H | 133 ++
.../objectiveIncompressible.C | 432 +++++++
.../objectiveIncompressible.H | 332 +++++
.../objectiveIncompressibleI.H | 104 ++
.../objectiveMoment/objectiveMoment.C | 313 +++++
.../objectiveMoment/objectiveMoment.H | 132 ++
.../objectivePtLosses/objectivePtLosses.C | 279 +++++
.../objectivePtLosses/objectivePtLosses.H | 122 ++
.../adjoint/objectives/objective/objective.C | 486 ++++++++
.../adjoint/objectives/objective/objective.H | 365 ++++++
.../objectives/objective/objectiveFwd.H | 45 +
.../adjoint/objectives/objective/objectiveI.H | 98 ++
.../adjointEikonalSolverIncompressible.C | 300 +++++
.../adjointEikonalSolverIncompressible.H | 259 ++++
.../adjointMeshMovementSolverIncompressible.C | 174 +++
.../adjointMeshMovementSolverIncompressible.H | 148 +++
.../adjointSensitivityIncompressible.C | 341 +++++
.../adjointSensitivityIncompressible.H | 195 +++
.../sensitivityMultipleIncompressible.C | 142 +++
.../sensitivityMultipleIncompressible.H | 128 ++
.../sensitivitySurfaceIncompressible.C | 712 +++++++++++
.../sensitivitySurfaceIncompressible.H | 179 +++
.../sensitivitySurfacePointsIncompressible.C | 674 ++++++++++
.../sensitivitySurfacePointsIncompressible.H | 161 +++
.../sensitivity/sensitivity.C | 358 ++++++
.../sensitivity/sensitivity.H | 258 ++++
.../sensitivity/sensitivityTemplates.C | 157 +++
.../lineSearch/lineSearch/lineSearch.C | 215 ++++
.../lineSearch/lineSearch/lineSearch.H | 188 +++
.../stepUpdate/stepUpdate/stepUpdate.C | 104 ++
.../stepUpdate/stepUpdate/stepUpdate.H | 137 ++
.../optimisationManager/optimisationManager.C | 268 ++++
.../optimisationManager/optimisationManager.H | 171 +++
.../optimisationManager/singleRun/singleRun.C | 91 ++
.../optimisationManager/singleRun/singleRun.H | 123 ++
.../optimisationTypeIncompressible.C | 284 +++++
.../optimisationTypeIncompressible.H | 179 +++
.../constrainedOptimisationMethod.C | 52 +
.../constrainedOptimisationMethod.H | 124 ++
.../updateMethod/updateMethod/updateMethod.C | 370 ++++++
.../updateMethod/updateMethod/updateMethod.H | 236 ++++
.../adjointSolverManager.C | 301 +++++
.../adjointSolverManager.H | 187 +++
.../adjointSolver/adjointSolver.C | 152 +++
.../adjointSolver/adjointSolver.H | 195 +++
.../adjointSimple/adjointSimple.C | 381 ++++++
.../adjointSimple/adjointSimple.H | 171 +++
.../incompressibleAdjointSolver.C | 175 +++
.../incompressibleAdjointSolver.H | 216 ++++
.../RASTurbulenceModel/RASTurbulenceModel.C | 118 ++
.../RASTurbulenceModel/RASTurbulenceModel.H | 125 ++
.../incompressiblePrimalSolver.C | 243 ++++
.../incompressiblePrimalSolver.H | 200 +++
.../incompressible/simple/simple.C | 285 +++++
.../incompressible/simple/simple.H | 148 +++
.../primalSolvers/primalSolver/primalSolver.C | 101 ++
.../primalSolvers/primalSolver/primalSolver.H | 138 +++
.../adjoint/solvers/solver/solver.C | 131 ++
.../adjoint/solvers/solver/solver.H | 206 +++
.../adjoint/solvers/solver/solverTemplates.C | 74 ++
.../SIMPLEControl/SIMPLEControl.C | 123 ++
.../SIMPLEControl/SIMPLEControl.H | 176 +++
.../SIMPLEControl/SIMPLEControlI.H | 50 +
.../singleRun/SIMPLEControlSingleRun.C | 179 +++
.../singleRun/SIMPLEControlSingleRun.H | 137 ++
.../solverControl/solverControl.C | 77 ++
.../solverControl/solverControl.H | 177 +++
.../solverControl/solverControlI.H | 112 ++
.../incompressible/incompressibleVars.C | 529 ++++++++
.../incompressible/incompressibleVars.H | 248 ++++
.../incompressibleAdjointVars.C | 122 ++
.../incompressibleAdjointVars.H | 129 ++
.../incompressibleAdjointMeanFlowVars.C | 271 ++++
.../incompressibleAdjointMeanFlowVars.H | 190 +++
.../variablesSet/variablesSet/variablesSet.C | 192 +++
.../variablesSet/variablesSet/variablesSet.H | 212 ++++
.../variablesSet/variablesSetTemplates.C | 292 +++++
.../adjointLaminar/adjointLaminar.C | 195 +++
.../adjointLaminar/adjointLaminar.H | 142 +++
.../adjointRASModel/adjointRASModel.C | 474 +++++++
.../adjointRASModel/adjointRASModel.H | 323 +++++
.../adjointSpalartAllmaras.C | 1103 +++++++++++++++++
.../adjointSpalartAllmaras.H | 356 ++++++
...djointFarFieldNuaTildaFvPatchScalarField.C | 179 +++
...djointFarFieldNuaTildaFvPatchScalarField.H | 154 +++
.../adjointInletNuaTildaFvPatchScalarField.C | 135 ++
.../adjointInletNuaTildaFvPatchScalarField.H | 156 +++
.../adjointOutletFluxFvPatchScalarField.C | 150 +++
.../adjointOutletFluxFvPatchScalarField.H | 162 +++
.../adjointOutletNuaTildaFvPatchScalarField.C | 139 +++
.../adjointOutletNuaTildaFvPatchScalarField.H | 138 +++
...ointOutletNuaTildaFluxFvPatchScalarField.C | 166 +++
...ointOutletNuaTildaFluxFvPatchScalarField.H | 164 +++
.../adjointTurbulenceModel.C | 141 +++
.../adjointTurbulenceModel.H | 218 ++++
.../RAS/LaunderSharmaKE/LaunderSharmaKE.C | 87 ++
.../RAS/LaunderSharmaKE/LaunderSharmaKE.H | 92 ++
.../RAS/RASModelVariables/RASModelVariables.C | 583 +++++++++
.../RAS/RASModelVariables/RASModelVariables.H | 240 ++++
.../RAS/SpalartAllmaras/SpalartAllmaras.C | 143 +++
.../RAS/SpalartAllmaras/SpalartAllmaras.H | 99 ++
.../RAS/kEpsilon/kEpsilon.C | 87 ++
.../RAS/kEpsilon/kEpsilon.H | 92 ++
.../RAS/kOmegaSST/kOmegaSST.C | 102 ++
.../RAS/kOmegaSST/kOmegaSST.H | 101 ++
.../RAS/laminar/laminar.C | 124 ++
.../RAS/laminar/laminar.H | 92 ++
.../motorBike/0.orig/U | 52 +
.../motorBike/0.orig/Ua | 56 +
.../motorBike/0.orig/include/fixedInlet | 15 +
.../0.orig/include/frontBackUpperPatches | 19 +
.../0.orig/include/initialConditions | 13 +
.../motorBike/0.orig/nuTilda | 54 +
.../motorBike/0.orig/nuaTilda | 54 +
.../motorBike/0.orig/nut | 64 +
.../motorBike/0.orig/p | 51 +
.../motorBike/0.orig/pa | 51 +
.../motorBike/Allclean | 12 +
.../adjointOptimisationFoam/motorBike/Allrun | 43 +
.../adjointOptimisationFoam/motorBike/README | 9 +
.../motorBike/constant/adjointRASProperties | 31 +
.../motorBike/constant/transportProperties | 21 +
.../motorBike/constant/triSurface/README | 4 +
.../motorBike/constant/turbulenceProperties | 28 +
.../motorBike/system/blockMeshDict | 86 ++
.../motorBike/system/controlDict | 48 +
.../motorBike/system/decomposeParDict.20 | 27 +
.../motorBike/system/fvSchemes | 72 ++
.../motorBike/system/fvSolution | 78 ++
.../motorBike/system/meshQualityDict | 24 +
.../motorBike/system/optimisationDict | 123 ++
.../motorBike/system/snappyHexMeshDict | 326 +++++
.../system/surfaceFeatureExtractDict | 45 +
.../naca0012/laminar/drag/0/U | 46 +
.../naca0012/laminar/drag/0/Ua | 46 +
.../naca0012/laminar/drag/0/p | 45 +
.../naca0012/laminar/drag/0/pa | 44 +
.../naca0012/laminar/drag/Allclean | 7 +
.../naca0012/laminar/drag/Allrun | 11 +
.../drag/constant/adjointRASProperties | 24 +
.../laminar/drag/constant/transportProperties | 21 +
.../drag/constant/turbulenceProperties | 19 +
.../naca0012/laminar/drag/system/controlDict | 47 +
.../laminar/drag/system/decomposeParDict | 26 +
.../naca0012/laminar/drag/system/fvSchemes | 51 +
.../naca0012/laminar/drag/system/fvSolution | 61 +
.../laminar/drag/system/optimisationDict | 105 ++
.../naca0012/laminar/lift/0/U | 46 +
.../naca0012/laminar/lift/0/Ua | 46 +
.../naca0012/laminar/lift/0/p | 45 +
.../naca0012/laminar/lift/0/pa | 44 +
.../naca0012/laminar/lift/Allclean | 7 +
.../naca0012/laminar/lift/Allrun | 11 +
.../lift/constant/adjointRASProperties | 24 +
.../laminar/lift/constant/transportProperties | 21 +
.../lift/constant/turbulenceProperties | 19 +
.../naca0012/laminar/lift/system/controlDict | 47 +
.../laminar/lift/system/decomposeParDict | 26 +
.../naca0012/laminar/lift/system/fvSchemes | 51 +
.../naca0012/laminar/lift/system/fvSolution | 61 +
.../laminar/lift/system/optimisationDict | 105 ++
.../naca0012/laminar/moment/0/U | 46 +
.../naca0012/laminar/moment/0/Ua | 46 +
.../naca0012/laminar/moment/0/p | 45 +
.../naca0012/laminar/moment/0/pa | 44 +
.../naca0012/laminar/moment/Allclean | 7 +
.../naca0012/laminar/moment/Allrun | 11 +
.../moment/constant/adjointRASProperties | 22 +
.../moment/constant/transportProperties | 21 +
.../moment/constant/turbulenceProperties | 19 +
.../laminar/moment/system/controlDict | 47 +
.../laminar/moment/system/decomposeParDict | 26 +
.../naca0012/laminar/moment/system/fvSchemes | 51 +
.../naca0012/laminar/moment/system/fvSolution | 61 +
.../laminar/moment/system/optimisationDict | 107 ++
.../naca0012/turbulent/liftFullSetup/0/U | 46 +
.../naca0012/turbulent/liftFullSetup/0/Ua | 46 +
.../turbulent/liftFullSetup/0/nuTilda | 46 +
.../turbulent/liftFullSetup/0/nuaTilda | 45 +
.../naca0012/turbulent/liftFullSetup/0/nut | 46 +
.../naca0012/turbulent/liftFullSetup/0/p | 45 +
.../naca0012/turbulent/liftFullSetup/0/pa | 44 +
.../naca0012/turbulent/liftFullSetup/Allclean | 7 +
.../naca0012/turbulent/liftFullSetup/Allrun | 11 +
.../constant/adjointRASProperties | 28 +
.../constant/transportProperties | 21 +
.../constant/turbulenceProperties | 28 +
.../liftFullSetup/system/controlDict | 47 +
.../liftFullSetup/system/decomposeParDict | 26 +
.../turbulent/liftFullSetup/system/fvSchemes | 74 ++
.../turbulent/liftFullSetup/system/fvSolution | 65 +
.../liftFullSetup/system/optimisationDict | 131 ++
.../naca0012/turbulent/liftMinimumSetup/0/U | 46 +
.../naca0012/turbulent/liftMinimumSetup/0/Ua | 46 +
.../turbulent/liftMinimumSetup/0/nuTilda | 46 +
.../turbulent/liftMinimumSetup/0/nuaTilda | 45 +
.../naca0012/turbulent/liftMinimumSetup/0/nut | 46 +
.../naca0012/turbulent/liftMinimumSetup/0/p | 45 +
.../naca0012/turbulent/liftMinimumSetup/0/pa | 44 +
.../turbulent/liftMinimumSetup/Allclean | 7 +
.../turbulent/liftMinimumSetup/Allrun | 11 +
.../constant/adjointRASProperties | 21 +
.../constant/transportProperties | 21 +
.../constant/turbulenceProperties | 28 +
.../liftMinimumSetup/system/controlDict | 47 +
.../liftMinimumSetup/system/decomposeParDict | 26 +
.../liftMinimumSetup/system/fvSchemes | 74 ++
.../liftMinimumSetup/system/fvSolution | 65 +
.../liftMinimumSetup/system/optimisationDict | 107 ++
.../meshes/naca0012/polyMesh/boundary.gz | Bin 0 -> 430 bytes
.../meshes/naca0012/polyMesh/faces.gz | Bin 0 -> 1095630 bytes
.../meshes/naca0012/polyMesh/neighbour.gz | Bin 0 -> 53054 bytes
.../meshes/naca0012/polyMesh/owner.gz | Bin 0 -> 173592 bytes
.../meshes/naca0012/polyMesh/points.gz | Bin 0 -> 671206 bytes
.../meshes/sbend/polyMesh/boundary.gz | Bin 0 -> 428 bytes
.../resources/meshes/sbend/polyMesh/faces.gz | Bin 0 -> 643171 bytes
.../meshes/sbend/polyMesh/neighbour.gz | Bin 0 -> 77561 bytes
.../resources/meshes/sbend/polyMesh/owner.gz | Bin 0 -> 65176 bytes
.../resources/meshes/sbend/polyMesh/points.gz | Bin 0 -> 523532 bytes
.../resources/param/naca0012/dxidXj_0.gz | Bin 0 -> 8728 bytes
.../resources/param/naca0012/dxidXj_1.gz | Bin 0 -> 8703 bytes
.../resources/param/naca0012/dxidXj_10.gz | Bin 0 -> 8659 bytes
.../resources/param/naca0012/dxidXj_11.gz | Bin 0 -> 8664 bytes
.../resources/param/naca0012/dxidXj_12.gz | Bin 0 -> 8679 bytes
.../resources/param/naca0012/dxidXj_13.gz | Bin 0 -> 8634 bytes
.../resources/param/naca0012/dxidXj_14.gz | Bin 0 -> 8705 bytes
.../resources/param/naca0012/dxidXj_15.gz | Bin 0 -> 8735 bytes
.../resources/param/naca0012/dxidXj_2.gz | Bin 0 -> 8634 bytes
.../resources/param/naca0012/dxidXj_3.gz | Bin 0 -> 8680 bytes
.../resources/param/naca0012/dxidXj_4.gz | Bin 0 -> 8665 bytes
.../resources/param/naca0012/dxidXj_5.gz | Bin 0 -> 8661 bytes
.../resources/param/naca0012/dxidXj_6.gz | Bin 0 -> 8744 bytes
.../resources/param/naca0012/dxidXj_7.gz | Bin 0 -> 8716 bytes
.../resources/param/naca0012/dxidXj_8.gz | Bin 0 -> 8720 bytes
.../resources/param/naca0012/dxidXj_9.gz | Bin 0 -> 8745 bytes
.../resources/param/sbend/dxidXj_0.gz | Bin 0 -> 4523 bytes
.../resources/param/sbend/dxidXj_1.gz | Bin 0 -> 4508 bytes
.../resources/param/sbend/dxidXj_10.gz | Bin 0 -> 4489 bytes
.../resources/param/sbend/dxidXj_11.gz | Bin 0 -> 4432 bytes
.../resources/param/sbend/dxidXj_12.gz | Bin 0 -> 4524 bytes
.../resources/param/sbend/dxidXj_13.gz | Bin 0 -> 4510 bytes
.../resources/param/sbend/dxidXj_14.gz | Bin 0 -> 4483 bytes
.../resources/param/sbend/dxidXj_15.gz | Bin 0 -> 4483 bytes
.../resources/param/sbend/dxidXj_16.gz | Bin 0 -> 4474 bytes
.../resources/param/sbend/dxidXj_17.gz | Bin 0 -> 4456 bytes
.../resources/param/sbend/dxidXj_18.gz | Bin 0 -> 4484 bytes
.../resources/param/sbend/dxidXj_19.gz | Bin 0 -> 4468 bytes
.../resources/param/sbend/dxidXj_2.gz | Bin 0 -> 4482 bytes
.../resources/param/sbend/dxidXj_20.gz | Bin 0 -> 4467 bytes
.../resources/param/sbend/dxidXj_21.gz | Bin 0 -> 4453 bytes
.../resources/param/sbend/dxidXj_22.gz | Bin 0 -> 4490 bytes
.../resources/param/sbend/dxidXj_23.gz | Bin 0 -> 4433 bytes
.../resources/param/sbend/dxidXj_3.gz | Bin 0 -> 4482 bytes
.../resources/param/sbend/dxidXj_4.gz | Bin 0 -> 4472 bytes
.../resources/param/sbend/dxidXj_5.gz | Bin 0 -> 4456 bytes
.../resources/param/sbend/dxidXj_6.gz | Bin 0 -> 4484 bytes
.../resources/param/sbend/dxidXj_7.gz | Bin 0 -> 4466 bytes
.../resources/param/sbend/dxidXj_8.gz | Bin 0 -> 4467 bytes
.../resources/param/sbend/dxidXj_9.gz | Bin 0 -> 4452 bytes
.../adjointOptimisationFoam/sbend/laminar/0/U | 55 +
.../sbend/laminar/0/Ua | 56 +
.../sbend/laminar/0/dxidXj_0.gz | Bin 0 -> 4523 bytes
.../sbend/laminar/0/dxidXj_1.gz | Bin 0 -> 4508 bytes
.../sbend/laminar/0/dxidXj_10.gz | Bin 0 -> 4489 bytes
.../sbend/laminar/0/dxidXj_11.gz | Bin 0 -> 4432 bytes
.../sbend/laminar/0/dxidXj_12.gz | Bin 0 -> 4524 bytes
.../sbend/laminar/0/dxidXj_13.gz | Bin 0 -> 4510 bytes
.../sbend/laminar/0/dxidXj_14.gz | Bin 0 -> 4483 bytes
.../sbend/laminar/0/dxidXj_15.gz | Bin 0 -> 4483 bytes
.../sbend/laminar/0/dxidXj_16.gz | Bin 0 -> 4474 bytes
.../sbend/laminar/0/dxidXj_17.gz | Bin 0 -> 4456 bytes
.../sbend/laminar/0/dxidXj_18.gz | Bin 0 -> 4484 bytes
.../sbend/laminar/0/dxidXj_19.gz | Bin 0 -> 4468 bytes
.../sbend/laminar/0/dxidXj_2.gz | Bin 0 -> 4482 bytes
.../sbend/laminar/0/dxidXj_20.gz | Bin 0 -> 4467 bytes
.../sbend/laminar/0/dxidXj_21.gz | Bin 0 -> 4453 bytes
.../sbend/laminar/0/dxidXj_22.gz | Bin 0 -> 4490 bytes
.../sbend/laminar/0/dxidXj_23.gz | Bin 0 -> 4433 bytes
.../sbend/laminar/0/dxidXj_3.gz | Bin 0 -> 4482 bytes
.../sbend/laminar/0/dxidXj_4.gz | Bin 0 -> 4472 bytes
.../sbend/laminar/0/dxidXj_5.gz | Bin 0 -> 4456 bytes
.../sbend/laminar/0/dxidXj_6.gz | Bin 0 -> 4484 bytes
.../sbend/laminar/0/dxidXj_7.gz | Bin 0 -> 4466 bytes
.../sbend/laminar/0/dxidXj_8.gz | Bin 0 -> 4467 bytes
.../sbend/laminar/0/dxidXj_9.gz | Bin 0 -> 4452 bytes
.../sbend/laminar/0/ma | 57 +
.../adjointOptimisationFoam/sbend/laminar/0/p | 52 +
.../sbend/laminar/0/pa | 52 +
.../sbend/laminar/Allclean | 7 +
.../sbend/laminar/Allrun | 12 +
.../laminar/constant/adjointRASProperties | 24 +
.../sbend/laminar/constant/dynamicMeshDict | 49 +
.../laminar/constant/transportProperties | 21 +
.../laminar/constant/turbulenceProperties | 19 +
.../sbend/laminar/system/controlDict | 47 +
.../sbend/laminar/system/decomposeParDict | 26 +
.../sbend/laminar/system/fvSchemes | 55 +
.../sbend/laminar/system/fvSolution | 61 +
.../sbend/laminar/system/optimisationDict | 101 ++
.../sbend/turbulent/highRe/0/U | 55 +
.../sbend/turbulent/highRe/0/Ua | 56 +
.../sbend/turbulent/highRe/0/nuTilda | 55 +
.../sbend/turbulent/highRe/0/nuaTilda | 60 +
.../sbend/turbulent/highRe/0/nut | 55 +
.../sbend/turbulent/highRe/0/p | 52 +
.../sbend/turbulent/highRe/0/pa | 52 +
.../sbend/turbulent/highRe/Allclean | 7 +
.../sbend/turbulent/highRe/Allrun | 13 +
.../highRe/constant/adjointRASProperties | 21 +
.../turbulent/highRe/constant/dynamicMeshDict | 49 +
.../highRe/constant/transportProperties | 21 +
.../highRe/constant/turbulenceProperties | 28 +
.../sbend/turbulent/highRe/system/controlDict | 47 +
.../turbulent/highRe/system/decomposeParDict | 26 +
.../sbend/turbulent/highRe/system/fvSchemes | 71 ++
.../sbend/turbulent/highRe/system/fvSolution | 65 +
.../turbulent/highRe/system/optimisationDict | 101 ++
.../sbend/turbulent/lowRe/multiPoint/0/U | 55 +
.../sbend/turbulent/lowRe/multiPoint/0/Ua | 56 +
.../sbend/turbulent/lowRe/multiPoint/0/Up2 | 55 +
.../turbulent/lowRe/multiPoint/0/nuTilda | 55 +
.../turbulent/lowRe/multiPoint/0/nuaTilda | 60 +
.../sbend/turbulent/lowRe/multiPoint/0/nut | 55 +
.../sbend/turbulent/lowRe/multiPoint/0/p | 52 +
.../sbend/turbulent/lowRe/multiPoint/0/pa | 52 +
.../sbend/turbulent/lowRe/multiPoint/Allclean | 13 +
.../sbend/turbulent/lowRe/multiPoint/Allrun | 13 +
.../multiPoint/constant/adjointRASProperties | 21 +
.../lowRe/multiPoint/constant/dynamicMeshDict | 49 +
.../multiPoint/constant/polyMesh/boundary.gz | Bin 0 -> 428 bytes
.../multiPoint/constant/polyMesh/faces.gz | Bin 0 -> 643171 bytes
.../multiPoint/constant/polyMesh/neighbour.gz | Bin 0 -> 77561 bytes
.../multiPoint/constant/polyMesh/owner.gz | Bin 0 -> 65176 bytes
.../multiPoint/constant/polyMesh/points.gz | Bin 0 -> 523532 bytes
.../multiPoint/constant/transportProperties | 21 +
.../multiPoint/constant/turbulenceProperties | 28 +
.../lowRe/multiPoint/system/controlDict | 47 +
.../lowRe/multiPoint/system/decomposeParDict | 26 +
.../lowRe/multiPoint/system/fvSchemes | 75 ++
.../lowRe/multiPoint/system/fvSolution | 65 +
.../lowRe/multiPoint/system/optimisationDict | 177 +++
.../sbend/turbulent/lowRe/singlePoint/0/U | 55 +
.../sbend/turbulent/lowRe/singlePoint/0/Ua | 56 +
.../turbulent/lowRe/singlePoint/0/nuTilda | 55 +
.../turbulent/lowRe/singlePoint/0/nuaTilda | 60 +
.../sbend/turbulent/lowRe/singlePoint/0/nut | 55 +
.../sbend/turbulent/lowRe/singlePoint/0/p | 52 +
.../sbend/turbulent/lowRe/singlePoint/0/pa | 52 +
.../turbulent/lowRe/singlePoint/Allclean | 7 +
.../sbend/turbulent/lowRe/singlePoint/Allrun | 13 +
.../singlePoint/constant/adjointRASProperties | 21 +
.../singlePoint/constant/dynamicMeshDict | 49 +
.../singlePoint/constant/transportProperties | 21 +
.../singlePoint/constant/turbulenceProperties | 28 +
.../lowRe/singlePoint/system/controlDict | 47 +
.../lowRe/singlePoint/system/decomposeParDict | 26 +
.../lowRe/singlePoint/system/fvSchemes | 71 ++
.../lowRe/singlePoint/system/fvSolution | 65 +
.../lowRe/singlePoint/system/optimisationDict | 101 ++
435 files changed, 41046 insertions(+)
create mode 100644 applications/solvers/incompressible/adjointOptimisationFoam/Make/files
create mode 100644 applications/solvers/incompressible/adjointOptimisationFoam/Make/options
create mode 100644 applications/solvers/incompressible/adjointOptimisationFoam/adjointOptimisationFoam.C
create mode 100644 applications/solvers/incompressible/adjointOptimisationFoam/createFields.H
create mode 100644 applications/utilities/postProcessing/optimisation/computeSensitivities/Make/files
create mode 100644 applications/utilities/postProcessing/optimisation/computeSensitivities/Make/options
create mode 100644 applications/utilities/postProcessing/optimisation/computeSensitivities/computeSensitivities.C
create mode 100644 applications/utilities/postProcessing/optimisation/computeSensitivities/createFields.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModel.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModel.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModelTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCUaGradU/ATCUaGradU.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCUaGradU/ATCUaGradU.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCstandard/ATCstandard.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCstandard/ATCstandard.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/cancelATC/cancelATC.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/cancelATC/cancelATC.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/faceCells/faceCells.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/faceCells/faceCells.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/pointCells/pointCells.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/pointCells/pointCells.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/zeroATCcells/zeroATCcells.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/ATCModel/zeroATCcells/zeroATCcells/zeroATCcells.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/Make/files
create mode 100644 src/optimisation/adjointOptimisation/adjoint/Make/options
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditionTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointZeroInlet/adjointZeroInletFvPatchField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointZeroInlet/adjointZeroInletFvPatchField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointZeroInlet/adjointZeroInletFvPatchFields.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointZeroInlet/adjointZeroInletFvPatchFields.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointZeroInlet/adjointZeroInletFvPatchFieldsFwd.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/boundaryAdjointContributions/boundaryAdjointContribution/boundaryAdjointContribution.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/boundaryAdjointContributions/boundaryAdjointContribution/boundaryAdjointContribution.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/boundaryAdjointContributions/boundaryAdjointContributionIncompressible/boundaryAdjointContributionIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/boundaryAdjointContributions/boundaryAdjointContributionIncompressible/boundaryAdjointContributionIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/boundaryAdjointContributions/boundaryAdjointContributionIncompressible/boundaryAdjointContributionIncompressibleTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/deltaBoundary/deltaBoundary.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/deltaBoundary/deltaBoundary.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/deltaBoundary/deltaBoundaryTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/finiteVolume/interpolation/surfaceInterpolation/schemes/limitedSchemes/linearUpwindNormal/linearUpwindNormal.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/finiteVolume/interpolation/surfaceInterpolation/schemes/limitedSchemes/linearUpwindNormal/linearUpwindNormal.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvIOoptionListAdjoint.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvIOoptionListAdjoint.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvOptionAdjoint.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvOptionAdjoint.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvOptionAdjointList.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvOptionAdjointList.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/fvOptions/fvOptionAdjointListTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/fvOptionsAdjoint/include/createFvOptionsAdjoint.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/global/boundaryFieldsFwd.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/global/createZeroField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectiveManager/objectiveManager/objectiveManager.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectiveManager/objectiveManager/objectiveManager.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectiveManager/objectiveManagerIncompressible/objectiveManagerIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectiveManager/objectiveManagerIncompressible/objectiveManagerIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveIncompressible/objectiveIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveIncompressible/objectiveIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveIncompressible/objectiveIncompressibleI.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectivePtLosses/objectivePtLosses.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectivePtLosses/objectivePtLosses.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/objective/objective.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/objective/objective.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/objective/objectiveFwd.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/objectives/objective/objectiveI.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointEikonalSolver/adjointEikonalSolverIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointEikonalSolver/adjointEikonalSolverIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointMeshMovementSolver/adjointMeshMovementSolverIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointMeshMovementSolver/adjointMeshMovementSolverIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointSensitivity/adjointSensitivityIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/adjointSensitivity/adjointSensitivityIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityMultiple/sensitivityMultipleIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityMultiple/sensitivityMultipleIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivitySurface/sensitivitySurfaceIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivitySurface/sensitivitySurfaceIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivitySurfacePoints/sensitivitySurfacePointsIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivitySurfacePoints/sensitivitySurfacePointsIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/sensitivity/sensitivity.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/sensitivity/sensitivity.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/sensitivity/sensitivityTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/lineSearch/lineSearch/lineSearch.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/lineSearch/lineSearch/lineSearch.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/lineSearch/stepUpdate/stepUpdate/stepUpdate.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/lineSearch/stepUpdate/stepUpdate/stepUpdate.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationManager/optimisationManager/optimisationManager.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationManager/optimisationManager/optimisationManager.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationManager/singleRun/singleRun.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationManager/singleRun/singleRun.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/constrainedOptimisationMethod/constrainedOptimisationMethod.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/constrainedOptimisationMethod/constrainedOptimisationMethod.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolverManager/adjointSolverManager.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolverManager/adjointSolverManager.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/adjointSolver/adjointSolver.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/adjointSolver/adjointSolver.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/adjointSimple/adjointSimple.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/adjointSimple/adjointSimple.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/RASTurbulenceModel/RASTurbulenceModel.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/RASTurbulenceModel/RASTurbulenceModel.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/simple/simple.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/simple/simple.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/primalSolver/primalSolver.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/primalSolver/primalSolver.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solver/solver.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solver/solver.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solver/solverTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/SIMPLEControl/SIMPLEControl/SIMPLEControl.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/SIMPLEControl/SIMPLEControl/SIMPLEControl.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/SIMPLEControl/SIMPLEControl/SIMPLEControlI.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/SIMPLEControl/singleRun/SIMPLEControlSingleRun.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/SIMPLEControl/singleRun/SIMPLEControlSingleRun.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/solverControl/solverControl.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/solverControl/solverControl.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/solverControl/solverControl/solverControlI.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressible/incompressibleVars.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressible/incompressibleVars.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressibleAdjoint/incompressibleAdjointVars.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressibleAdjoint/incompressibleAdjointVars.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressibleAdjointMeanFlow/incompressibleAdjointMeanFlowVars.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/incompressibleAdjointMeanFlow/incompressibleAdjointMeanFlowVars.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/variablesSet/variablesSet.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/variablesSet/variablesSet.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/solvers/variablesSet/variablesSet/variablesSetTemplates.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/LaunderSharmaKE/LaunderSharmaKE.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/LaunderSharmaKE/LaunderSharmaKE.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/SpalartAllmaras/SpalartAllmaras.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/SpalartAllmaras/SpalartAllmaras.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kEpsilon/kEpsilon.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kEpsilon/kEpsilon.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.H
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/laminar/laminar.C
create mode 100644 src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/laminar/laminar.H
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/include/fixedInlet
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/include/frontBackUpperPatches
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/include/initialConditions
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/0.orig/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/motorBike/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/motorBike/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/README
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/constant/triSurface/README
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/blockMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/decomposeParDict.20
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/meshQualityDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/snappyHexMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/motorBike/system/surfaceFeatureExtractDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/drag/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/lift/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/laminar/moment/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftFullSetup/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/naca0012/turbulent/liftMinimumSetup/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/naca0012/polyMesh/boundary.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/naca0012/polyMesh/faces.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/naca0012/polyMesh/neighbour.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/naca0012/polyMesh/owner.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/naca0012/polyMesh/points.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/sbend/polyMesh/boundary.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/sbend/polyMesh/faces.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/sbend/polyMesh/neighbour.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/sbend/polyMesh/owner.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/meshes/sbend/polyMesh/points.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_0.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_1.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_10.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_11.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_12.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_13.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_14.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_15.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_2.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_3.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_4.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_5.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_6.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_7.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_8.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/naca0012/dxidXj_9.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_0.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_1.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_10.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_11.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_12.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_13.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_14.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_15.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_16.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_17.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_18.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_19.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_2.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_20.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_21.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_22.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_23.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_3.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_4.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_5.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_6.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_7.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_8.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/resources/param/sbend/dxidXj_9.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_0.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_1.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_10.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_11.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_12.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_13.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_14.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_15.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_16.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_17.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_18.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_19.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_2.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_20.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_21.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_22.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_23.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_3.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_4.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_5.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_6.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_7.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_8.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/dxidXj_9.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/ma
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/constant/dynamicMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/laminar/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/constant/dynamicMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/highRe/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/Up2
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/dynamicMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/polyMesh/boundary.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/polyMesh/faces.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/polyMesh/neighbour.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/polyMesh/owner.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/polyMesh/points.gz
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/multiPoint/system/optimisationDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/U
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/Ua
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/nuTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/nuaTilda
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/nut
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/p
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/0/pa
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/Allclean
create mode 100755 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/Allrun
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/constant/adjointRASProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/constant/dynamicMeshDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/constant/transportProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/constant/turbulenceProperties
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/system/controlDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/system/decomposeParDict
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/system/fvSchemes
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/system/fvSolution
create mode 100644 tutorials/incompressible/adjointOptimisationFoam/sbend/turbulent/lowRe/singlePoint/system/optimisationDict
diff --git a/applications/solvers/incompressible/adjointOptimisationFoam/Make/files b/applications/solvers/incompressible/adjointOptimisationFoam/Make/files
new file mode 100644
index 0000000000..3734dc051c
--- /dev/null
+++ b/applications/solvers/incompressible/adjointOptimisationFoam/Make/files
@@ -0,0 +1,3 @@
+adjointOptimisationFoam.C
+
+EXE = $(FOAM_APPBIN)/adjointOptimisationFoam
diff --git a/applications/solvers/incompressible/adjointOptimisationFoam/Make/options b/applications/solvers/incompressible/adjointOptimisationFoam/Make/options
new file mode 100644
index 0000000000..f45d173cbf
--- /dev/null
+++ b/applications/solvers/incompressible/adjointOptimisationFoam/Make/options
@@ -0,0 +1,21 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+ -I$(LIB_SRC)/transportModels \
+ -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+ -I$(LIB_SRC)/optimisation/adjointOptimisation/adjoint/lnInclude
+
+
+EXE_LIBS = \
+ -lfiniteVolume \
+ -lfvOptions \
+ -lmeshTools \
+ -lsampling \
+ -lturbulenceModels \
+ -lincompressibleTurbulenceModels \
+ -lincompressibleTransportModels \
+ -ladjointOptimisation
diff --git a/applications/solvers/incompressible/adjointOptimisationFoam/adjointOptimisationFoam.C b/applications/solvers/incompressible/adjointOptimisationFoam/adjointOptimisationFoam.C
new file mode 100644
index 0000000000..683bc95133
--- /dev/null
+++ b/applications/solvers/incompressible/adjointOptimisationFoam/adjointOptimisationFoam.C
@@ -0,0 +1,87 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2019 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ | Copyright (C) 2007-2019 PCOpt/NTUA
+ | Copyright (C) 2013-2019 FOSS GP
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Application
+ adjointOptimisation
+
+Description
+ An automated adjoint-based optimisation loop. Supports multiple types
+ of optimisation (shape, topology etc)
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "optimisationManager.H"
+#include "primalSolver.H"
+#include "adjointSolverManager.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "setRootCase.H"
+ #include "createTime.H"
+ #include "createMesh.H"
+ #include "createFields.H"
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+ Info<< "\nStarting time loop\n" << endl;
+
+ for (om++; !om.end(); om++)
+ {
+ Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
+ Info<< "Time = " << runTime.timeName() << endl;
+ Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
+
+ if (om.update())
+ {
+ // Update design variables and solve all primal equations
+ om.updateDesignVariables();
+ }
+ else
+ {
+ // Solve all primal equations
+ om.solvePrimalEquations();
+ }
+
+ // Update primal-based quantities of the adjoint solvers
+ om.updatePrimalBasedQuantities();
+
+ // Solve all adjoint equations
+ om.solveAdjointEquations();
+
+ // Compute all sensitivities
+ om.computeSensitivities();
+ }
+ Info<< "End\n" << endl;
+
+ return(0);
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/incompressible/adjointOptimisationFoam/createFields.H b/applications/solvers/incompressible/adjointOptimisationFoam/createFields.H
new file mode 100644
index 0000000000..637b683faf
--- /dev/null
+++ b/applications/solvers/incompressible/adjointOptimisationFoam/createFields.H
@@ -0,0 +1,6 @@
+ // Construct optimisation manager
+ autoPtr optManagerPtr
+ (
+ optimisationManager::New(mesh)
+ );
+ optimisationManager& om = optManagerPtr();
diff --git a/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/files b/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/files
new file mode 100644
index 0000000000..0d733c0656
--- /dev/null
+++ b/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/files
@@ -0,0 +1,3 @@
+computeSensitivities.C
+
+EXE = $(FOAM_APPBIN)/computeSensitivities
diff --git a/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/options b/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/options
new file mode 100644
index 0000000000..48d2719706
--- /dev/null
+++ b/applications/utilities/postProcessing/optimisation/computeSensitivities/Make/options
@@ -0,0 +1,23 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+ -I$(LIB_SRC)/fvOptions/lnInclude \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/sampling/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+ -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+ -I$(LIB_SRC)/transportModels \
+ -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+ -I$(LIB_SRC)/optimisation/adjointOptimisation/adjoint/lnInclude
+
+
+EXE_LIBS = \
+ -lfiniteVolume \
+ -lfvOptions \
+ -lmeshTools \
+ -lsampling \
+ -lturbulenceModels \
+ -lincompressibleTransportModels \
+ -lincompressibleTurbulenceModels \
+ -lfileFormats \
+ -lsurfMesh \
+ -ladjointOptimisation
diff --git a/applications/utilities/postProcessing/optimisation/computeSensitivities/computeSensitivities.C b/applications/utilities/postProcessing/optimisation/computeSensitivities/computeSensitivities.C
new file mode 100644
index 0000000000..cc915c5eed
--- /dev/null
+++ b/applications/utilities/postProcessing/optimisation/computeSensitivities/computeSensitivities.C
@@ -0,0 +1,76 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2019 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ | Copyright (C) 2007-2019 PCOpt/NTUA
+ | Copyright (C) 2013-2019 FOSS GP
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Application
+ computeSensitivities
+
+Description
+ Computes the sensitivities wrt what is defined in the optimisationDict
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "optimisationManager.H"
+#include "primalSolver.H"
+#include "adjointSolver.H"
+#include "incompressibleVars.H"
+#include "incompressibleAdjointVars.H"
+#include "adjointBoundaryCondition.H"
+#include "adjointSolverManager.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ #include "setRootCase.H"
+ #include "createTime.H"
+ #include "createMesh.H"
+ #include "createFields.H"
+
+ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ forAll(adjointSolverManagers, amI)
+ {
+ PtrList& adjointSolvers =
+ adjointSolverManagers[amI].adjointSolvers();
+ forAll(adjointSolvers, asI)
+ {
+ adjointSolvers[asI].getObjectiveManager().updateAndWrite();
+ adjointSolvers[asI].computeObjectiveSensitivities();
+ }
+ }
+
+ Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+ << " ClockTime = " << runTime.elapsedClockTime() << " s"
+ << nl << endl;
+
+ Info<< "End" << endl;
+
+ return(0);
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/optimisation/computeSensitivities/createFields.H b/applications/utilities/postProcessing/optimisation/computeSensitivities/createFields.H
new file mode 100644
index 0000000000..6c87fffe1c
--- /dev/null
+++ b/applications/utilities/postProcessing/optimisation/computeSensitivities/createFields.H
@@ -0,0 +1,9 @@
+// Construct optimisation manager
+autoPtr optManagerPtr
+(
+ optimisationManager::New(mesh)
+);
+optimisationManager& om = optManagerPtr();
+
+PtrList& adjointSolverManagers =
+ om.adjointSolverManagers();
diff --git a/bin/tools/CleanFunctions b/bin/tools/CleanFunctions
index d05354592b..c7f9b658f1 100644
--- a/bin/tools/CleanFunctions
+++ b/bin/tools/CleanFunctions
@@ -73,6 +73,13 @@ cleanSnappyFiles()
}
+cleanOptimisation()
+{
+ rm -rf optimisation
+ rm -rf constant/controlPoints
+}
+
+
cleanPostProcessing()
{
rm -rf Ensight EnSight ensightWrite insitu VTK > /dev/null 2>&1
@@ -87,6 +94,7 @@ cleanCase()
cleanTimeDirectories
cleanPostProcessing
cleanDynamicCode
+ cleanOptimisation
rm -rf processor* > /dev/null 2>&1
rm -rf TDAC > /dev/null 2>&1
diff --git a/src/Allwmake b/src/Allwmake
index c693a09ba7..f3c927a490 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -107,6 +107,7 @@ wmake $targetType rigidBodyDynamics
wmake $targetType rigidBodyMeshMotion
wmake $targetType semiPermeableBaffle
wmake $targetType atmosphericModels
+wmake $targetType optimisation/adjointOptimisation/adjoint
phaseSystemModels/Allwmake $targetType $*
diff --git a/src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModel.C b/src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModel.C
new file mode 100644
index 0000000000..775f83ed7d
--- /dev/null
+++ b/src/optimisation/adjointOptimisation/adjoint/ATCModel/ATCModel/ATCModel.C
@@ -0,0 +1,263 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2019 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ | Copyright (C) 2007-2019 PCOpt/NTUA
+ | Copyright (C) 2013-2019 FOSS GP
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "ATCModel.H"
+#include "localMin.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(ATCModel, 0);
+defineRunTimeSelectionTable(ATCModel, dictionary);
+
+// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
+
+void ATCModel::computeLimiter()
+{
+ computeLimiter(ATClimiter_, zeroATCcells_->getZeroATCcells(), nSmooth_);
+}
+
+
+void ATCModel::smoothATC()
+{
+ ATC_ *= ATClimiter_;
+ DebugInfo<<
+ "max ATC mag " << gMax(ATC_) << endl;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+ATCModel::ATCModel
+(
+ const fvMesh& mesh,
+ const incompressibleVars& primalVars,
+ const incompressibleAdjointVars& adjointVars,
+ const dictionary& dict
+)
+:
+ regIOobject
+ (
+ IOobject
+ (
+ "ATCModel" + adjointVars.solverName(),
+ mesh.time().timeName(),
+ mesh,
+ IOobject::NO_READ,
+ IOobject::NO_WRITE
+ )
+ ),
+ mesh_(mesh),
+ primalVars_(primalVars),
+ adjointVars_(adjointVars),
+ dict_(dict),
+ extraConvection_(dict_.lookupOrDefault("extraConvection", Zero)),
+ extraDiffusion_(dict_.lookupOrDefault("extraDiffusion", Zero)),
+ nSmooth_(dict_.lookupOrDefault