diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C index 830a266a40..5ed2849be9 100644 --- a/applications/solvers/basic/laplacianFoam/laplacianFoam.C +++ b/applications/solvers/basic/laplacianFoam/laplacianFoam.C @@ -52,7 +52,7 @@ int main(int argc, char *argv[]) { Info<< "Time = " << runTime.timeName() << nl << endl; - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { solve ( diff --git a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C index 7dbbc97dac..8eade6a545 100644 --- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C +++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C @@ -53,7 +53,7 @@ int main(int argc, char *argv[]) { Info<< "Time = " << runTime.timeName() << nl << endl; - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { solve ( diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H index df120f6dea..4d3f1ac76e 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H @@ -17,7 +17,7 @@ if (simple.transonic()) fvc::interpolate(psi)*(fvc::interpolate(U) & mesh.Sf()) ); - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -32,7 +32,7 @@ if (simple.transonic()) pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { 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<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -54,7 +54,7 @@ else pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H index 4fc258870b..b1f83304cd 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/pEqn.H @@ -20,7 +20,7 @@ if (simple.transonic()) ); mrfZones.relativeFlux(fvc::interpolate(psi), phid); - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { tmp tpEqn; @@ -37,7 +37,7 @@ if (simple.transonic()) tpEqn().solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi == tpEqn().flux(); } @@ -50,7 +50,7 @@ else closedVolume = adjustPhi(phi, U, p); - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { tmp tpEqn; @@ -67,7 +67,7 @@ else tpEqn().solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= tpEqn().flux(); } diff --git a/applications/solvers/compressible/rhoSimplecFoam/pEqn.H b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H index 9eb783feca..ccc7a1b21e 100644 --- a/applications/solvers/compressible/rhoSimplecFoam/pEqn.H +++ b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H @@ -14,7 +14,7 @@ bool closedVolume = false; if (simple.transonic()) { - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { surfaceScalarField phid ( @@ -44,17 +44,9 @@ if (simple.transonic()) pEqn.setReference(pRefCell, pRefValue); - // Retain the residual from the first iteration - if (nonOrth == 0) - { - pEqn.solve(); - } - else - { - pEqn.solve(); - } + pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi == phic + pEqn.flux(); } @@ -62,7 +54,7 @@ if (simple.transonic()) } else { - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { phi = fvc::interpolate(rho*U) & mesh.Sf(); closedVolume = adjustPhi(phi, U, p); @@ -77,18 +69,9 @@ else pEqn.setReference(pRefCell, pRefValue); - // Retain the residual from the first iteration - if (nonOrth == 0) - { - pEqn.solve(); - } - else - { - pEqn.solve(); - } + pEqn.solve(); - - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi += pEqn.flux(); } diff --git a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C index c0311807d4..37bea3c176 100644 --- a/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C +++ b/applications/solvers/electromagnetics/magneticFoam/magneticFoam.C @@ -75,7 +75,7 @@ int main(int argc, char *argv[]) runTime++; - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { solve(fvm::laplacian(murf, psi) + fvc::div(murf*Mrf)); } diff --git a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H index 17bf590f29..d2793d7192 100644 --- a/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantBaffleSimpleFoam/pEqn.H @@ -14,7 +14,7 @@ surfaceScalarField buoyancyPhi(rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf()); phi -= buoyancyPhi; - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix p_rghEqn ( @@ -24,7 +24,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); p_rghEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/pEqn.H index 5d643837ff..5a9ec66707 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<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix p_rghEqn ( @@ -22,7 +22,7 @@ p_rghEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantSimpleFoam/pEqn.H index 17bf590f29..d2793d7192 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<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix p_rghEqn ( @@ -24,7 +24,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); p_rghEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { // Calculate the conservative fluxes phi -= p_rghEqn.flux(); diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C index 1ba675c4bf..bedc12b3ba 100644 --- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C +++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointShapeOptimizationFoam.C @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -130,7 +130,7 @@ int main(int argc, char *argv[]) pEqn.setReference(pRefCell, pRefValue); pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= pEqn.flux(); } @@ -181,7 +181,7 @@ int main(int argc, char *argv[]) adjustPhi(phia, Ua, pa); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix paEqn ( @@ -191,7 +191,7 @@ int main(int argc, char *argv[]) paEqn.setReference(paRefCell, paRefValue); paEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phia -= paEqn.flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H index 81f5c20480..2d2540d303 100644 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/pEqn.H @@ -10,7 +10,7 @@ adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -20,7 +20,7 @@ pEqn.setReference(pRefCell, pRefValue); pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H index beb73bd341..54eab9cba7 100644 --- a/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/SRFSimpleFoam/pEqn.H @@ -9,7 +9,7 @@ adjustPhi(phi, Urel, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -20,7 +20,7 @@ pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/pEqn.H index 699cdcb3cf..966dedb616 100644 --- a/applications/solvers/incompressible/simpleFoam/pEqn.H +++ b/applications/solvers/incompressible/simpleFoam/pEqn.H @@ -9,7 +9,7 @@ adjustPhi(phi, U, p); // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) + while (simple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -20,7 +20,7 @@ pEqn.solve(); - if (nonOrth == simple.nNonOrthCorr()) + if (simple.finalNonOrthogonalIter()) { phi -= pEqn.flux(); } diff --git a/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/porousSimpleFoam/pEqn.H index 5908396d18..fbe81daee5 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<=simple.nNonOrthCorr(); nonOrth++) +while (simple.correctNonOrthogonal()) { tmp tpEqn; @@ -25,17 +25,10 @@ for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++) } tpEqn().setReference(pRefCell, pRefValue); - // retain the residual from the first iteration - if (nonOrth == 0) - { - tpEqn().solve(); - } - else - { - tpEqn().solve(); - } - if (nonOrth == simple.nNonOrthCorr()) + tpEqn().solve(); + + if (simple.finalNonOrthogonalIter()) { phi -= tpEqn().flux(); }