diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options b/applications/solvers/incompressible/adjointShapeOptimizationFoam/Make/options index d33d199f06e1bd843ceb0cfe05c6e06f18615e61..690caa73743e983941761100693132d6aa32d478 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 f57f444121b7e21add1fcc5ae1fc3359b34aa3b7..75c706137d6086f04425829ee0eeeaeeaf8b8d87 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();