diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C index b498db2d97..e2efee8f45 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 ce5580d50b..3c0c0f3b14 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 d2ef427e48..4bef0f80ea 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("maxDeltaT", GREAT) + pimple.dict().lookupOrDefault("maxDeltaT", GREAT) ); volScalarField rDeltaT diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFLTSPimpleFoam/setrDeltaT.H index 7cad4d2679..d56283d13f 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("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 4efb76bd45..f3b115d0da 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 32058ffa9e..5e54f970cd 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 0bce64d7a3..5195655a33 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 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 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 83898240ff..e210e971ca 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 a8ddcbeb6c..63b6586cb4 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 36b77f0399..9eb783feca 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 c804e4e45d..13b8ebddc4 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 151d17a398..1ec8b86022 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 df6f90ac02..07f46ec998 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 f5cd55daca..adb08c1ee5 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 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 b897eec4b5..08c06d3f46 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 0a4e6b1aaa..da9b7581bf 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 652773fea7..e43a40b94b 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 f137c0027f..e112db4621 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 81a46f227b..7e84ef50fe 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 14c7c6fdc7..6b5901eac8 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 turbulence diff --git a/applications/solvers/incompressible/simpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/pEqn.H index 0b1500213a..4bd84f59c4 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 d14adbb493..e4614b7063 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("nUCorrectors", 0); if (nUCorr > 0) { diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H index a97ff3983c..5908396d18 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 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 3507fded85..123fd811ea 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 fdb5fe0a9d..af2a913615 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 7b8d04206d..23c30d4561 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; corrcorrect(); // --- Outer-corrector loop - for (int oCorr=0; oCorr 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 a2e4ef3747..c93b1c0bfa 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("correctPhi", true); - bool checkMeshCourantNo = false; - if (piso.found("checkMeshCourantNo")) - { - checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo")); - } + bool checkMeshCourantNo = + pimple.dict().lookupOrDefault("checkMeshCourantNo", false); diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C index 4aed5e9c07..fda51d8546 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 1 && nOuterCorr != 1) diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C index 7f28e63e94..74cffd7495 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; corrcorrect(); + + // --- Pressure-velocity PIMPLE corrector loop + for (pimple.start(); pimple.loop(); pimple++) { - #include "pEqn.H" + #include "UEqn.H" + + // --- PISO loop + for (int corr=0; corr 1) { diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H b/applications/solvers/multiphase/interFoam/LTSInterFoam/setInitialrDeltaT.H index 210c65627d..c7ac175848 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("maxDeltaT", GREAT) + pimple.dict().lookupOrDefault("maxDeltaT", GREAT) ); volScalarField rDeltaT diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H b/applications/solvers/multiphase/interFoam/LTSInterFoam/setrDeltaT.H index 208d01b484..8525a8bf67 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("maxCo", 0.9) + pimpleDict.lookupOrDefault("maxCo", 0.9) ); scalar maxAlphaCo ( - piso.lookupOrDefault("maxAlphaCo", 0.2) + pimpleDict.lookupOrDefault("maxAlphaCo", 0.2) ); scalar rDeltaTSmoothingCoeff ( - piso.lookupOrDefault("rDeltaTSmoothingCoeff", 0.1) + pimpleDict.lookupOrDefault("rDeltaTSmoothingCoeff", 0.1) ); label nAlphaSpreadIter ( - piso.lookupOrDefault