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