diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C index b498db2d9724944e33f5dcb69a30ef4e4be9c6e1..e2efee8f4586e147ed4d74cb4ec4d130260c87d1 100644 --- a/applications/solvers/basic/laplacianFoam/laplacianFoam.C +++ b/applications/solvers/basic/laplacianFoam/laplacianFoam.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 @@ -30,6 +30,7 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -41,17 +42,17 @@ int main(int argc, char *argv[]) #include "createMesh.H" #include "createFields.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nCalculating temperature distribution\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { solve ( diff --git a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C index ce5580d50bf50e7eb09adf91b4d176dcd0cf165f..3c0c0f3b14df2f5da120f34648723ab68eef78fc 100644 --- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C +++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.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 @@ -30,32 +30,30 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // int main(int argc, char *argv[]) { + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "createFields.H" -# include "setRootCase.H" + simpleControl simple(mesh); -# include "createTime.H" -# include "createMesh.H" -# include "createFields.H" - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nCalculating scalar transport\n" << endl; -# include "CourantNo.H" + #include "CourantNo.H" - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; -# include "readSIMPLEControls.H" - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { solve ( diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C index d2ef427e48b88ca8319d37be4b00ab1982d76477..4bef0f80eac0f73b73955696e0c6135ea21fac9b 100644 --- a/applications/solvers/combustion/fireFoam/fireFoam.C +++ b/applications/solvers/combustion/fireFoam/fireFoam.C @@ -59,11 +59,9 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPIMPLEControls.H" #include "readTimeControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; @@ -79,7 +77,7 @@ int main(int argc, char *argv[]) #include "fuhsEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/combustion/fireFoam/pEqn.H b/applications/solvers/combustion/fireFoam/pEqn.H index 64ebb1a97045b9c8c40fee0b7a755e80bbb222c2..6813950e19e9f2aaa48e3dc90e138fe3688350a5 100644 --- a/applications/solvers/combustion/fireFoam/pEqn.H +++ b/applications/solvers/combustion/fireFoam/pEqn.H @@ -15,7 +15,7 @@ surfaceScalarField phiU phi = phiU - rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf(); -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { surfaceScalarField rhorAUf(fvc::interpolate(rho*rAU)); @@ -28,18 +28,10 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += p_rghEqn.flux(); } diff --git a/applications/solvers/combustion/rhoReactingFoam/UEqn.H b/applications/solvers/combustion/rhoReactingFoam/UEqn.H index 9697c6e1ed2d0753f9c0803081cc6929050ef446..1e626d75b85f487ec98f31131f0c0370f8d639c1 100644 --- a/applications/solvers/combustion/rhoReactingFoam/UEqn.H +++ b/applications/solvers/combustion/rhoReactingFoam/UEqn.H @@ -9,7 +9,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/combustion/rhoReactingFoam/pEqn.H b/applications/solvers/combustion/rhoReactingFoam/pEqn.H index 7c227676eb6883aca9fcf4764cd21d73eca61657..724f45e18941daefd039fe397d1dcffcd8ef05a3 100644 --- a/applications/solvers/combustion/rhoReactingFoam/pEqn.H +++ b/applications/solvers/combustion/rhoReactingFoam/pEqn.H @@ -8,7 +8,7 @@ volScalarField rAU(1.0/UEqn.A()); U = rAU*UEqn.H(); - if (transonic) + if (pimple.transonic()) { surfaceScalarField phiv ( @@ -30,7 +30,7 @@ + correction(fvm::ddt(psi, p) + fvm::div(phid, p)) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -40,18 +40,10 @@ pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += pEqn.flux(); } @@ -72,7 +64,7 @@ + fvc::div(phi) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -82,18 +74,10 @@ pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C index 36329f1215ed5077ccacc8d5ad341194346bc2ef..539fe9d9386e435be056676e316fef22ae920c3e 100644 --- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C @@ -62,10 +62,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; @@ -81,7 +79,7 @@ int main(int argc, char *argv[]) #include "hsEqn.H" // --- PISO loop - for (int corr=1; corr<=nCorr; corr++) + for (int corr=1; corr<=pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/compressible/rhoPimpleFoam/UEqn.H b/applications/solvers/compressible/rhoPimpleFoam/UEqn.H index 27b06029b8841465d8775a4d9f9cba86332b57bc..03bc6e76e71dbb56da9d1771ba74519ce908e183 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/UEqn.H @@ -11,7 +11,7 @@ UEqn().relax(); volScalarField rAU(1.0/UEqn().A()); -if (momentumPredictor) +if (pimple.momentumPredictor()) { solve(UEqn() == -fvc::grad(p)); } diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H index b665c8fc624570dd98e3f21900e921733590b82c..eea0ea9bff880eb5cb957bd33afdd0587edb77a7 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H @@ -5,12 +5,12 @@ rho.relax(); U = rAU*UEqn().H(); -if (nCorr <= 1) +if (pimple.nCorr() <= 1) { UEqn.clear(); } -if (transonic) +if (pimple.transonic()) { surfaceScalarField phid ( @@ -22,7 +22,7 @@ if (transonic) ) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -33,18 +33,10 @@ if (transonic) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -59,7 +51,7 @@ else + fvc::ddtPhiCorr(rAU, rho, U, phi) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { // Pressure corrector fvScalarMatrix pEqn @@ -71,18 +63,10 @@ else pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 6db691f5edd7d432cd49977f2d242a4ac52a06f9..746fb1224f42a39aa33837295a21184fef8d4773 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -56,10 +56,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -70,7 +68,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); rho.storePrevIter(); @@ -80,7 +78,7 @@ int main(int argc, char *argv[]) #include "hEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C index 1ee1ed665ef8add20f04c147df4ad89b67576589..97cc2cc2560ed4f024a1fcf4c590b9ec3d634807 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/rhoPorousMRFLTSPimpleFoam.C @@ -50,14 +50,14 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPIMPLEControls.H" + + pimpleControl pimple(mesh); + #include "setInitialrDeltaT.H" #include "createFields.H" #include "createZones.H" #include "initContinuityErrs.H" - pimpleControl pimple(mesh); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -65,10 +65,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -81,7 +79,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); rho.storePrevIter(); @@ -93,7 +91,7 @@ int main(int argc, char *argv[]) #include "hEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H index 54652dd8edf9497e27892e9e90210d120731d09f..353abc83a34e28557d7dd7e335ecf770405ade60 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setInitialrDeltaT.H @@ -1,6 +1,6 @@ scalar maxDeltaT ( - pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT) + pimple.dict().lookupOrDefault<scalar>("maxDeltaT", GREAT) ); volScalarField rDeltaT diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H index 7cad4d26790c2f41fbcd9d1e88be691a652caebc..d56283d13f5a0c73157ef4d0209246d86220f13f 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H @@ -1,4 +1,6 @@ { + const dictionary& pimpleDict = pimple.dict(); + scalar maxCo ( pimpleDict.lookupOrDefault<scalar>("maxCo", 0.8) @@ -29,7 +31,7 @@ /((2*maxCo)*mesh.V()*rho.dimensionedInternalField()) ); - if (transonic) + if (pimple.transonic()) { surfaceScalarField phid ( diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H index 4efb76bd45b950ec6b0cf031ced774397ae0ae74..f3b115d0da67ed0eae06592db8a5dbabb3828071 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H @@ -15,7 +15,7 @@ pZones.addResistance(UEqn()); volScalarField rAU(1.0/UEqn().A()); -if (momentumPredictor) +if (pimple.momentumPredictor()) { solve(UEqn() == -fvc::grad(p)); } diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H index 32058ffa9e9f0e735a5bac5fa320abfa3ae86fb0..5e54f970cd5db9d6c630524b1381359b9afaf8db 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H @@ -6,12 +6,12 @@ rho.relax(); volScalarField rAU(1.0/UEqn().A()); U = rAU*UEqn().H(); -if (nCorr <= 1) +if (pimple.nCorr() <= 1) { UEqn.clear(); } -if (transonic) +if (pimple.transonic()) { surfaceScalarField phid ( @@ -24,7 +24,7 @@ if (transonic) ); mrfZones.relativeFlux(fvc::interpolate(psi), phid); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -35,18 +35,10 @@ if (transonic) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -62,7 +54,7 @@ else ); mrfZones.relativeFlux(fvc::interpolate(rho), phi); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { // Pressure corrector fvScalarMatrix pEqn @@ -74,18 +66,10 @@ else pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C index 0bce64d7a34ccffccb928dcbbfe0c1200f2cb964..5195655a339a464b4e1c78f6ed0a0d4d3703cd43 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C @@ -61,10 +61,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -75,7 +73,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); rho.storePrevIter(); @@ -85,7 +83,7 @@ int main(int argc, char *argv[]) #include "hEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H index 4574a096efe84d2264c578eb439d42d5e6f2a838..54af64c003e36af6fceb68487c0cbcc287a428f2 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H @@ -9,7 +9,7 @@ UEqn.clear(); bool closedVolume = false; -if (transonic) +if (simple.transonic()) { surfaceScalarField phid ( @@ -17,7 +17,7 @@ if (transonic) fvc::interpolate(psi)*(fvc::interpolate(U) & mesh.Sf()) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -32,7 +32,7 @@ if (transonic) pEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -43,7 +43,7 @@ else phi = fvc::interpolate(rho)*(fvc::interpolate(U) & mesh.Sf()); closedVolume = adjustPhi(phi, U, p); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -54,7 +54,7 @@ else pEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H index 44b391a7b5585edafef64da626d5ce1126c8d436..4fc258870b9a3b2225615659de250828a281f7fd 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H @@ -11,7 +11,7 @@ UEqn.clear(); bool closedVolume = false; -if (transonic) +if (simple.transonic()) { surfaceScalarField phid ( @@ -20,7 +20,7 @@ if (transonic) ); mrfZones.relativeFlux(fvc::interpolate(psi), phid); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { tmp<fvScalarMatrix> tpEqn; @@ -37,7 +37,7 @@ if (transonic) tpEqn().solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi == tpEqn().flux(); } @@ -50,7 +50,7 @@ else closedVolume = adjustPhi(phi, U, p); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { tmp<fvScalarMatrix> tpEqn; @@ -67,7 +67,7 @@ else tpEqn().solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= tpEqn().flux(); } diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C index 83898240ffc4017e79fb7822e073c6a9e9467777..e210e971ca99ba09d4e77c6b1f386ad59c9b7a27 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C @@ -36,6 +36,7 @@ Description #include "RASModel.H" #include "MRFZones.H" #include "thermalPorousZones.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,16 +49,16 @@ int main(int argc, char *argv[]) #include "createZones.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); rho.storePrevIter(); diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C index a8ddcbeb6cda6e976a8f732ef651f1bdd1730822..63b6586cb4054dc62480d938096918771a5b304d 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.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 @@ -33,6 +33,7 @@ Description #include "fvCFD.H" #include "basicPsiThermo.H" #include "RASModel.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,16 +45,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); rho.storePrevIter(); diff --git a/applications/solvers/compressible/rhoSimplecFoam/pEqn.H b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H index 36b77f039956ad5e23c54f1cfa49ae7955ed482b..9eb783feca8c20db5ee1e61542dfc74b95a7e9ec 100644 --- a/applications/solvers/compressible/rhoSimplecFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H @@ -12,9 +12,9 @@ UEqn.clear(); bool closedVolume = false; -if (transonic) +if (simple.transonic()) { - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { surfaceScalarField phid ( @@ -54,7 +54,7 @@ if (transonic) pEqn.solve(); } - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi == phic + pEqn.flux(); } @@ -62,7 +62,7 @@ if (transonic) } else { - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { phi = fvc::interpolate(rho*U) & mesh.Sf(); closedVolume = adjustPhi(phi, U, p); @@ -88,7 +88,7 @@ else } - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi += pEqn.flux(); } @@ -119,7 +119,7 @@ rho = thermo.rho(); rho = max(rho, rhoMin); rho = min(rho, rhoMax); -if (!transonic) +if (!simple.transonic()) { rho.relax(); } diff --git a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C index c804e4e45d89044bf48d5efd99e5f654003e0a27..13b8ebddc488d686f9cf60a498b57758ba1e93fe 100644 --- a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C +++ b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C @@ -35,6 +35,7 @@ Description #include "RASModel.H" #include "mixedFvPatchFields.H" #include "bound.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,20 +47,20 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); rho.storePrevIter(); - if (!transonic) + if (!simple.transonic()) { rho.storePrevIter(); } diff --git a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C index 151d17a398e40c074ef0423c916df97c3d621042..1ec8b860220e48b9b3515565f2b7c36042f5b97f 100644 --- a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C +++ b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -38,6 +38,7 @@ Description #include "OSspecific.H" #include "magnet.H" #include "electromagneticConstants.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -65,7 +66,8 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" - #include "readSIMPLEControls.H" + + simpleControl simple(mesh); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -73,7 +75,7 @@ int main(int argc, char *argv[]) runTime++; - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { solve(fvm::laplacian(murf, psi) + fvc::div(murf*Mrf)); } diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H index df6f90ac02944f97767b2cbab770338d3762de6e..07f46ec99825398ced8de01a55db2f2b9240ea9a 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/UEqn.H @@ -9,7 +9,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C index f5cd55daca6b9a5a4cf731b8200195016ffab524..adb08c1ee5bc7d8de620ff52a17bd0f204b487a7 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C @@ -75,15 +75,13 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << nl << endl; #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "CourantNo.H" #include "setDeltaT.H" - pimple.read(); // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p_rgh.storePrevIter(); } @@ -92,7 +90,7 @@ int main(int argc, char *argv[]) #include "TEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H index 31c4f484e0f1988be323fdf5ba34504bf08533e7..8ac13dc93ee3e0673967f35c8e1ac9baeacc0fbd 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H @@ -10,7 +10,7 @@ surfaceScalarField buoyancyPhi(rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf()); phi -= buoyancyPhi; - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -21,18 +21,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H index 9a53619af50bcfaf399c89ce26dd3e3a2d67a722..cbe464fc0235394649250b6c906387d858b9ba7f 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/UEqn.H @@ -8,7 +8,7 @@ UEqn().relax(); - if (momentumPredictor) + if (simple.momentumPredictor()) { solve ( diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C index 1a5086e130d42bffd570b78b3b5a865e372db49d..06d0f2df38558a53e4d4a0adba1c6ba18f188b03 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.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 @@ -48,6 +48,7 @@ Description #include "fvCFD.H" #include "singlePhaseTransportModel.H" #include "RASModel.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -60,16 +61,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p_rgh.storePrevIter(); // Pressure-velocity SIMPLE corrector diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H index 0e8ae4e7933fc7f355b672678e41e827440fcfa3..5d643837ffcdc31b46d5fc4c299cd3a30a21dc63 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H @@ -11,7 +11,7 @@ surfaceScalarField buoyancyPhi(rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf()); phi -= buoyancyPhi; - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -22,7 +22,7 @@ p_rghEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H index c8b9f13180b2865af43e06ae49914ef6848e53da..7dff741e663b150ccb55b177ed5b725dcdc2a0a2 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/UEqn.H @@ -9,7 +9,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C index f2deb2e2d520d7bdfce0dbf9f0d31374e213297f..ca7724f101e852700834c0d1a91b114a49bb4213 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C @@ -62,10 +62,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -76,7 +74,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p_rgh.storePrevIter(); } @@ -85,7 +83,7 @@ int main(int argc, char *argv[]) #include "hEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H index 963b4df5483cc82cf1dc3a6fa23e50aebc6ff3ce..b47d65b842ac3e85d2c9155920e4b577b8775ef4 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H @@ -25,7 +25,7 @@ + fvc::div(phi) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -35,18 +35,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { // Calculate the conservative fluxes phi += p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H index 5fbfb3f7643b7a572acf5525803f8470b489bb40..ca28910aaf3c51186663b2fb5919104d4fd07398 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/UEqn.H @@ -8,7 +8,7 @@ UEqn().relax(); - if (momentumPredictor) + if (simple.momentumPredictor()) { solve ( diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C index 5891efcbf8d793b8a01a42543aa9e55087c16b6d..d70b03a45b6bb7e316cfa28673579a2270232377 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.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 @@ -33,6 +33,7 @@ Description #include "basicPsiThermo.H" #include "RASModel.H" #include "fixedGradientFvPatchFields.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -45,16 +46,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p_rgh.storePrevIter(); rho.storePrevIter(); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H index 6f39aff1c1481d408aa9e42c0bde7fd11bdfc335..17bf590f2958c9df5fb4aac55953e441a830d497 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H @@ -14,7 +14,7 @@ surfaceScalarField buoyancyPhi(rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf()); phi -= buoyancyPhi; - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -24,7 +24,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); p_rghEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C b/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C index 51aaaadae37cea314c158a7b0ca5da362071dad8..70fc2900883378f63ff065953ae3be7b06f1f1a3 100644 --- a/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C +++ b/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.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 "RASModel.H" #include "fixedGradientFvPatchFields.H" #include "radiationModel.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,16 +49,16 @@ int main(int argc, char *argv[]) #include "createRadiationModel.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p_rgh.storePrevIter(); rho.storePrevIter(); diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C index e25669e04ad155b91ce6efb9e07cdc9227f46c1b..1c7863c2ff5df82ff3be866b13bd040122708ae7 100644 --- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C +++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C @@ -48,6 +48,7 @@ Description #include "fvCFD.H" #include "singlePhaseTransportModel.H" #include "RASModel.H" +#include "simpleControl.H" template<class Type> void zeroCells @@ -74,16 +75,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); laminarTransport.lookup("lambda") >> lambda; @@ -121,7 +122,7 @@ int main(int argc, char *argv[]) adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -131,7 +132,7 @@ int main(int argc, char *argv[]) pEqn.setReference(pRefCell, pRefValue); pEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= pEqn.flux(); } @@ -184,7 +185,7 @@ int main(int argc, char *argv[]) adjustPhi(phia, Ua, pa); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix paEqn ( @@ -194,7 +195,7 @@ int main(int argc, char *argv[]) paEqn.setReference(paRefCell, paRefValue); paEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phia -= paEqn.flux(); } diff --git a/applications/solvers/incompressible/pimpleFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/UEqn.H index b897eec4b59b9018ccb2876fe1036bd52034e86f..08c06d3f4615158b864d6a087d2e701033a5b2fe 100644 --- a/applications/solvers/incompressible/pimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/UEqn.H @@ -11,7 +11,7 @@ UEqn().relax(); volScalarField rAU(1.0/UEqn().A()); -if (momentumPredictor) +if (pimple.momentumPredictor()) { solve(UEqn() == -fvc::grad(p)); } diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H index 0a4e6b1aaa492718c5d718e2c78328fa0d5f8583..da9b7581bfcf914064c97469b3ac704b3bc191cc 100644 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pEqn.H @@ -1,6 +1,6 @@ U = rAU*UEqn().H(); -if (nCorr <= 1) +if (pimple.nCorr() <= 1) { UEqn.clear(); } @@ -11,7 +11,7 @@ phi = (fvc::interpolate(U) & mesh.Sf()) adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { // Pressure corrector fvScalarMatrix pEqn @@ -23,18 +23,10 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H index 652773fea7bd9204db1a4ceecd4af14899e9a601..e43a40b94b2c958e9f4de3fcd7bf0ab7a0730c1c 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H @@ -11,7 +11,7 @@ UEqn().relax(); rAU = 1.0/UEqn().A(); -if (momentumPredictor) +if (pimple.momentumPredictor()) { solve(UEqn() == -fvc::grad(p)); } diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/correctPhi.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/correctPhi.H index f137c0027fa022172b368ab7af9d5f2bc3cd4c6f..e112db4621faf2bee4e4df3f9f7ba491747615dd 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/correctPhi.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/correctPhi.H @@ -50,7 +50,7 @@ pcorrTypes ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pcorrEqn ( @@ -60,7 +60,7 @@ pcorrEqn.setReference(pRefCell, pRefValue); pcorrEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= pcorrEqn.flux(); } diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H index 81a46f227b28277b7f798caf2b5e5644ce4b90e0..7e84ef50fe6d24cffbb957a59986051a09822bb5 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H @@ -1,6 +1,6 @@ U = rAU*UEqn().H(); -if (nCorr <= 1) +if (pimple.nCorr() <= 1) { UEqn.clear(); } @@ -14,7 +14,7 @@ if (p.needReference()) fvc::makeAbsolute(phi, U); } -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -25,18 +25,10 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C index 14c7c6fdc7e95d7e2a2e21465d8813d486f6c85f..6b5901eac869e3a2177f2597bc887658cbf3f5e0 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C @@ -60,7 +60,6 @@ int main(int argc, char *argv[]) { #include "readControls.H" #include "CourantNo.H" - pimple.read(); // Make the fluxes absolute fvc::makeAbsolute(phi, U); @@ -89,7 +88,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); } @@ -97,7 +96,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H index 8835bb6b48249467fa5b8cf1728a546e739f0916..8f48f5d7d437f3796a427ffb6ba4fcae6057801e 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H @@ -1,5 +1,6 @@ #include "readTimeControls.H" - #include "readPIMPLEControls.H" + + const dictionary& pimpleDict = pimple.dict(); const bool correctPhi = pimpleDict.lookupOrDefault("correctPhi", false); diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index 6e2683d69c753e5fdb55a45dd3407e68bcec517e..215947c1e856a2cc1fb6603a2ef19bc66797fcb5 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C @@ -56,10 +56,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "CourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -68,7 +66,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); } @@ -76,7 +74,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/incompressible/simpleFoam/createFields.H b/applications/solvers/incompressible/simpleFoam/createFields.H index b957c7265051de06f3a5333071f57e0e0b9fffa1..947da10c9d357a84850c37b2ae13f21ae9ab9499 100644 --- a/applications/solvers/incompressible/simpleFoam/createFields.H +++ b/applications/solvers/incompressible/simpleFoam/createFields.H @@ -26,14 +26,13 @@ mesh ); -# include "createPhi.H" + #include "createPhi.H" label pRefCell = 0; scalar pRefValue = 0.0; setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue); - singlePhaseTransportModel laminarTransport(U, phi); autoPtr<incompressible::RASModel> turbulence diff --git a/applications/solvers/incompressible/simpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/pEqn.H index 0b1500213a7d6593f788cf4075b61a0ba0dbcdbc..4bd84f59c439322f74a729d250499c52f8efe8cb 100644 --- a/applications/solvers/incompressible/simpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/pEqn.H @@ -7,7 +7,7 @@ adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -18,7 +18,7 @@ pEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H index d14adbb493da24b6c82d5a18cef2cd330163fa96..e4614b7063469dc05af8911a540300939c1c3a96 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/createPorousZones.H @@ -6,13 +6,7 @@ if (pZones.size()) { // nUCorrectors for pressureImplicitPorosity - if (mesh.solutionDict().subDict("SIMPLE").found("nUCorrectors")) - { - nUCorr = readInt - ( - mesh.solutionDict().subDict("SIMPLE").lookup("nUCorrectors") - ); - } + nUCorr = simple.dict().lookupOrDefault<int>("nUCorrectors", 0); if (nUCorr > 0) { diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H index a97ff3983cd7f375a3ba0b3a0da91afdd15575d5..5908396d18755d90cde9dbea6d94f3110868b807 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H @@ -11,7 +11,7 @@ UEqn.clear(); phi = fvc::interpolate(U) & mesh.Sf(); adjustPhi(phi, U, p); -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { tmp<fvScalarMatrix> tpEqn; @@ -35,7 +35,7 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) tpEqn().solve(); } - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= tpEqn().flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C index 3507fded850160493034c8dff11a3de40555e7fd..123fd811ea2e972609a83ca9ff44460054aba5a0 100644 --- a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C +++ b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/porousSimpleFoam.C @@ -34,6 +34,7 @@ Description #include "singlePhaseTransportModel.H" #include "RASModel.H" #include "porousZones.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -42,6 +43,9 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" + + simpleControl simple(mesh); + #include "createFields.H" #include "createPorousZones.H" #include "initContinuityErrs.H" @@ -50,12 +54,10 @@ int main(int argc, char *argv[]) Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); // Pressure-velocity SIMPLE corrector diff --git a/applications/solvers/incompressible/simpleFoam/simpleFoam.C b/applications/solvers/incompressible/simpleFoam/simpleFoam.C index fdb5fe0a9dc2d02891d80da024d4be711748dffb..af2a9136152c8a52840ad2f6711a16d26863be4d 100644 --- a/applications/solvers/incompressible/simpleFoam/simpleFoam.C +++ b/applications/solvers/incompressible/simpleFoam/simpleFoam.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 @@ -32,6 +32,7 @@ Description #include "fvCFD.H" #include "singlePhaseTransportModel.H" #include "RASModel.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -43,16 +44,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); // Pressure-velocity SIMPLE corrector diff --git a/applications/solvers/lagrangian/LTSReactingParcelFoam/LTSReactingParcelFoam.C b/applications/solvers/lagrangian/LTSReactingParcelFoam/LTSReactingParcelFoam.C index 7b8d04206dde9c86f487216305fbb6ca0ca0e2a1..23c30d4561bd10dd8b350daf87653be98f04a612 100644 --- a/applications/solvers/lagrangian/LTSReactingParcelFoam/LTSReactingParcelFoam.C +++ b/applications/solvers/lagrangian/LTSReactingParcelFoam/LTSReactingParcelFoam.C @@ -74,11 +74,9 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPIMPLEControls.H" #include "readChemistryProperties.H" #include "readAdditionalSolutionControls.H" #include "readTimeControls.H" - pimple.read(); runTime++; @@ -94,7 +92,7 @@ int main(int argc, char *argv[]) // --- Pressure-velocity PIMPLE corrector loop for (pimple.start(); pimple.loop(); pimple++) { - if (nOuterCorr != 1) + if (pimple.nOuterCorr() != 1) { p.storePrevIter(); } @@ -106,7 +104,7 @@ int main(int argc, char *argv[]) #include "hsEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/lagrangian/LTSReactingParcelFoam/UEqn.H b/applications/solvers/lagrangian/LTSReactingParcelFoam/UEqn.H index 35394576f88444c04d1cc5bff18a5af86b20c0cf..e52431f1e883cb473f47fc4fa52f5b6815304ecf 100644 --- a/applications/solvers/lagrangian/LTSReactingParcelFoam/UEqn.H +++ b/applications/solvers/lagrangian/LTSReactingParcelFoam/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/LTSReactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H index 4accc5dad902708945190064b6d86e02a851f194..fcbfad3efb21d7d4e0c69296867ccc767fa45959 100644 --- a/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/LTSReactingParcelFoam/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,18 +42,10 @@ pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/coalChemistryFoam/UEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H index d58b74ab9c5688506b5ab93c4f16de82d075e780..e7f242fa5faab367a98684b9d5d560c781d76a27 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H +++ b/applications/solvers/lagrangian/coalChemistryFoam/UEqn.H @@ -11,7 +11,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C index ab9c56dccd0f87d35cb0f42b05eb1fb29d62dc83..ac0cfb7cf8def8cbf389d0852b345aa703f8d614 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C +++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C @@ -74,10 +74,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPISOControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -101,7 +99,7 @@ int main(int argc, char *argv[]) #include "hsEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H index 2e9099624ca2f7c7cdea5fe7f4bce11262ef59ff..de0c04577a06eaf583126e9e43dbe96d337751a4 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H +++ b/applications/solvers/lagrangian/coalChemistryFoam/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 ( @@ -15,7 +15,7 @@ if (transonic) ) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -28,18 +28,10 @@ if (transonic) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -54,7 +46,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 ( @@ -67,18 +59,10 @@ else pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/reactingParcelFilmFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H index 61d805e01dffa692d0292b556d1da74f97c19d68..a64e50a2d24d19b3f1dd25e4bc73acbcfc27a356 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/UEqn.H @@ -9,7 +9,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H index 8178c40af5238395ac02b0cff2b277a98d56e6e7..bbfb5be051c06d5378b0e15d7f33cff76a19f1a3 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/pEqn.H @@ -15,7 +15,7 @@ surfaceScalarField phiU phi = phiU - rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf(); -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -30,18 +30,10 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += p_rghEqn.flux(); } diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C index 5ab5dfb8d8915210e85bc33809688c2a02865f21..6d0a023ef037137bb233b078e4728d4ab3f8d7b2 100644 --- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C @@ -69,11 +69,9 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setMultiRegionDeltaT.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -96,7 +94,7 @@ int main(int argc, char *argv[]) #include "hsEqn.H" // --- PISO loop - for (int corr=1; corr<=nCorr; corr++) + for (int corr=1; corr<=pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H index 2e8f979be419dba827b3cf63867d13db67c5aa92..31e00d8f35a0fedd2ad576ab4c795e0951ef4c7e 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/UEqn.H @@ -10,7 +10,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H index 0e7e36f0efb44e51a4d2cd231cdb4b263e08f41c..3bf304ceccf4168d6214eb32d879f01c977542f0 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/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 ( @@ -15,7 +15,7 @@ if (transonic) ) ); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -28,18 +28,10 @@ if (transonic) pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi == pEqn.flux(); } @@ -54,7 +46,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 ( @@ -67,18 +59,10 @@ else pEqn.solve ( - mesh.solver - ( - p.select - ( - pimple.finalIter() - && 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/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index fd5599736a8d5ef74cea095a8440c93c3c595a7a..0525585c171143005f4a85279aac2c6b8b0fa2dc 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -67,10 +67,8 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readTimeControls.H" - #include "readPIMPLEControls.H" #include "compressibleCourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -89,7 +87,7 @@ int main(int argc, char *argv[]) #include "hsEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/cavitatingFoam/UEqn.H b/applications/solvers/multiphase/cavitatingFoam/UEqn.H index 01911faaa3dbd1b23e49004c2ba1573226050510..9a5761b59f3af176c34fde4f0b366573cf510cfe 100644 --- a/applications/solvers/multiphase/cavitatingFoam/UEqn.H +++ b/applications/solvers/multiphase/cavitatingFoam/UEqn.H @@ -16,7 +16,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve(UEqn == -fvc::grad(p)); } diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C index 2e35e0bfc382bc83b306e927b54e5ea57abd3020..0c6129ebe7d076e1a7781fff6ac706aea6bc0f8e 100644 --- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C +++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C @@ -36,6 +36,7 @@ Description #include "barotropicCompressibilityModel.H" #include "twoPhaseMixture.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -52,6 +53,8 @@ int main(int argc, char *argv[]) #include "compressibleCourantNo.H" #include "setInitialDeltaT.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -65,13 +68,13 @@ int main(int argc, char *argv[]) runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; - for (int outerCorr=0; outerCorr<nOuterCorr; outerCorr++) + for (int outerCorr=0; outerCorr<pimple.nOuterCorr(); outerCorr++) { #include "rhoEqn.H" #include "gammaPsi.H" #include "UEqn.H" - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/cavitatingFoam/pEqn.H b/applications/solvers/multiphase/cavitatingFoam/pEqn.H index 6b6fc73eb9e81afb7e0a821c29ba3cb192557df0..c604539cde376de10bb7d52c5a4efbd1658813fc 100644 --- a/applications/solvers/multiphase/cavitatingFoam/pEqn.H +++ b/applications/solvers/multiphase/cavitatingFoam/pEqn.H @@ -1,5 +1,5 @@ { - if (nOuterCorr == 1) + if (pimple.nOuterCorr() == 1) { p = ( @@ -26,7 +26,7 @@ #include "resetPhivPatches.H" - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -37,16 +37,12 @@ - fvm::laplacian(rAUf, p) ); - if (corr == nCorr-1 && nonOrth == nNonOrthCorr) - { - pEqn.solve(mesh.solver(p.name() + "Final")); - } - else - { - pEqn.solve(mesh.solver(p.name())); - } + pEqn.solve + ( + mesh.solver(p.select(pimple.finalInnerIter(corr, nonOrth))) + ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phiv += (phiGradp + pEqn.flux())/rhof; } @@ -82,9 +78,9 @@ U = HbyA - rAU*fvc::grad(p); // Remove the swirl component of velocity for "wedge" cases - if (piso.found("removeSwirl")) + if (pimple.dict().found("removeSwirl")) { - label swirlCmpt(readLabel(piso.lookup("removeSwirl"))); + label swirlCmpt(readLabel(pimple.dict().lookup("removeSwirl"))); Info<< "Removing swirl component-" << swirlCmpt << " of U" << endl; U.field().replace(swirlCmpt, 0.0); diff --git a/applications/solvers/multiphase/cavitatingFoam/readControls.H b/applications/solvers/multiphase/cavitatingFoam/readControls.H index f53e7b9eb1cf63f2ca57abe6b63c441243400647..0dd2b7778078e43e987d7224c23c9f6d6ff878e7 100644 --- a/applications/solvers/multiphase/cavitatingFoam/readControls.H +++ b/applications/solvers/multiphase/cavitatingFoam/readControls.H @@ -5,5 +5,3 @@ scalar maxAcousticCo readScalar(runTime.controlDict().lookup("maxAcousticCo")) ); - -#include "readPISOControls.H" diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H index 320953ab6fbb2ab0bb5af932929990e9e83c0f58..257f6d48b53176b612a8732887d32a4f1f767905 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H @@ -16,7 +16,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C index a6fe17ee9b4fd1f1cc43d5ebe9b6de690c0db4da..161d30f8a67493368400aaf39885bce3f203f750 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C @@ -44,6 +44,7 @@ Description #include "interfaceProperties.H" #include "twoPhaseMixture.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -60,6 +61,8 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -113,7 +116,7 @@ int main(int argc, char *argv[]) turbulence->correct(); // --- Outer-corrector loop - for (int oCorr=0; oCorr<nOuterCorr; oCorr++) + for (int oCorr=0; oCorr<pimple.nOuterCorr(); oCorr++) { #include "alphaEqnsSubCycle.H" @@ -122,7 +125,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<oimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H index 0c1ad0192d04685e3ab4b3efb1a327e625e6a0ed..cdc541f0cd9b572221ec54a5a3c6154a119ea695 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H @@ -4,7 +4,7 @@ tmp<fvScalarMatrix> p_rghEqnComp; - if (transonic) + if (pimple.transonic()) { p_rghEqnComp = ( @@ -39,7 +39,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqnIncomp ( @@ -55,18 +55,10 @@ ) *p_rghEqnComp() + p_rghEqnIncomp, - mesh.solver - ( - p_rgh.select - ( - oCorr == nOuterCorr-1 - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { dgdt = (pos(alpha2)*(psi2/rho2) - pos(alpha1)*(psi1/rho1)) diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H index a2e4ef3747f5e90cf13fcc16d721275040144869..c93b1c0bfa6f30523d4fe2a72734c2cc20b647b3 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H @@ -1,15 +1,8 @@ - #include "readPISOControls.H" - #include "readTimeControls.H" + #include "readTimeControls.H" - label nAlphaCorr - ( - readLabel(piso.lookup("nAlphaCorr")) - ); + label nAlphaCorr(readLabel(pimple.dict().lookup("nAlphaCorr"))); - label nAlphaSubCycles - ( - readLabel(piso.lookup("nAlphaSubCycles")) - ); + label nAlphaSubCycles(readLabel(pimple.dict().lookup("nAlphaSubCycles"))); if (nAlphaSubCycles > 1 && nOuterCorr != 1) { @@ -19,14 +12,8 @@ << exit(FatalError); } - bool correctPhi = true; - if (piso.found("correctPhi")) - { - correctPhi = Switch(piso.lookup("correctPhi")); - } + bool correctPhi = + pimple.dict().lookupOrDefault<Switch>("correctPhi", true); - bool checkMeshCourantNo = false; - if (piso.found("checkMeshCourantNo")) - { - checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo")); - } + bool checkMeshCourantNo = + pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false); diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C index 4aed5e9c07d3593220372e4d64495136d4cdf64d..fda51d85467b17d86b8f608fa9227e78f12cdbb8 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C @@ -41,6 +41,7 @@ Description #include "interfaceProperties.H" #include "twoPhaseMixture.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,6 +57,8 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -71,7 +74,7 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << nl << endl; // --- Outer-corrector loop - for (int oCorr=0; oCorr<nOuterCorr; oCorr++) + for (int oCorr=0; oCorr<pimple.nOuterCorr(); oCorr++) { #include "alphaEqnsSubCycle.H" @@ -80,7 +83,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H index 047f2f3c4c4d23279aaeaee8346d6b1173d1b366..3378fe4b5dca58d00f2bde40955366e0ceee1e6a 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H @@ -39,7 +39,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqnIncomp ( @@ -55,18 +55,10 @@ ) *p_rghEqnComp() + p_rghEqnIncomp, - mesh.solver - ( - p_rgh.select - ( - oCorr == nOuterCorr-1 - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { dgdt = (pos(alpha2)*(psi2/rho2) - pos(alpha1)*(psi1/rho1)) diff --git a/applications/solvers/multiphase/compressibleInterFoam/readControls.H b/applications/solvers/multiphase/compressibleInterFoam/readControls.H index 7e23354f47faf454cde356329b7bae37d39b2cd9..f66da8e5f9fd1e8db1488ba385fa26234620a0d6 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/readControls.H +++ b/applications/solvers/multiphase/compressibleInterFoam/readControls.H @@ -1,14 +1,13 @@ - #include "readPISOControls.H" #include "readTimeControls.H" label nAlphaCorr ( - readLabel(piso.lookup("nAlphaCorr")) + readLabel(pimple.dict().lookup("nAlphaCorr")) ); label nAlphaSubCycles ( - readLabel(piso.lookup("nAlphaSubCycles")) + readLabel(pimple.dict().lookup("nAlphaSubCycles")) ); if (nAlphaSubCycles > 1 && nOuterCorr != 1) diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C index 7f28e63e946afa5a082f38f23f7bc6df4c25ebae..74cffd7495335899fbe6ca66a3f18e3677e1e508 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.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 @@ -44,6 +44,7 @@ Description #include "twoPhaseMixture.H" #include "turbulenceModel.H" #include "fvcSmooth.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -52,9 +53,11 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" #include "CourantNo.H" #include "setInitialrDeltaT.H" @@ -65,8 +68,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" - runTime++; Info<< "Time = " << runTime.timeName() << nl << endl; @@ -76,13 +77,19 @@ int main(int argc, char *argv[]) twoPhaseProperties.correct(); #include "alphaEqnSubCycle.H" + turbulence->correct(); - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } runTime.write(); diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interFoam/LTSInterFoam/alphaEqnSubCycle.H index 593b3503e1870d42254582069f7b853ba46a81bf..b59b0ae5fe29d683bc325f2d9b9f4be1106dca9c 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/alphaEqnSubCycle.H +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/alphaEqnSubCycle.H @@ -1,6 +1,8 @@ -label nAlphaCorr(readLabel(piso.lookup("nAlphaCorr"))); +const dictionary& pimpleDict = pimple.dict(); -label nAlphaSubCycles(readLabel(piso.lookup("nAlphaSubCycles"))); +label nAlphaCorr(readLabel(pimpleDict.lookup("nAlphaCorr"))); + +label nAlphaSubCycles(readLabel(pimpleDict.lookup("nAlphaSubCycles"))); if (nAlphaSubCycles > 1) { diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H b/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H index 210c65627d4877fad7d01b7d0345aaaa36732351..c7ac1758481c49e74c02f6d9d12f211f672465f0 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H @@ -1,6 +1,6 @@ scalar maxDeltaT ( - piso.lookupOrDefault<scalar>("maxDeltaT", GREAT) + pimple.dict().lookupOrDefault<scalar>("maxDeltaT", GREAT) ); volScalarField rDeltaT diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H b/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H index 208d01b4847691c057725fc9a20b8c85d8cb3fab..8525a8bf6738a5b230f524e8ffae6af08063e2b2 100644 --- a/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H +++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H @@ -1,52 +1,54 @@ { + const dictionary& pimpleDict = pimple.dict(); + scalar maxCo ( - piso.lookupOrDefault<scalar>("maxCo", 0.9) + pimpleDict.lookupOrDefault<scalar>("maxCo", 0.9) ); scalar maxAlphaCo ( - piso.lookupOrDefault<scalar>("maxAlphaCo", 0.2) + pimpleDict.lookupOrDefault<scalar>("maxAlphaCo", 0.2) ); scalar rDeltaTSmoothingCoeff ( - piso.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1) + pimpleDict.lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1) ); label nAlphaSpreadIter ( - piso.lookupOrDefault<label>("nAlphaSpreadIter", 1) + pimpleDict.lookupOrDefault<label>("nAlphaSpreadIter", 1) ); scalar alphaSpreadDiff ( - piso.lookupOrDefault<scalar>("alphaSpreadDiff", 0.2) + pimpleDict.lookupOrDefault<scalar>("alphaSpreadDiff", 0.2) ); scalar alphaSpreadMax ( - piso.lookupOrDefault<scalar>("alphaSpreadMax", 0.99) + pimpleDict.lookupOrDefault<scalar>("alphaSpreadMax", 0.99) ); scalar alphaSpreadMin ( - piso.lookupOrDefault<scalar>("alphaSpreadMin", 0.01) + pimpleDict.lookupOrDefault<scalar>("alphaSpreadMin", 0.01) ); label nAlphaSweepIter ( - piso.lookupOrDefault<label>("nAlphaSweepIter", 5) + pimpleDict.lookupOrDefault<label>("nAlphaSweepIter", 5) ); scalar rDeltaTDampingCoeff ( - piso.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0) + pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0) ); scalar maxDeltaT ( - piso.lookupOrDefault<scalar>("maxDeltaT", GREAT) + pimpleDict.lookupOrDefault<scalar>("maxDeltaT", GREAT) ); volScalarField rDeltaT0("rDeltaT0", rDeltaT); @@ -130,7 +132,7 @@ label nAlphaSubCycles ( - readLabel(piso.lookup("nAlphaSubCycles")) + readLabel(pimpleDict.lookup("nAlphaSubCycles")) ); rSubDeltaT = rDeltaT*nAlphaSubCycles; diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C b/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C index 4c0d33eeb207befcf13b8c299e08bfd6c6cb791a..8eff1637e246e53000a13b54e2d0993311f8896a 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C +++ b/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.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 @@ -43,6 +43,7 @@ Description #include "twoPhaseMixture.H" #include "turbulenceModel.H" #include "MRFZones.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -51,11 +52,13 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "createMRFZones.H" #include "readTimeControls.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" #include "CourantNo.H" #include "setInitialDeltaT.H" @@ -66,7 +69,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" @@ -81,12 +83,16 @@ int main(int argc, char *argv[]) #include "alphaEqnSubCycle.H" #include "zonePhaseVolumes.H" - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H index 80e9d09b3b5538f977f6ab04d3b77dcfcad229ff..c26df020198f92f72ca3f3f8a871600b5b2d8c61 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H @@ -17,7 +17,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H index e4f8247bac6591179574a92c10e3653e77d65fa5..d281e177c8e02dfe6a112f39a2acf44d13921678 100644 --- a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H @@ -19,7 +19,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for(int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -30,13 +30,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/interFoam/UEqn.H b/applications/solvers/multiphase/interFoam/UEqn.H index 320953ab6fbb2ab0bb5af932929990e9e83c0f58..257f6d48b53176b612a8732887d32a4f1f767905 100644 --- a/applications/solvers/multiphase/interFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/UEqn.H @@ -16,7 +16,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H index 073d058bfa0c586c0bdc2bdd568a66658a6f0607..8dbb489c8d2d0fad19b6e8035a64b71be2767152 100644 --- a/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H +++ b/applications/solvers/multiphase/interFoam/alphaEqnSubCycle.H @@ -1,12 +1,6 @@ -label nAlphaCorr -( - readLabel(piso.lookup("nAlphaCorr")) -); +label nAlphaCorr(readLabel(pimple.dict().lookup("nAlphaCorr"))); -label nAlphaSubCycles -( - readLabel(piso.lookup("nAlphaSubCycles")) -); +label nAlphaSubCycles(readLabel(pimple.dict().lookup("nAlphaSubCycles"))); if (nAlphaSubCycles > 1) { @@ -19,7 +13,7 @@ if (nAlphaSubCycles > 1) !(++alphaSubCycle).end(); ) { -# include "alphaEqn.H" + #include "alphaEqn.H" rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; } @@ -27,7 +21,7 @@ if (nAlphaSubCycles > 1) } else { -# include "alphaEqn.H" + #include "alphaEqn.H" } interface.correct(); diff --git a/applications/solvers/multiphase/interFoam/correctPhi.H b/applications/solvers/multiphase/interFoam/correctPhi.H index e08d3702e87816066224e995ccb4f0617897352e..cb3503e7b8d385f4cf6110cc4c2d57beb3c246f2 100644 --- a/applications/solvers/multiphase/interFoam/correctPhi.H +++ b/applications/solvers/multiphase/interFoam/correctPhi.H @@ -34,7 +34,7 @@ adjustPhi(phi, U, pcorr); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pcorrEqn ( @@ -44,7 +44,7 @@ pcorrEqn.setReference(pRefCell, pRefValue); pcorrEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= pcorrEqn.flux(); } diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H index 174cba3e1a2f957bdc608806d10ed330d2601b9f..34dea334e8f16875cee4fa26f4f7ea73a2af5d6f 100644 --- a/applications/solvers/multiphase/interFoam/createFields.H +++ b/applications/solvers/multiphase/interFoam/createFields.H @@ -128,7 +128,7 @@ ( p, p_rgh, - mesh.solutionDict().subDict("PISO"), + mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue ); diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C index d525913811608210105ca08dee26bf0ac7d3d791..5bda42694bb4e91e75c904abdc825c1594dda75e 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.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 @@ -39,6 +39,7 @@ Description #include "interfaceProperties.H" #include "twoPhaseMixture.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -47,10 +48,12 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createDynamicFvMesh.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" #include "CourantNo.H" #include "setInitialDeltaT.H" @@ -105,12 +108,16 @@ int main(int argc, char *argv[]) #include "alphaEqnSubCycle.H" - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H index 5bf3ca9418b69a3980f8adde55bc02ef99dfa0af..84c1fe45b6a40666d5a7a1f184da5a1700eab522 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H @@ -18,7 +18,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -29,13 +29,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H index 3640d73adc6bbe61745f1a3b7ed4dbf4421131f3..d4e332ff38e9d2699c0919ef45a1a9edd3769fc1 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H @@ -1,14 +1,6 @@ -# include "readTimeControls.H" -# include "readPISOControls.H" + #include "readTimeControls.H" - bool correctPhi = true; - if (piso.found("correctPhi")) - { - correctPhi = Switch(piso.lookup("correctPhi")); - } - - bool checkMeshCourantNo = false; - if (piso.found("checkMeshCourantNo")) - { - checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo")); - } + bool correctPhi = + pimple.dict().lookupOrDefault<Switch>("correctPhi", true); + bool checkMeshCourantNo = + pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false); diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C index 98cd759b4f5e51e6e69fe74dab264b561b2a2b07..a297b5fcab0bb64229049e8784e8b8abc5d93e02 100644 --- a/applications/solvers/multiphase/interFoam/interFoam.C +++ b/applications/solvers/multiphase/interFoam/interFoam.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 @@ -31,7 +31,7 @@ Description The momentum and other fluid properties are of the "mixture" and a single momentum equation is solved. - Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. For a two-fluid approach see twoPhaseEulerFoam. @@ -44,6 +44,7 @@ Description #include "twoPhaseMixture.H" #include "turbulenceModel.H" #include "interpolationTable.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -52,7 +53,9 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" + + pimpleControl pimple(mesh); + #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" @@ -60,6 +63,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -80,12 +84,16 @@ int main(int argc, char *argv[]) #include "alphaEqnSubCycle.H" - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H index db1eccc5a5348055a2bed3c9ef0e8ea96ffb4484..d75a76766ab21c56a0c8a1e3fbc173a72054297f 100644 --- a/applications/solvers/multiphase/interFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/pEqn.H @@ -18,7 +18,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -29,13 +29,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H index 72ae38ba06885414776791d3a8af17af583caf41..155c0527b7338035d444a03f97cf52cef2924e3b 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H @@ -22,7 +22,7 @@ pZones.addResistance(UEqn); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C index f0949e290e79148b3c1d965bd18188b13c4b1c08..5059e5597337e5f74bce47c2f3acbbd4f958a146 100644 --- a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C +++ b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.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 @@ -45,6 +45,7 @@ Description #include "twoPhaseMixture.H" #include "turbulenceModel.H" #include "porousZones.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -53,11 +54,13 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "createPorousZones.H" #include "readTimeControls.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" #include "CourantNo.H" #include "setInitialDeltaT.H" @@ -68,7 +71,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" @@ -82,12 +84,16 @@ int main(int argc, char *argv[]) #include "alphaEqnSubCycle.H" - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/interMixingFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/interMixingFoam/alphaEqnsSubCycle.H index 81e09f9b900ca6362114330a396b63ca4e0e57ec..d816f8acedf88815eb09aaaad7e234faf6508edf 100644 --- a/applications/solvers/multiphase/interMixingFoam/alphaEqnsSubCycle.H +++ b/applications/solvers/multiphase/interMixingFoam/alphaEqnsSubCycle.H @@ -1,12 +1,6 @@ -label nAlphaCorr -( - readLabel(piso.lookup("nAlphaCorr")) -); - -label nAlphaSubCycles -( - readLabel(piso.lookup("nAlphaSubCycles")) -); +const dictionary& pimpleDict = pimple.dict(); +label nAlphaCorr(readLabel(pimpleDict.lookup("nAlphaCorr"))); +label nAlphaSubCycles(readLabel(pimpleDict.lookup("nAlphaSubCycles"))); if (nAlphaSubCycles > 1) { @@ -19,7 +13,7 @@ if (nAlphaSubCycles > 1) !(++alphaSubCycle).end(); ) { -# include "alphaEqns.H" + #include "alphaEqns.H" rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; } @@ -27,7 +21,7 @@ if (nAlphaSubCycles > 1) } else { -# include "alphaEqns.H" + #include "alphaEqns.H" } interface.correct(); diff --git a/applications/solvers/multiphase/interMixingFoam/createFields.H b/applications/solvers/multiphase/interMixingFoam/createFields.H index 8ef77a5546d75e09ac0bd57450cf5a1c0ef6173e..60543dc826266392c2738dbfcad79de0442e9f57 100644 --- a/applications/solvers/multiphase/interMixingFoam/createFields.H +++ b/applications/solvers/multiphase/interMixingFoam/createFields.H @@ -150,7 +150,7 @@ ( p, p_rgh, - mesh.solutionDict().subDict("PISO"), + mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue ); diff --git a/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C index 5da002283a9adada5348e695cbf148b5e577a936..496e2772ea8389731c11dced02ff438f258a730a 100644 --- a/applications/solvers/multiphase/interMixingFoam/interMixingFoam.C +++ b/applications/solvers/multiphase/interMixingFoam/interMixingFoam.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 @@ -36,6 +36,7 @@ Description #include "threePhaseMixture.H" #include "threePhaseInterfaceProperties.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -45,12 +46,14 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "readGravitationalAcceleration.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" #include "CourantNo.H" #include "setInitialDeltaT.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -59,7 +62,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" @@ -74,12 +76,17 @@ int main(int argc, char *argv[]) #include "alphaEqnsSubCycle.H" #define twoPhaseProperties threePhaseProperties - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H index 042f6f18a11d70f991f9446c4d33e16895d91dbf..b8fe82ff1423ed793c82bdcb0a5d43d226be0bc4 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H @@ -17,7 +17,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H index eea578e6e580c07c0b2368381bd5b6683900ee0b..b68160e62d44abdf268134e961e8648f547cc6d3 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H @@ -11,15 +11,11 @@ surfaceScalarField rhoPhi ); { - label nAlphaCorr - ( - readLabel(piso.lookup("nAlphaCorr")) - ); + const dictionary& pimpleDict = pimple.dict(); - label nAlphaSubCycles - ( - readLabel(piso.lookup("nAlphaSubCycles")) - ); + label nAlphaCorr(readLabel(pimpleDict.lookup("nAlphaCorr"))); + + label nAlphaSubCycles(readLabel(pimpleDict.lookup("nAlphaSubCycles"))); surfaceScalarField phic(mag(phi/mesh.magSf())); phic = min(interface.cAlpha()*phic, max(phic)); @@ -44,7 +40,7 @@ surfaceScalarField rhoPhi #include "alphaEqn.H" } - if (nOuterCorr == 1) + if (pimple.nOuterCorr() == 1) { interface.correct(); } diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H index 381e80b8816851ce85ccc32217ea447e8ad78aed..60f15ab553bd9f2153f257446b956931ba7796ef 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H @@ -98,7 +98,7 @@ ( p, p_rgh, - mesh.solutionDict().subDict("PISO"), + mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C index eb03daea93edf0c51539ccac31aa953c16a67f93..2e94017da2a27f55d97eb3d0f04df3fb771af188 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C @@ -56,27 +56,25 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "readGravitationalAcceleration.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" + + pimpleControl pimple(mesh); + #include "../interFoam/correctPhi.H" #include "CourantNo.H" #include "setInitialDeltaT.H" - pimpleControl pimple(mesh); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { - #include "readPIMPLEControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -92,7 +90,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H index c15d76312c803e4064f7ef8a6bdf5522bea8445c..6cfa59cc7c8e7c7b418cd5b0f9453dd7f423bb8c 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H @@ -23,7 +23,7 @@ const volScalarField& vDotcP = vDotP[0](); const volScalarField& vDotvP = vDotP[1](); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -35,18 +35,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi += p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C index 9c1e97eae3ff1eb0506af9b8fa227206ac7d32ef..85198665c6d1b6fc07bea8600e89e951486d34d8 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/MRFMultiphaseInterFoam.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 @@ -36,6 +36,7 @@ Description #include "multiphaseMixture.H" #include "turbulenceModel.H" #include "MRFZones.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,7 +45,9 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" + + pimpleControl pimple(mesh); + #include "initContinuityErrs.H" #include "createFields.H" #include "createMRFZones.H" @@ -59,7 +62,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" @@ -73,12 +75,16 @@ int main(int argc, char *argv[]) rho = mixture.rho(); #include "zonePhaseVolumes.H" - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/UEqn.H index b47e7111922fdca962813649538ff88c5e633789..3b860b975a7a1e71895b4b408679661e3c858541 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/UEqn.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/UEqn.H @@ -17,7 +17,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/pEqn.H index 8be2e12bf6a994394c5b624209e0b1882898dc68..9975ebac832570c72c065923426208ac8106f330 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/MRFMultiphaseInterFoam/pEqn.H @@ -20,7 +20,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for(int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -31,13 +31,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H index a2145bc0a2d1f95eaae85d0573202712db22112c..43ee1e3eb9452061200f3908241358d3f3215a24 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H @@ -16,7 +16,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H index e3ebd1074377204b2b0dde0ead3381c02a6d1d4e..78fa0ec3098b1bebee455b270da92606c3bcae07 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H @@ -76,7 +76,7 @@ ( p, p_rgh, - mesh.solutionDict().subDict("PISO"), + mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue ); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C index feb3bf00a4ef2c262a113dd4723bf18b357b07a4..f9d92768ecac7e88d85f73bc4f8633edd7dd2327 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.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 "fvCFD.H" #include "multiphaseMixture.H" #include "turbulenceModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -43,10 +44,12 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "readPISOControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" + + pimpleControl pimple(mesh); + #include "correctPhi.H" #include "CourantNo.H" #include "setInitialDeltaT.H" @@ -57,7 +60,6 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPISOControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "alphaCourantNo.H" @@ -70,12 +72,16 @@ int main(int argc, char *argv[]) mixture.solve(); rho = mixture.rho(); - #include "UEqn.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" + + // --- PISO loop + for (int corr=0; corr<pimple.nCorr(); corr++) + { + #include "pEqn.H" + } } turbulence->correct(); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index eecec78206d7ad40fcd4b648ccc4ad6ed53296e4..3e78c97ab3b54c215ebd297ddab7eec1a82f51ab 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -245,28 +245,15 @@ void Foam::multiphaseMixture::solve() const Time& runTime = mesh_.time(); - label nAlphaSubCycles - ( - readLabel - ( - mesh_.solutionDict().subDict("PISO").lookup("nAlphaSubCycles") - ) - ); + const dictionary& pimpleDict = mesh_.solutionDict().subDict("PIMPLE"); - label nAlphaCorr - ( - readLabel(mesh_.solutionDict().subDict("PISO").lookup("nAlphaCorr")) - ); + label nAlphaSubCycles(readLabel(pimpleDict.lookup("nAlphaSubCycles"))); - bool cycleAlpha - ( - Switch(mesh_.solutionDict().subDict("PISO").lookup("cycleAlpha")) - ); + label nAlphaCorr(readLabel(pimpleDict.lookup("nAlphaCorr"))); - scalar cAlpha - ( - readScalar(mesh_.solutionDict().subDict("PISO").lookup("cAlpha")) - ); + bool cycleAlpha(Switch(pimpleDict.lookup("cycleAlpha"))); + + scalar cAlpha(readScalar(pimpleDict.lookup("cAlpha"))); volScalarField& alpha = phases_.first(); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H index 712fcfc9a1e47b4d86949701056d5beaa9cdd90d..78bfc89bb471efbbc2709bb67ab3f3dd8a8b55e9 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H @@ -19,7 +19,7 @@ - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -30,13 +30,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/settlingFoam/UEqn.H b/applications/solvers/multiphase/settlingFoam/UEqn.H index cd3985b364d286b46c295125d817a2aa64740dda..fc750765b7220efea08aeb248353703984d60e13 100644 --- a/applications/solvers/multiphase/settlingFoam/UEqn.H +++ b/applications/solvers/multiphase/settlingFoam/UEqn.H @@ -14,7 +14,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/settlingFoam/pEqn.H b/applications/solvers/multiphase/settlingFoam/pEqn.H index f359e952542436193bd149ee7ec2823383fbdc27..7b62411d2d17344bf88d1014cbc5e2a05b98803c 100644 --- a/applications/solvers/multiphase/settlingFoam/pEqn.H +++ b/applications/solvers/multiphase/settlingFoam/pEqn.H @@ -17,7 +17,7 @@ phi = surfaceScalarField phiU("phiU", phi); phi -= ghf*fvc::snGrad(rho)*rAUf*mesh.magSf(); -for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) +for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -27,7 +27,7 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); p_rghEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/settlingFoam/settlingFoam.C b/applications/solvers/multiphase/settlingFoam/settlingFoam.C index c91229abd78adf01324aa6280019b0f0b98dbaa8..c588ee44c3f924d2ffbda5041e9c0c69cb9d05bd 100644 --- a/applications/solvers/multiphase/settlingFoam/settlingFoam.C +++ b/applications/solvers/multiphase/settlingFoam/settlingFoam.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 @@ -37,6 +37,7 @@ Description #include "Switch.H" #include "plasticViscosity.H" #include "yieldStress.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -50,20 +51,21 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (pimple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readPISOControls.H" #include "compressibleCourantNo.H" #include "rhoEqn.H" - for (int oCorr=0; oCorr<nOuterCorr; oCorr++) + for (int oCorr=0; oCorr<pimple.nOuterCorr(); oCorr++) { #include "calcVdj.H" @@ -74,7 +76,7 @@ int main(int argc, char *argv[]) #include "correctViscosity.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H index 5d9a317e0868b881e0e8ab06b30821b991377be2..3dbb3747743536d11d95ce2021c81cab1641ea3f 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H @@ -16,7 +16,7 @@ UEqn.relax(); - if (momentumPredictor) + if (pimple.momentumPredictor()) { solve ( diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H index 42e85e1db9e32d1e4941da544ecc05b6d3f147d7..01b6442e9dff45ec0938ccd2fd9d714aafa11d7d 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H @@ -14,7 +14,7 @@ phi = phiU - ghf*fvc::snGrad(rho)*rAUf*mesh.magSf(); - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=pimple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix p_rghEqn ( @@ -25,18 +25,10 @@ p_rghEqn.solve ( - mesh.solver - ( - p_rgh.select - ( - pimple.finalIter() - && corr == nCorr-1 - && nonOrth == nNonOrthCorr - ) - ) + mesh.solver(p_rgh.select(pimple.finalInnerIter(corr, nonOrth))) ); - if (nonOrth == nNonOrthCorr) + if (nonOrth == pimple.nNonOrthCorr()) { phi -= p_rghEqn.flux(); } diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C index fb06b7fed3bdcaa9476a58bf504a2f8483dc0b29..89ab5aebb3feff95ce18c0514d2865f500c9d988 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C @@ -44,7 +44,6 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "readGravitationalAcceleration.H" - #include "readPIMPLEControls.H" #include "initContinuityErrs.H" #include "createFields.H" #include "readTimeControls.H" @@ -59,11 +58,9 @@ int main(int argc, char *argv[]) while (runTime.run()) { - #include "readPIMPLEControls.H" #include "readTimeControls.H" #include "CourantNo.H" #include "setDeltaT.H" - pimple.read(); runTime++; @@ -79,7 +76,7 @@ int main(int argc, char *argv[]) #include "UEqn.H" // --- PISO loop - for (int corr=0; corr<nCorr; corr++) + for (int corr=0; corr<pimple.nCorr(); corr++) { #include "pEqn.H" } diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H index 00581cd30243c8a2dff97c451105502005c5e25c..95395d97d4b319c4e3703b4d92c15d61b981b011 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H @@ -234,4 +234,4 @@ label pRefCell = 0; scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); + setRefCell(p, mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H b/applications/solvers/multiphase/twoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H index b9563363897d8c09fbc5575e47e9817af43553a7..a345c4e53bc97e5b3ad14ddaf653805a78a75571 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H @@ -1,6 +1,5 @@ -# include "readTimeControls.H" -# include "readPISOControls.H" + #include "readTimeControls.H" - int nAlphaCorr(readInt(piso.lookup("nAlphaCorr"))); + int nAlphaCorr(readInt(pimple.dict().lookup("nAlphaCorr"))); - Switch correctAlpha(piso.lookup("correctAlpha")); + Switch correctAlpha(pimple.dict().lookup("correctAlpha")); diff --git a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C index 6366738579e8737aa5f0a8dc2c8bf6a80c3d4906..0e5b8c3776a6bbbb025b6a9fa2e9d31ff34bcdbc 100644 --- a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C +++ b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.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 @@ -34,6 +34,7 @@ Description #include "singlePhaseTransportModel.H" #include "RASModel.H" #include "MRFZones.H" +#include "simpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,16 +47,16 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" + simpleControl simple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; - while (runTime.loop()) + while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; - #include "readSIMPLEControls.H" - p.storePrevIter(); // Pressure-velocity SIMPLE corrector @@ -82,7 +83,7 @@ int main(int argc, char *argv[]) adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) { fvScalarMatrix pEqn ( @@ -92,7 +93,7 @@ int main(int argc, char *argv[]) pEqn.setReference(pRefCell, pRefValue); pEqn.solve(); - if (nonOrth == nNonOrthCorr) + if (nonOrth == simple.nNonOrthCorr()) { phi -= pEqn.flux(); }