From 90afa6ddb5d397b6863fb2ffdbbde94e62325da4 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Tue, 1 Dec 2015 10:05:44 +0000
Subject: [PATCH] adjointShapeOptimizationFoam: Added support for fvOptions

---
 .../adjointShapeOptimizationFoam/Make/options  |  6 ++++--
 .../adjointShapeOptimizationFoam.C             | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
index d33d199f06e..690caa73743 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options
@@ -5,11 +5,13 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/fvOptions/lnInclude
 
 EXE_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lincompressibleTransportModels \
     -lfiniteVolume \
-    -lmeshTools
+    -lmeshTools \
+    -lfvOptions
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
index f57f444121b..75c706137d6 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C
@@ -49,6 +49,7 @@ Description
 #include "singlePhaseTransportModel.H"
 #include "turbulentTransportModel.H"
 #include "simpleControl.H"
+#include "fvIOoptionList.H"
 
 template<class Type>
 void zeroCells
@@ -76,9 +77,12 @@ int main(int argc, char *argv[])
     simpleControl simple(mesh);
 
     #include "createFields.H"
+    #include "createFvOptions.H"
     #include "initContinuityErrs.H"
     #include "initAdjointContinuityErrs.H"
 
+    turbulence->validate();
+
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
@@ -108,12 +112,18 @@ int main(int argc, char *argv[])
                 fvm::div(phi, U)
               + turbulence->divDevReff(U)
               + fvm::Sp(alpha, U)
+             ==
+                fvOptions(U)
             );
 
             UEqn().relax();
 
+            fvOptions.constrain(UEqn());
+
             solve(UEqn() == -fvc::grad(p));
 
+            fvOptions.correct(U);
+
             volScalarField rAU(1.0/UEqn().A());
             volVectorField HbyA("HbyA", U);
             HbyA = rAU*UEqn().H();
@@ -150,6 +160,7 @@ int main(int argc, char *argv[])
             // Momentum corrector
             U = HbyA - rAU*fvc::grad(p);
             U.correctBoundaryConditions();
+            fvOptions.correct(U);
         }
 
         // Adjoint Pressure-velocity SIMPLE corrector
@@ -173,12 +184,18 @@ int main(int argc, char *argv[])
               - adjointTransposeConvection
               + turbulence->divDevReff(Ua)
               + fvm::Sp(alpha, Ua)
+             ==
+                fvOptions(Ua)
             );
 
             UaEqn().relax();
 
+            fvOptions.constrain(UaEqn());
+
             solve(UaEqn() == -fvc::grad(pa));
 
+            fvOptions.correct(Ua);
+
             volScalarField rAUa(1.0/UaEqn().A());
             volVectorField HbyAa("HbyAa", Ua);
             HbyAa = rAUa*UaEqn().H();
@@ -215,6 +232,7 @@ int main(int argc, char *argv[])
             // Adjoint momentum corrector
             Ua = HbyAa - rAUa*fvc::grad(pa);
             Ua.correctBoundaryConditions();
+            fvOptions.correct(Ua);
         }
 
         laminarTransport.correct();
-- 
GitLab