diff --git a/applications/solvers/compressible/sonicFoam/EEqn.H b/applications/solvers/compressible/sonicFoam/EEqn.H index f10474c587a613234d00de80db37832696fcc36c..73ce8373964bb4226e3ebc575834f05f7fb91936 100644 --- a/applications/solvers/compressible/sonicFoam/EEqn.H +++ b/applications/solvers/compressible/sonicFoam/EEqn.H @@ -1,11 +1,21 @@ { - solve + fvScalarMatrix EEqn ( fvm::ddt(rho, e) + fvm::div(phi, e) + fvc::ddt(rho, K) + fvc::div(phi, K) + fvc::div(fvc::absolute(phi/fvc::interpolate(rho), U), p, "div(phiv,p)") - fvm::laplacian(turbulence->alphaEff(), e) + == + fvOptions(rho, e) ); + EEqn.relax(); + + fvOptions.constrain(EEqn); + + EEqn.solve(); + + fvOptions.correct(e); + thermo.correct(); } diff --git a/applications/solvers/compressible/sonicFoam/Make/options b/applications/solvers/compressible/sonicFoam/Make/options index f9c097c87482261e6fb2b54448d52c6e540f18b0..b1663bb8243cdfa06262d92f46b1dceeaf93011d 100644 --- a/applications/solvers/compressible/sonicFoam/Make/options +++ b/applications/solvers/compressible/sonicFoam/Make/options @@ -1,6 +1,10 @@ EXE_INC = \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ @@ -9,5 +13,7 @@ EXE_LIBS = \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ -lcompressibleLESModels \ - -lfiniteVolume \ - -lmeshTools + -lmeshTools \ + -lsampling \ + -lfvOptions \ + -lfiniteVolume diff --git a/applications/solvers/compressible/sonicFoam/UEqn.H b/applications/solvers/compressible/sonicFoam/UEqn.H index c002490b483b8d632480062c82845108d087e588..c4065161fe2c5ef587e1388b078f0fb59a8efb46 100644 --- a/applications/solvers/compressible/sonicFoam/UEqn.H +++ b/applications/solvers/compressible/sonicFoam/UEqn.H @@ -3,7 +3,18 @@ fvVectorMatrix UEqn fvm::ddt(rho, U) + fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + fvOptions(rho, U) ); -solve(UEqn == -fvc::grad(p)); -K = 0.5*magSqr(U); +UEqn.relax(); + +fvOptions.constrain(UEqn); + +if (pimple.momentumPredictor()) +{ + solve(UEqn == -fvc::grad(p)); + + fvOptions.correct(U); + K = 0.5*magSqr(U); +} diff --git a/applications/solvers/compressible/sonicFoam/pEqn.H b/applications/solvers/compressible/sonicFoam/pEqn.H index 022abc466aa1ea5c4d69c82c91b3321b90aa3d1f..693f9d60d3989924956e6614c24944fc4c987967 100644 --- a/applications/solvers/compressible/sonicFoam/pEqn.H +++ b/applications/solvers/compressible/sonicFoam/pEqn.H @@ -16,6 +16,8 @@ surfaceScalarField phid ) ); +fvOptions.makeRelative(fvc::interpolate(psi), phid); + // Non-orthogonal pressure corrector loop while (pimple.correctNonOrthogonal()) { @@ -24,8 +26,12 @@ while (pimple.correctNonOrthogonal()) fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rhorAUf, p) + == + fvOptions(psi, p, rho.name()) ); + fvOptions.constrain(pEqn); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) @@ -39,4 +45,5 @@ while (pimple.correctNonOrthogonal()) U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); +fvOptions.correct(U); K = 0.5*magSqr(U); diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options index 263b9861edb4f2a86bc3908ab378ee0ea974dddb..d374c75059693393ba81b48e3541dcebc28ea05a 100644 --- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options +++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options @@ -1,10 +1,13 @@ EXE_INC = \ -I.. \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude + -I$(LIB_SRC)/dynamicMesh/lnInclude EXE_LIBS = \ -lfluidThermophysicalModels \ @@ -12,6 +15,8 @@ EXE_LIBS = \ -lcompressibleTurbulenceModel \ -lcompressibleRASModels \ -lcompressibleLESModels \ + -lmeshTools \ + -lsampling \ + -lfvOptions \ -lfiniteVolume \ - -ldynamicMesh \ - -lmeshTools + -ldynamicMesh diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H index b375f0e82a65794d6cfd8a7a04a7c6c140077b72..76e2a09a8f389f53d4f76ff3835951be6bf20570 100644 --- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H +++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H @@ -19,6 +19,7 @@ surfaceScalarField phid ); fvc::makeRelative(phid, psi, U); +fvOptions.makeRelative(fvc::interpolate(psi), phid); for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { @@ -27,8 +28,12 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rhorAUf, p) + == + fvOptions(psi, p, rho.name()) ); + fvOptions.constrain(pEqn); + pEqn.solve(); phi = pEqn.flux(); @@ -38,6 +43,8 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) U = HbyA - rAU*fvc::grad(p); U.correctBoundaryConditions(); +fvOptions.correct(U); +K = 0.5*magSqr(U); { rhoUf = fvc::interpolate(rho*U); diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C index 62d4716fb5a70691651f5304e4fb4adcfabf165a..746f95d97c1e868a08675162ed07cca64d7cd100 100644 --- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,6 +35,7 @@ Description #include "turbulenceModel.H" #include "motionSolver.H" #include "pimpleControl.H" +#include "fvIOoptionList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,6 +45,7 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" + #include "createFvOptions.H" #include "createRhoUf.H" #include "initContinuityErrs.H" diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C index 71d032d4223486a92ecdde1acdcd0a533fb5397a..04aab1d0d4315ba4b7d937245c728187d1202b53 100644 --- a/applications/solvers/compressible/sonicFoam/sonicFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,6 +34,7 @@ Description #include "psiThermo.H" #include "turbulenceModel.H" #include "pimpleControl.H" +#include "fvIOoptionList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -43,6 +44,7 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" + #include "createFvOptions.H" #include "initContinuityErrs.H" pimpleControl pimple(mesh); diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H index b7a816fe4e6fee4e560ae25193f4582640d1bfd6..e264660cf47c3b3014ec7b4099fb83e704ad29af 100644 --- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H +++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H @@ -1,5 +1,5 @@ { -# include "rhoEqn.H" + solve(fvm::ddt(rho) + fvc::div(phi)); } { scalar sumLocalContErr = diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C index eb0a4a0d9a23f9793aa03cc0f5792171b202fefc..acfb4d3b80f79c1e5a93aba7356b7d329cf334d3 100644 --- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C +++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) #include "readTimeControls.H" #include "compressibleCourantNo.H" - #include "rhoEqn.H" + solve(fvm::ddt(rho) + fvc::div(phi)); // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) diff --git a/src/finiteVolume/cfdTools/compressible/rhoEqn.H b/src/finiteVolume/cfdTools/compressible/rhoEqn.H index 25ccb85aac6ce2a9c4d7de7b797fcbc063bf79f4..353d027e97ca44e38c8c72912e404c60640c75c0 100644 --- a/src/finiteVolume/cfdTools/compressible/rhoEqn.H +++ b/src/finiteVolume/cfdTools/compressible/rhoEqn.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -30,7 +30,19 @@ Description \*---------------------------------------------------------------------------*/ { - solve(fvm::ddt(rho) + fvc::div(phi)); + fvScalarMatrix rhoEqn + ( + fvm::ddt(rho) + + fvc::div(phi) + == + fvOptions(rho) + ); + + fvOptions.constrain(rhoEqn); + + rhoEqn.solve(); + + fvOptions.correct(rho); } // ************************************************************************* //