diff --git a/applications/solvers/DNS/dnsFoam/dnsFoam.C b/applications/solvers/DNS/dnsFoam/dnsFoam.C index f4a246da4e..5e659fcce2 100644 --- a/applications/solvers/DNS/dnsFoam/dnsFoam.C +++ b/applications/solvers/DNS/dnsFoam/dnsFoam.C @@ -101,7 +101,7 @@ int main(int argc, char *argv[]) fvm::laplacian(rAUf, p) == fvc::div(phiHbyA) ); - pEqn.solve(piso.finalInnerIter()); + pEqn.solve(); phi = phiHbyA - pEqn.flux(); diff --git a/applications/solvers/combustion/PDRFoam/pEqn.H b/applications/solvers/combustion/PDRFoam/pEqn.H index 08733f4249..54db31ac62 100644 --- a/applications/solvers/combustion/PDRFoam/pEqn.H +++ b/applications/solvers/combustion/PDRFoam/pEqn.H @@ -27,7 +27,7 @@ if (pimple.transonic()) betav*fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -57,7 +57,7 @@ else betav*fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/XiFoam/XiEngineFoam/pEqn.H b/applications/solvers/combustion/XiFoam/XiEngineFoam/pEqn.H index a2d20f7035..148858e734 100644 --- a/applications/solvers/combustion/XiFoam/XiEngineFoam/pEqn.H +++ b/applications/solvers/combustion/XiFoam/XiEngineFoam/pEqn.H @@ -35,7 +35,7 @@ if (pimple.transonic()) fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -71,7 +71,7 @@ else fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/XiFoam/pEqn.H b/applications/solvers/combustion/XiFoam/pEqn.H index 8ee2bec677..25e002c885 100644 --- a/applications/solvers/combustion/XiFoam/pEqn.H +++ b/applications/solvers/combustion/XiFoam/pEqn.H @@ -29,7 +29,7 @@ if (pimple.transonic()) fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -64,7 +64,7 @@ else fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/fireFoam/pEqn.H b/applications/solvers/combustion/fireFoam/pEqn.H index 83e77a83a6..e550115769 100644 --- a/applications/solvers/combustion/fireFoam/pEqn.H +++ b/applications/solvers/combustion/fireFoam/pEqn.H @@ -36,7 +36,7 @@ while (pimple.correctNonOrthogonal()) + fvOptions(psi, p_rgh, rho.name()) ); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/reactingFoam/pEqn.H b/applications/solvers/combustion/reactingFoam/pEqn.H index 57150a3758..9f8f837ee2 100644 --- a/applications/solvers/combustion/reactingFoam/pEqn.H +++ b/applications/solvers/combustion/reactingFoam/pEqn.H @@ -37,7 +37,7 @@ if (pimple.transonic()) fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -72,7 +72,7 @@ else fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/reactingFoam/pcEqn.H b/applications/solvers/combustion/reactingFoam/pcEqn.H index 23f77069fd..8d514f3a40 100644 --- a/applications/solvers/combustion/reactingFoam/pcEqn.H +++ b/applications/solvers/combustion/reactingFoam/pcEqn.H @@ -49,7 +49,7 @@ if (pimple.transonic()) fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -89,7 +89,7 @@ else fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/pEqn.H b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/pEqn.H index 072a27250a..52e8d958ce 100644 --- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/pEqn.H +++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/pEqn.H @@ -41,7 +41,7 @@ while (pimple.correctNonOrthogonal()) - fvm::laplacian(rhorAUf, p_rgh) ); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/compressible/rhoPimpleFoam/correctPhi.H b/applications/solvers/compressible/rhoPimpleFoam/correctPhi.H index d71739f8fb..d142a3ed66 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/correctPhi.H +++ b/applications/solvers/compressible/rhoPimpleFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -7,5 +9,5 @@ CorrectPhi psi, dimensionedScalar("rAUf", dimTime, 1), divrhoU(), - pimple + pcorrControl ); diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H index 4a6628b64a..d4c4f442b1 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H @@ -54,7 +54,7 @@ if (pimple.transonic()) // Relax the pressure equation to ensure diagonal-dominance pEqn.relax(); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -76,7 +76,7 @@ else { fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p)); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H index 585b63d657..c7c740eff8 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/pcEqn.H @@ -65,7 +65,7 @@ if (pimple.transonic()) // Relax the pressure equation to ensure diagonal-dominance pEqn.relax(); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -90,7 +90,7 @@ else { fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAtU, p)); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C index 3566756ba0..a5e84a28af 100644 --- a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C +++ b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C @@ -114,7 +114,7 @@ int main(int argc, char *argv[]) ); pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(piso.finalInnerIter()); + pEqn.solve(); if (piso.finalNonOrthogonalIter()) { @@ -154,7 +154,7 @@ int main(int argc, char *argv[]) fvm::laplacian(rABf, pB) == fvc::div(phiB) ); - pBEqn.solve(bpiso.finalInnerIter()); + pBEqn.solve(); if (bpiso.finalNonOrthogonalIter()) { diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H index c5449fb3e8..0b212ffa53 100644 --- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/pEqn.H @@ -27,7 +27,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H index f999a3cdab..28412e3cb4 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H @@ -46,7 +46,7 @@ while (pimple.correctNonOrthogonal()) p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); } - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H index c06a87d8c1..ed410c0de2 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/pEqn.H @@ -69,7 +69,7 @@ constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF); pressureControl.refValue() ); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H index 559ac80f38..9bc0375ce1 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H @@ -17,7 +17,7 @@ fvOptions.constrain(hEqn); - hEqn.solve(pimples.finalIter()); + hEqn.solve(); fvOptions.correct(h); } diff --git a/applications/solvers/incompressible/icoFoam/icoFoam.C b/applications/solvers/incompressible/icoFoam/icoFoam.C index 5e89ca57c6..e378db46b7 100644 --- a/applications/solvers/incompressible/icoFoam/icoFoam.C +++ b/applications/solvers/incompressible/icoFoam/icoFoam.C @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(piso.finalInnerIter()); + pEqn.solve(); if (piso.finalNonOrthogonalIter()) { diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C index fd078d60cc..283a2cca3a 100644 --- a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C +++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C @@ -102,7 +102,7 @@ int main(int argc, char *argv[]) pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(piso.finalInnerIter()); + pEqn.solve(); if (piso.finalNonOrthogonalIter()) { diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H index dec58939d3..f904075ed7 100644 --- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H @@ -40,7 +40,7 @@ while (pimple.correctNonOrthogonal()) pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/incompressible/pimpleFoam/correctPhi.H b/applications/solvers/incompressible/pimpleFoam/correctPhi.H index da0ee46df6..29fe7f0180 100644 --- a/applications/solvers/incompressible/pimpleFoam/correctPhi.H +++ b/applications/solvers/incompressible/pimpleFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p, dimensionedScalar("rAUf", dimTime, 1), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H index 1266ec349a..fd7a4ee871 100644 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pEqn.H @@ -44,7 +44,7 @@ while (pimple.correctNonOrthogonal()) pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/incompressible/pisoFoam/pEqn.H b/applications/solvers/incompressible/pisoFoam/pEqn.H index b1b7cb0023..bf6a7cb0b6 100644 --- a/applications/solvers/incompressible/pisoFoam/pEqn.H +++ b/applications/solvers/incompressible/pisoFoam/pEqn.H @@ -26,7 +26,7 @@ while (piso.correctNonOrthogonal()) pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(piso.finalInnerIter()); + pEqn.solve(); if (piso.finalNonOrthogonalIter()) { diff --git a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C index ac84b52a23..34771fd7ab 100644 --- a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C +++ b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C @@ -124,7 +124,7 @@ int main(int argc, char *argv[]) - fvm::laplacian(ghrAUf, h) ); - hEqn.solve(pimple.finalInnerIter()); + hEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/lagrangian/DPMFoam/correctPhic.H b/applications/solvers/lagrangian/DPMFoam/correctPhic.H index 46ef721fa2..149f31122e 100644 --- a/applications/solvers/lagrangian/DPMFoam/correctPhic.H +++ b/applications/solvers/lagrangian/DPMFoam/correctPhic.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( Uc, @@ -5,7 +7,7 @@ CorrectPhi p, dimensionedScalar("rAUf", dimTime, 1), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/lagrangian/DPMFoam/pEqn.H b/applications/solvers/lagrangian/DPMFoam/pEqn.H index 0a05468efa..f3913bd832 100644 --- a/applications/solvers/lagrangian/DPMFoam/pEqn.H +++ b/applications/solvers/lagrangian/DPMFoam/pEqn.H @@ -34,7 +34,7 @@ pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H index 4c0dfdfc8d..bedd635180 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H +++ b/applications/solvers/lagrangian/coalChemistryFoam/pEqn.H @@ -33,7 +33,7 @@ if (pimple.transonic()) + fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -69,7 +69,7 @@ else + fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H index d2cf6b8d28..08a414a076 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/reactingParcelFoam/pEqn.H @@ -46,7 +46,7 @@ while (pimple.correctNonOrthogonal()) - fvm::laplacian(rhorAUf, p_rgh) ); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/lagrangian/sprayFoam/pEqn.H b/applications/solvers/lagrangian/sprayFoam/pEqn.H index 774ef66af7..d006952d34 100644 --- a/applications/solvers/lagrangian/sprayFoam/pEqn.H +++ b/applications/solvers/lagrangian/sprayFoam/pEqn.H @@ -42,7 +42,7 @@ if (pimple.transonic()) + fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { @@ -77,7 +77,7 @@ else + fvOptions(psi, p, rho.name()) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/cavitatingFoam/pEqn.H b/applications/solvers/multiphase/cavitatingFoam/pEqn.H index ebf9af9bd7..462585bdc3 100644 --- a/applications/solvers/multiphase/cavitatingFoam/pEqn.H +++ b/applications/solvers/multiphase/cavitatingFoam/pEqn.H @@ -35,7 +35,7 @@ - fvm::laplacian(rhorAUf, p) ); - pEqn.solve(pimple.finalInnerIter()); + pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/pEqn.H index e434a4870d..7b89c120b9 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/pEqn.H @@ -107,8 +107,7 @@ solve ( - p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp, - pimple.finalInnerIter() + p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp ); if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/multiphase/compressibleInterFoam/correctPhi.H b/applications/solvers/multiphase/compressibleInterFoam/correctPhi.H index 79860853b8..aa789b72b6 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/correctPhi.H +++ b/applications/solvers/multiphase/compressibleInterFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p, dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), divU, - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H index 7b95f5ee38..df0c29fc72 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H @@ -121,8 +121,7 @@ solve ( - p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp, - pimple.finalInnerIter() + p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp ); if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H index f9a54b478b..7265f327d9 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H @@ -86,12 +86,7 @@ phasei++; } - solve - ( - p_rghEqnComp - + p_rghEqnIncomp, - pimple.finalInnerIter() - ); + solve(p_rghEqnComp + p_rghEqnIncomp); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/driftFluxFoam/pEqn.H b/applications/solvers/multiphase/driftFluxFoam/pEqn.H index 54ce2ae12c..24716ab739 100644 --- a/applications/solvers/multiphase/driftFluxFoam/pEqn.H +++ b/applications/solvers/multiphase/driftFluxFoam/pEqn.H @@ -32,7 +32,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/interFoam/correctPhi.H b/applications/solvers/multiphase/interFoam/correctPhi.H index fcb5020587..c4c30431ed 100644 --- a/applications/solvers/multiphase/interFoam/correctPhi.H +++ b/applications/solvers/multiphase/interFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p_rgh, surfaceScalarField("rAUf", fvc::interpolate(rAU())), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/interFoam/initCorrectPhi.H b/applications/solvers/multiphase/interFoam/initCorrectPhi.H index 03eb7fd7fd..9369d91962 100644 --- a/applications/solvers/multiphase/interFoam/initCorrectPhi.H +++ b/applications/solvers/multiphase/interFoam/initCorrectPhi.H @@ -20,6 +20,8 @@ if (correctPhi) } else { + nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -27,7 +29,7 @@ else p_rgh, dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H index eb46d4d864..af72769388 100644 --- a/applications/solvers/multiphase/interFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/pEqn.H @@ -47,7 +47,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H b/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H index 58b79bed40..df68d5fc0e 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p_rgh, surfaceScalarField("rAUf", fvc::interpolate(rAU())), divU, - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/initCorrectPhi.H b/applications/solvers/multiphase/interPhaseChangeFoam/initCorrectPhi.H index 59b96c87a9..537dcf6e64 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/initCorrectPhi.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/initCorrectPhi.H @@ -22,6 +22,8 @@ if (correctPhi) } else { + nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -29,7 +31,7 @@ else p_rgh, dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H index a8a8abf87c..00572edef7 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H @@ -52,7 +52,7 @@ p_rghEqn.setReference(pRefCell, pRefValue); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H b/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H index 9afcd58a66..425cc4cb75 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p_rgh, dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H index 78e8134962..38805b1104 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H @@ -229,8 +229,7 @@ // (alpha1/rho1)*pEqnComp1() // + (alpha2/rho2)*pEqnComp2() // ) + - pEqnIncomp, - pimple.finalInnerIter() + pEqnIncomp ); if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/correctPhi.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/correctPhi.H index f060cce12c..92e208bd1d 100644 --- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/correctPhi.H +++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/correctPhi.H @@ -1,3 +1,5 @@ +nonOrthogonalSolutionControl pcorrControl(mesh, pimple.algorithmName()); + CorrectPhi ( U, @@ -5,7 +7,7 @@ CorrectPhi p_gh, surfaceScalarField("rAUf", fvc::interpolate(rAU)), geometricZeroField(), - pimple + pcorrControl ); #include "continuityErrs.H" diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H index 97d3508212..ec342f7d67 100644 --- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H +++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/pEqn.H @@ -36,7 +36,7 @@ while (pimple.correctNonOrthogonal()) p_ghEqn.setReference(p_ghRefCell, p_ghRefValue); - p_ghEqn.solve(pimple.finalInnerIter()); + p_ghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H index 2113e6b05b..d5b0f4d520 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H @@ -370,11 +370,7 @@ while (pimple.correct()) } } - solve - ( - pEqn, - pimple.finalInnerIter() - ); + pEqn.solve(); } // Correct fluxes and velocities on last non-orthogonal iteration diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pUf/pEqn.H index be40ca851e..bc6f4f35cd 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pUf/pEqn.H @@ -358,11 +358,7 @@ while (pimple.correct()) } } - solve - ( - pEqn, - pimple.finalInnerIter() - ); + pEqn.solve(); } // Correct fluxes and velocities on last non-orthogonal iteration diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H index ff93db349e..9ffc0daba4 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H @@ -326,11 +326,7 @@ while (pimple.correct()) pEqn += pEqnComp2(); } - solve - ( - pEqn, - pimple.finalInnerIter() - ); + pEqn.solve(); } // Correct fluxes and velocities on last non-orthogonal iteration diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H index fe3be3b3c6..b8f8a77a7f 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H @@ -336,11 +336,7 @@ while (pimple.correct()) pEqn += pEqnComp2(); } - solve - ( - pEqn, - pimple.finalInnerIter() - ); + pEqn.solve(); } if (pimple.finalNonOrthogonalIter()) diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H index 99515c2bcb..4893e4e476 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H @@ -29,7 +29,7 @@ p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell)); - p_rghEqn.solve(pimple.finalInnerIter()); + p_rghEqn.solve(); if (pimple.finalNonOrthogonalIter()) { diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H index 6aeb30f5db..c5fd85ad7f 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H @@ -311,8 +311,7 @@ while (pimple.correct()) solve ( - pEqnComp1() + pEqnComp2() + pEqnIncomp, - pimple.finalInnerIter() + pEqnComp1() + pEqnComp2() + pEqnIncomp ); // Correct fluxes and velocities on last non-orthogonal iteration diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H index 37247ec519..ac2edc59f6 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H @@ -290,8 +290,7 @@ while (pimple.correct()) solve ( - pEqnComp1() + pEqnComp2() + pEqnIncomp, - pimple.finalInnerIter() + pEqnComp1() + pEqnComp2() + pEqnIncomp ); if (pimple.finalNonOrthogonalIter()) diff --git a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C index a9e145270a..34aebcebde 100644 --- a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C +++ b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.C @@ -34,7 +34,7 @@ License #include "zeroGradientFvPatchFields.H" #include "adjustPhi.H" #include "fvcMeshPhi.H" -#include "pimpleControl.H" +#include "nonOrthogonalSolutionControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,7 +46,7 @@ void Foam::CorrectPhi const volScalarField& p, const RAUfType& rAUf, const DivUType& divU, - pimpleControl& pimple + nonOrthogonalSolutionControl& pcorrControl ) { const fvMesh& mesh = U.mesh(); @@ -92,7 +92,7 @@ void Foam::CorrectPhi mesh.setFluxRequired(pcorr.name()); - while (pimple.correctNonOrthogonal()) + while (pcorrControl.correctNonOrthogonal()) { // Solve for pcorr such that the divergence of the corrected flux // matches the divU provided (from previous iteration, time-step...) @@ -103,9 +103,9 @@ void Foam::CorrectPhi pcorrEqn.setReference(0, 0); - pcorrEqn.solve(pimple.finalNonOrthogonalIter()); + pcorrEqn.solve(); - if (pimple.finalNonOrthogonalIter()) + if (pcorrControl.finalNonOrthogonalIter()) { phi -= pcorrEqn.flux(); } @@ -123,7 +123,7 @@ void Foam::CorrectPhi const volScalarField& psi, const RAUfType& rAUf, const DivRhoUType& divRhoU, - pimpleControl& pimple + nonOrthogonalSolutionControl& pcorrControl ) { const fvMesh& mesh = U.mesh(); @@ -162,7 +162,7 @@ void Foam::CorrectPhi mesh.setFluxRequired(pcorr.name()); - while (pimple.correctNonOrthogonal()) + while (pcorrControl.correctNonOrthogonal()) { // Solve for pcorr such that the divergence of the corrected flux // matches the divRhoU provided (from previous iteration, time-step...) @@ -175,9 +175,9 @@ void Foam::CorrectPhi divRhoU ); - pcorrEqn.solve(pimple.finalNonOrthogonalIter()); + pcorrEqn.solve(); - if (pimple.finalNonOrthogonalIter()) + if (pcorrControl.finalNonOrthogonalIter()) { phi += pcorrEqn.flux(); } diff --git a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.H b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.H index 616b286fbc..d85eaa1a6a 100644 --- a/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.H +++ b/src/finiteVolume/cfdTools/general/CorrectPhi/CorrectPhi.H @@ -48,7 +48,7 @@ SourceFiles namespace Foam { - class pimpleControl; + class nonOrthogonalSolutionControl; //- If the mesh is moving correct the velocity BCs on the moving walls to // ensure the corrected fluxes and velocity are consistent @@ -75,7 +75,7 @@ namespace Foam const volScalarField& p, const RAUfType& rAUf, const DivUType& divU, - pimpleControl& pimple + nonOrthogonalSolutionControl& pcorrControl ); template @@ -88,7 +88,7 @@ namespace Foam const volScalarField& psi, const RAUfType& rAUf, const DivRhoUType& divRhoU, - pimpleControl& pimple + nonOrthogonalSolutionControl& pcorrControl ); } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.C index a9556c0b81..06838841c2 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.C @@ -68,17 +68,51 @@ bool Foam::pisoControl::read() } +bool Foam::pisoControl::nonOrthSubLoop() const +{ + return true; +} + + bool Foam::pisoControl::correct() { + static bool finalIteration = false; + read(); + if (corrPISO_ == 0) + { + finalIteration = + mesh().data::lookupOrDefault("finalIteration", false); + + if (finalIteration) + { + mesh().data::remove("finalIteration"); + } + } + if (finalPISOIter()) { corrPISO_ = 0; + + if + ( + !finalIteration + && mesh().data::lookupOrDefault("finalIteration", false) + ) + { + mesh().data::remove("finalIteration"); + } + return false; } - ++ corrPISO_; + corrPISO_++; + + if (finalPISOIter()) + { + mesh().data::add("finalIteration", true); + } return true; } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.H b/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.H index 629d5ab384..d974a336dc 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/pisoControl/pisoControl.H @@ -90,6 +90,7 @@ public: //- Read controls virtual bool read(); + // Access //- Maximum number of PISO correctors @@ -105,6 +106,9 @@ public: // non-orthogonal) inline bool finalInnerIter() const; + //- Return true as the non-orthogonality loop is subsidiary + virtual bool nonOrthSubLoop() const; + // Evolution diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C index 785aa3b100..6effd089ac 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C @@ -62,6 +62,12 @@ bool Foam::simpleControl::read() } +bool Foam::simpleControl::nonOrthSubLoop() const +{ + return true; +} + + bool Foam::simpleControl::run(Time& time) { read(); diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H index 13fa0611ee..80f4756dbc 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H @@ -91,6 +91,13 @@ public: //- Read controls virtual bool read(); + + // Access + + //- Return true as the non-orthogonality loop is subsidiary + virtual bool nonOrthSubLoop() const; + + // Evolution //- Time run loop diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.C b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.C index 51b1d18145..5013bbb815 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.C @@ -73,17 +73,51 @@ bool Foam::nonOrthogonalSolutionControl::read() } +bool Foam::nonOrthogonalSolutionControl::nonOrthSubLoop() const +{ + return false; +} + + bool Foam::nonOrthogonalSolutionControl::correctNonOrthogonal() { + static bool finalIteration = false; + read(); + if (nonOrthCorr_ == 0) + { + finalIteration = + mesh().data::lookupOrDefault("finalIteration", false); + + if (finalIteration) + { + mesh().data::remove("finalIteration"); + } + } + if (finalNonOrthogonalIter()) { nonOrthCorr_ = 0; + + if + ( + !finalIteration + && mesh().data::lookupOrDefault("finalIteration", false) + ) + { + mesh().data::remove("finalIteration"); + } + return false; } - ++ nonOrthCorr_; + nonOrthCorr_++; + + if (finalNonOrthogonalIter() && (finalIteration || !nonOrthSubLoop())) + { + mesh().data::add("finalIteration", true); + } return true; } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.H b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.H index 8448681d99..b0ea1fee44 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/nonOrthogonalSolutionControl/nonOrthogonalSolutionControl.H @@ -88,6 +88,7 @@ public: //- Read controls virtual bool read(); + // Access //- Maximum number of non-orthogonal correctors @@ -99,8 +100,13 @@ public: //- Flag to indicate the last non-orthogonal iteration inline bool finalNonOrthogonalIter() const; + // Evolution + //- Return true if the non-orthogonality loop is a subsidiary + // i.e. a sub-loop of the PISO or PIMPLE algorithms + virtual bool nonOrthSubLoop() const; + //- Non-orthogonal corrector loop bool correctNonOrthogonal(); }; diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H index c4ffd86168..3af0b1aa06 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H @@ -406,15 +406,6 @@ public: // Solver controls read from fvSolution SolverPerformance solve(const word& name); - //- Solve segregated or coupled returning the solution statistics. - // Solver controls read from fvSolution - // Required to avoid ambiguity from char* -> bool conversion - SolverPerformance solve(const char* name); - - //- Solve returning the solution statistics. - // Solver controls read from fvSolution - SolverPerformance solve(const bool final); - //- Solve returning the solution statistics. // Solver controls read from fvSolution SolverPerformance solve(); @@ -567,12 +558,6 @@ void checkMethod template SolverPerformance solve(fvMatrix&, const word&); -//- Solve returning the solution statistics given convergence tolerance -// Use the given solver controls -// Required to avoid ambiguity from char* -> bool conversion -template -SolverPerformance solve(fvMatrix&, const char*); - //- Solve returning the solution statistics given convergence tolerance, // deleting temporary matrix after solution. // Use the given solver controls @@ -583,28 +568,6 @@ SolverPerformance solve const word& ); -//- Solve returning the solution statistics given convergence tolerance, -// deleting temporary matrix after solution. -// Use the given solver controls -// Required to avoid ambiguity from char* -> bool conversion -template -SolverPerformance solve -( - const tmp>&, - const char* -); - -//- Solve returning the solution statistics given convergence tolerance -// Solver controls read fvSolution -template -SolverPerformance solve(fvMatrix&, const bool final); - -//- Solve returning the solution statistics given convergence tolerance, -// deleting temporary matrix after solution. -// Solver controls read fvSolution -template -SolverPerformance solve(const tmp>&, const bool final); - //- Solve returning the solution statistics given convergence tolerance // Solver controls read fvSolution template diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C index 7b2ff68d59..1a8cbf7eff 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C @@ -326,29 +326,21 @@ Foam::SolverPerformance Foam::fvMatrix::solve(const word& name) } -template -Foam::SolverPerformance Foam::fvMatrix::solve(const char* name) -{ - return solve(word(name)); -} - - -template -Foam::SolverPerformance Foam::fvMatrix::solve(const bool final) -{ - return solve(psi_.mesh().solverDict(psi_.select(final))); -} - - template Foam::SolverPerformance Foam::fvMatrix::solve() { return solve ( - psi_.mesh().data::template lookupOrDefault + psi_.mesh().solverDict ( - "finalIteration", - false + psi_.select + ( + psi_.mesh().data::template lookupOrDefault + ( + "finalIteration", + false + ) + ) ) ); } @@ -406,17 +398,6 @@ Foam::SolverPerformance Foam::solve } -template -Foam::SolverPerformance Foam::solve -( - fvMatrix& fvm, - const char* name -) -{ - return fvm.solve(name); -} - - template Foam::SolverPerformance Foam::solve ( @@ -433,44 +414,6 @@ Foam::SolverPerformance Foam::solve } -template -Foam::SolverPerformance Foam::solve -( - const tmp>& tfvm, - const char* name -) -{ - SolverPerformance solverPerf = - const_cast&>(tfvm()).solve(name); - - tfvm.clear(); - - return solverPerf; -} - - -template -Foam::SolverPerformance Foam::solve(fvMatrix& fvm, const bool final) -{ - return fvm.solve(final); -} - -template -Foam::SolverPerformance Foam::solve -( - const tmp>& tfvm, - const bool final -) -{ - SolverPerformance solverPerf = - const_cast&>(tfvm()).solve(final); - - tfvm.clear(); - - return solverPerf; -} - - template Foam::SolverPerformance Foam::solve(fvMatrix& fvm) { diff --git a/tutorials/DNS/dnsFoam/boxTurb16/system/fvSolution b/tutorials/DNS/dnsFoam/boxTurb16/system/fvSolution index 03a3385ea3..7afe2b5d31 100644 --- a/tutorials/DNS/dnsFoam/boxTurb16/system/fvSolution +++ b/tutorials/DNS/dnsFoam/boxTurb16/system/fvSolution @@ -17,7 +17,7 @@ FoamFile solvers { - p + "p.*" { solver PCG; preconditioner DIC; diff --git a/tutorials/electromagnetics/mhdFoam/hartmann/system/fvSolution b/tutorials/electromagnetics/mhdFoam/hartmann/system/fvSolution index 7500fb395c..a12f6461bd 100644 --- a/tutorials/electromagnetics/mhdFoam/hartmann/system/fvSolution +++ b/tutorials/electromagnetics/mhdFoam/hartmann/system/fvSolution @@ -44,7 +44,7 @@ solvers relTol 0; } - "(U|B)" + "(U|B).*" { solver smoothSolver; smoother symGaussSeidel;