diff --git a/applications/solvers/combustion/PDRFoam/PDRFoam.C b/applications/solvers/combustion/PDRFoam/PDRFoam.C index 2f11a8db1ac8ba5cf83e0bce16176ea7fff2c600..a213c9f96877d641be7b259174c278088b9799e6 100644 --- a/applications/solvers/combustion/PDRFoam/PDRFoam.C +++ b/applications/solvers/combustion/PDRFoam/PDRFoam.C @@ -64,6 +64,7 @@ Description #include "ignition.H" #include "Switch.H" #include "bound.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -81,6 +82,8 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" + pimpleControl pimple(mesh); + scalar StCoNum = 0.0; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -90,7 +93,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPISOControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" @@ -98,26 +100,34 @@ int main(int argc, char *argv[]) Info<< "\n\nTime = " << runTime.timeName() << endl; #include "rhoEqn.H" - #include "UEqn.H" - // --- PISO loop - for (int corr=1; corr<=nCorr; corr++) + // --- Pressure-velocity PIMPLE corrector loop + for (pimple.start(); pimple.loop(); pimple++) { - #include "bEqn.H" - #include "ftEqn.H" - #include "huEqn.H" - #include "hEqn.H" + #include "UEqn.H" - if (!ign.ignited()) + // --- PISO loop + for (int corr=1; corr<=pimple.nCorr(); corr++) { - hu == h; + #include "bEqn.H" + #include "ftEqn.H" + #include "huEqn.H" + #include "hEqn.H" + + if (!ign.ignited()) + { + hu == h; + } + + #include "pEqn.H" } - #include "pEqn.H" + if (pimple.turbCorr()) + { + turbulence->correct(); + } } - turbulence->correct(); - runTime.write(); Info<< "\nExecutionTime = " diff --git a/applications/solvers/combustion/PDRFoam/UEqn.H b/applications/solvers/combustion/PDRFoam/UEqn.H index deb00a312108fea2b9f9f5414452415e06910f76..70912c7cfae08052593d297d0bdf6d7e19f396d6 100644 --- a/applications/solvers/combustion/PDRFoam/UEqn.H +++ b/applications/solvers/combustion/PDRFoam/UEqn.H @@ -9,7 +9,7 @@ volSymmTensorField invA(inv(I*UEqn.A() + drag->Dcu())); - if (momentumPredictor) + if (pimple.momentumPredictor()) { U = invA & (UEqn.H() - betav*fvc::grad(p)); U.correctBoundaryConditions(); diff --git a/applications/solvers/combustion/PDRFoam/pEqn.H b/applications/solvers/combustion/PDRFoam/pEqn.H index 9488e60e728edb19998db71f3a94e211508bdd9b..3c6a6341f9dd55765189db50542f413ce38f6bee 100644 --- a/applications/solvers/combustion/PDRFoam/pEqn.H +++ b/applications/solvers/combustion/PDRFoam/pEqn.H @@ -3,7 +3,7 @@ rho = thermo.rho(); volScalarField rAU(1.0/UEqn.A()); U = invA & UEqn.H(); -if (transonic) +if (pimple.transonic()) { surfaceScalarField phid ( @@ -15,7 +15,7 @@ if (transonic) ) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -24,9 +24,12 @@ if (transonic) - fvm::laplacian(rho*invA, p) ); - pEqn.solve(); + pEqn.solve + ( + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) + ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -41,7 +44,7 @@ else + fvc::ddtPhiCorr(rAU, rho, U, phi) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -50,9 +53,12 @@ else - fvm::laplacian(rho*invA, p) ); - pEqn.solve(); + pEqn.solve + ( + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) + ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += pEqn.flux(); } diff --git a/applications/solvers/combustion/XiFoam/XiFoam.C b/applications/solvers/combustion/XiFoam/XiFoam.C index 26c1cbd0603827077b020114091e0096e6e16246..fc3658269a2671f771a84b05e3717121541250e3 100644 --- a/applications/solvers/combustion/XiFoam/XiFoam.C +++ b/applications/solvers/combustion/XiFoam/XiFoam.C @@ -88,10 +88,11 @@ int main(int argc, char *argv[]) runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; + #include "rhoEqn.H" + // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - #include "rhoEqn.H" #include "UEqn.H" #include "ftEqn.H" @@ -110,7 +111,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } rho = thermo.rho(); diff --git a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C index 89cc360d9f3bd80f33460dcd962990d22be50ef7..bb1f3f201820e06898a7958526ef91304ffa1c0e 100644 --- a/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C +++ b/applications/solvers/combustion/coldEngineFoam/coldEngineFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,6 +35,7 @@ Description #include "basicPsiThermo.H" #include "turbulenceModel.H" #include "OFstream.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -51,13 +52,14 @@ int main(int argc, char *argv[]) #include "setInitialDeltaT.H" #include "startSummary.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { - #include "readPISOControls.H" #include "readEngineTimeControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" @@ -71,17 +73,24 @@ int main(int argc, char *argv[]) #include "rhoEqn.H" - #include "UEqn.H" - - // --- PISO loop - for (int corr=1; corr<=nCorr; corr++) + // --- Pressure-velocity PIMPLE corrector loop + for (pimple.start(); pimple.loop(); pimple++) { - #include "hEqn.H" - #include "pEqn.H" + #include "UEqn.H" + + // --- PISO loop + for (int corr=1; corr<=pimple.nCorr(); corr++) + { + #include "hEqn.H" + #include "pEqn.H" + } + + if (pimple.turbCorr()) + { + turbulence->correct(); + } } - turbulence->correct(); - runTime.write(); #include "logSummary.H" diff --git a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C index 467f7ef9d717082c2698261a45977068b73aaebe..94ab9289994012cf5e2a769e94826aecaf59c5b7 100644 --- a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C +++ b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C @@ -79,10 +79,6 @@ int main(int argc, char *argv[]) Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl; mesh.move(); - const_cast<volPointInterpolation&> - ( - volPointInterpolation::New(mesh) - ).updateMesh(); dieselSpray.evolve(); @@ -122,9 +118,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } #include "logSummary.H" #include "spraySummary.H" diff --git a/applications/solvers/combustion/dieselFoam/dieselFoam.C b/applications/solvers/combustion/dieselFoam/dieselFoam.C index 35d3a304b2626352b523873d102461153ea068fd..7fd74102476c6aab20528e167dfc4ec0b152d2db 100644 --- a/applications/solvers/combustion/dieselFoam/dieselFoam.C +++ b/applications/solvers/combustion/dieselFoam/dieselFoam.C @@ -101,6 +101,7 @@ int main(int argc, char *argv[]) #include "rhoEqn.H" + // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { #include "UEqn.H" @@ -112,9 +113,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } #include "spraySummary.H" diff --git a/applications/solvers/combustion/engineFoam/UEqn.H b/applications/solvers/combustion/engineFoam/UEqn.H index 64dd52b1b0afbbf85882edd8431528f6b17c7a36..eff9e1a5d288a5ffde71f0d800bba9dc80095784 100644 --- a/applications/solvers/combustion/engineFoam/UEqn.H +++ b/applications/solvers/combustion/engineFoam/UEqn.H @@ -5,7 +5,7 @@ + turbulence->divDevRhoReff(U) ); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/combustion/engineFoam/engineFoam.C b/applications/solvers/combustion/engineFoam/engineFoam.C index 4fedd9b92cefe16d2acc4ed8e9a913a2989e5a59..b92da02651769de96f17ebbebd16093536bc4317 100644 --- a/applications/solvers/combustion/engineFoam/engineFoam.C +++ b/applications/solvers/combustion/engineFoam/engineFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -58,6 +58,7 @@ Description #include "Switch.H" #include "OFstream.H" #include "mathematicalConstants.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -75,13 +76,14 @@ int main(int argc, char *argv[]) #include "setInitialDeltaT.H" #include "startSummary.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { - #include "readPISOControls.H" #include "readEngineTimeControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" @@ -94,11 +96,11 @@ int main(int argc, char *argv[]) #include "rhoEqn.H" - #include "UEqn.H" - - // --- PISO loop - for (int corr=1; corr<=nCorr; corr++) + // --- Pressure-velocity PIMPLE corrector loop + for (pimple.start(); pimple.loop(); pimple++) { + #include "UEqn.H" + #include "ftEqn.H" #include "bEqn.H" #include "huEqn.H" @@ -109,10 +111,17 @@ int main(int argc, char *argv[]) hu == h; } - #include "pEqn.H" - } + // --- PISO loop + for (int corr=1; corr<=pimple.nCorr(); corr++) + { + #include "pEqn.H" + } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } #include "logSummary.H" diff --git a/applications/solvers/combustion/engineFoam/pEqn.H b/applications/solvers/combustion/engineFoam/pEqn.H index 78a90c2357dbad0058e03228d2b35584efa0313e..1b75a933981097bd18a08945374f155caf667d2a 100644 --- a/applications/solvers/combustion/engineFoam/pEqn.H +++ b/applications/solvers/combustion/engineFoam/pEqn.H @@ -3,7 +3,7 @@ rho = thermo.rho(); volScalarField rAU(1.0/UEqn.A()); U = rAU*UEqn.H(); -if (transonic) +if (pimple.transonic()) { surfaceScalarField phid ( @@ -12,18 +12,21 @@ if (transonic) *((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( fvm::ddt(psi, p) - + fvm::div(phid, p, "div(phid,p)") + + fvm::div(phid, p) - fvm::laplacian(rho*rAU, p) ); - pEqn.solve(); + pEqn.solve + ( + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) + ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -34,7 +37,7 @@ else phi = fvc::interpolate(rho) *((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -43,9 +46,12 @@ else - fvm::laplacian(rho*rAU, p) ); - pEqn.solve(); + pEqn.solve + ( + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) + ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += pEqn.flux(); } diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C index 4bef0f80eac0f73b73955696e0c6135ea21fac9b..a517eccde11383f0a6f4215df73f821917d55405 100644 --- a/applications/solvers/combustion/fireFoam/fireFoam.C +++ b/applications/solvers/combustion/fireFoam/fireFoam.C @@ -81,9 +81,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } rho = thermo.rho(); diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C index 14539b6fe6af29923efcf44f3440860ba5a8fd40..ca156c3f7f305814548a1cfe97c372f9a3b0da92 100644 --- a/applications/solvers/combustion/reactingFoam/reactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C @@ -81,9 +81,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } if (runTime.write()) { diff --git a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C index 539fe9d9386e435be056676e316fef22ae920c3e..9c22e63c51188674a5ea8d4ccb608b38e712ec93 100644 --- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C @@ -83,9 +83,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } rho = thermo.rho(); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 746fb1224f42a39aa33837295a21184fef8d4773..a5e92c84795d456eff105e3b35ce7516656fedd4 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -83,7 +83,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write(); diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C index 5195655a339a464b4e1c78f6ed0a0d4d3703cd43..ad9e04cc7ea30242703e83bfc94eef4e937ab15f 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C @@ -88,7 +88,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write(); diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C index adb08c1ee5bc7d8de620ff52a17bd0f204b487a7..ce177dfeb9d5dea922e221c818eb8bd37855cc5d 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C @@ -95,7 +95,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write(); diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C index ca7724f101e852700834c0d1a91b114a49bb4213..3c3eb76ac012d8be95428c832cf7ae13b60584cf 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C @@ -88,11 +88,14 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); - - rho = thermo.rho(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } + rho = thermo.rho(); + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C index 6b5901eac869e3a2177f2597bc887658cbf3f5e0..3bedfc756dcf9b15b235af3d25e8b155651e2728 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C @@ -101,7 +101,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write(); diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index 215947c1e856a2cc1fb6603a2ef19bc66797fcb5..8d7bcc372dde96000fbb7435cf50ab2ea3115692 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C @@ -79,7 +79,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write(); diff --git a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C index f3131fbf632ecb94c57a8de4e748b193c10d8b31..a86a3977b389f7b5f8ec7b46229809d789f206b5 100644 --- a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C +++ b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C @@ -57,6 +57,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" + // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { surfaceScalarField phiv("phiv", phi/fvc::interpolate(h)); diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C index ac0cfb7cf8def8cbf389d0852b345aa703f8d614..3d0eabcef8e21afc2ede2401710d3b26a3531ee4 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C +++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C @@ -103,9 +103,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } rho = thermo.rho(); diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/UEqn.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/UEqn.H index 35394576f88444c04d1cc5bff18a5af86b20c0cf..e52431f1e883cb473f47fc4fa52f5b6815304ecf 100644 --- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/UEqn.H +++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/UEqn.H @@ -12,7 +12,7 @@ pZones.addResistance(UEqn); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H index 27921d63965223990739deb9019a046d59232737..63d746fe79fdf811e7e393b502803c50d140b377 100644 --- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H @@ -32,7 +32,7 @@ + massSource.SuTot() ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -42,17 +42,10 @@ pEqn.solve ( - mesh.solver - ( - p.select - ( - corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += pEqn.flux(); } diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C index 35dfc7e616fd1a27e4aa2057145ce270ede472e4..638d83da0c7d8681f62e8727e21ba0b7fc750fe9 100644 --- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C +++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,6 +49,7 @@ Description #include "porousZones.H" #include "timeActivatedExplicitSource.H" #include "SLGThermo.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -70,6 +71,8 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -77,7 +80,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPISOControls.H" #include "readAdditionalSolutionControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" @@ -90,18 +92,26 @@ int main(int argc, char *argv[]) #include "chemistry.H" #include "rhoEqn.H" - #include "UEqn.H" - #include "YEqn.H" - #include "hsEqn.H" - // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + // --- Pressure-velocity PIMPLE corrector loop + for (pimple.start(); pimple.loop(); pimple++) { - #include "pEqn.H" + #include "UEqn.H" + #include "YEqn.H" + #include "hsEqn.H" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } + + if (pimple.turbCorr()) + { + turbulence->correct(); + } } - turbulence->correct(); - rho = thermo.rho(); if (runTime.write()) diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C index 6d0a023ef037137bb233b078e4728d4ab3f8d7b2..6ae930c7a72da80de68ec6cfd1aeb3ed5baefcf6 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C @@ -98,9 +98,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } rho = thermo.rho(); diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index 0525585c171143005f4a85279aac2c6b8b0fa2dc..ae2a06a363b2ff893a0faef9c3b73c3270060535 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -92,11 +92,14 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); - - rho = thermo.rho(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } + rho = thermo.rho(); + if (runTime.write()) { chemistry.dQ()().write(); diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C index d0b15b3c11fde4dbe898add3012a1476b6ac7cfd..64eb38f71ef2f1699d4d3a08b77e4e7e3b049157 100644 --- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C +++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C @@ -78,9 +78,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C index 146293e72cac57f67d05734a50365f094bb65efb..d8204d7f2d939ab690526b9d9f3b0e3883e688e2 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C @@ -88,12 +88,15 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } + + if (pimple.turbCorr()) + { + turbulence->correct(); + } } rho = alpha1*rho1 + alpha2*rho2; - turbulence->correct(); - runTime.write(); Info<< "ExecutionTime = " diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C b/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C index 8eff1637e246e53000a13b54e2d0993311f8896a..14fa1cfe7a02eced973a78712f1f6cf56d5b09e9 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C +++ b/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C @@ -93,9 +93,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C index 5bda42694bb4e91e75c904abdc825c1594dda75e..84d6552f02aae5c5a9bc40cdb3443727ab7ea423 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C @@ -118,9 +118,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C index 8104cdde82641bf8b5685145af23df7714135298..d74283cea579bd7e43e897045c26a6a6930e44f0 100644 --- a/applications/solvers/multiphase/interFoam/interFoam.C +++ b/applications/solvers/multiphase/interFoam/interFoam.C @@ -93,9 +93,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C index 5059e5597337e5f74bce47c2f3acbbd4f958a146..2d1b874c15556363eed37c980af65b97522c196f 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C @@ -94,9 +94,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C index 496e2772ea8389731c11dced02ff438f258a730a..498d180aa0b178511e3f576be3f59e25340c865d 100644 --- a/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C +++ b/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C @@ -87,12 +87,15 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } + + if (pimple.turbCorr()) + { + turbulence->correct(); + } } #include "continuityErrs.H" - turbulence->correct(); - runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C index 85198665c6d1b6fc07bea8600e89e951486d34d8..e731c2579bbfc39f67018c17e7ffacf7c29a2de0 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C @@ -85,9 +85,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C index f9d92768ecac7e88d85f73bc4f8633edd7dd2327..533466ef1f674591eb2892ccd38e4add7fc9002b 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C @@ -82,9 +82,12 @@ int main(int argc, char *argv[]) { #include "pEqn.H" } - } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } + } runTime.write(); diff --git a/applications/solvers/multiphase/settlingFoam/settlingFoam.C b/applications/solvers/multiphase/settlingFoam/settlingFoam.C index ac45f62edf1b9c370e70b1e5f0943c4d76d365af..483cb276cdf402a260a7c47e7fd630d449adb9ce 100644 --- a/applications/solvers/multiphase/settlingFoam/settlingFoam.C +++ b/applications/solvers/multiphase/settlingFoam/settlingFoam.C @@ -81,7 +81,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - #include "kEpsilon.H" + if (pimple.turbCorr()) + { + #include "kEpsilon.H" + } } runTime.write(); diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C index 89ab5aebb3feff95ce18c0514d2865f500c9d988..39587a007bc322e721b4acb526fe5c837384d7c0 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C @@ -81,7 +81,10 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); + if (pimple.turbCorr()) + { + turbulence->correct(); + } } runTime.write();