View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002940 | OpenFOAM | Bug | public | 2018-05-17 15:32 | 2018-05-17 18:17 |
Reporter | jherb | Assigned To | will | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | SUSE Linux Enterprise Server 11 | OS | Linux | OS Version | 3.0.101 |
Product Version | dev | ||||
Fixed in Version | dev | ||||
Summary | 0002940: PIMPLE does not iterate, if in timestep before number of necessary iterations is equal to nOuterCorrectors | ||||
Description | If the number of PIMPLE iterations need to fulfill the residual requirements set in outerCorrectorResidualControl is equal to nOuterCorrectors (all set in fvSolution), then in the next time step PIMPLE does not iterate but outputs: PIMPLE: Converged in 0 iterations | ||||
Steps To Reproduce | Using OpenFOAM-dev/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct First change the system/controlDict. New values (to get identical restart run results): writeInterval 1; writeFormat binary; Execute ./Allrun Then change system/controlDict again. New value: startTime 7; Change system/fvSolution. New value: nOuterCorrectors 2; mv log.rhoPimpleFoam old.log.rhoPimpleFoam ./Allrun In the first run, this is the output in the log file for timesteps 8 s and later: ____________________________________________________________________________________ Time = 8 PIMPLE: Iteration 1 smoothSolver: Solving for Ux, Initial residual = 4.33037e-06, Final residual = 2.08479e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.30926e-06, Final residual = 2.0136e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 9.45506e-05, Final residual = 3.21708e-06, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1.43576e-05, Final residual = 1.31123e-06, No Iterations 1 DICPCG: Solving for p, Initial residual = 3.08693e-06, Final residual = 8.87503e-08, No Iterations 24 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 5.97541e-05, global = 3.3469e-06, cumulative = 0.00358342 smoothSolver: Solving for epsilon, Initial residual = 9.48373e-07, Final residual = 9.48373e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.55765e-06, Final residual = 7.17866e-07, No Iterations 1 PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 smoothSolver: Solving for Ux, Initial residual = 4.24171e-06, Final residual = 2.05965e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.23842e-06, Final residual = 1.95878e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 9.22534e-05, Final residual = 6.29434e-07, No Iterations 2 smoothSolver: Solving for e, Initial residual = 1.52115e-05, Final residual = 2.49614e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 3.07657e-06, Final residual = 9.57752e-08, No Iterations 26 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.44819e-05, global = 1.90759e-05, cumulative = 0.0036025 smoothSolver: Solving for epsilon, Initial residual = 1.07213e-06, Final residual = 1.71639e-07, No Iterations 1 smoothSolver: Solving for k, Initial residual = 3.17391e-06, Final residual = 6.54683e-07, No Iterations 1 PIMPLE: Converged in 2 iterations ExecutionTime = 38.82 s ClockTime = 39 s Courant Number mean: 6525.72 max: 11819.3 Time = 9 PIMPLE: Iteration 1 smoothSolver: Solving for Ux, Initial residual = 4.14288e-06, Final residual = 1.98479e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.12589e-06, Final residual = 1.89745e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.95432e-05, Final residual = 2.97655e-06, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1.78261e-05, Final residual = 1.75574e-06, No Iterations 1 DICPCG: Solving for p, Initial residual = 2.92131e-06, Final residual = 9.16218e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.16892e-05, global = 1.98661e-05, cumulative = 0.00362236 smoothSolver: Solving for epsilon, Initial residual = 7.49049e-07, Final residual = 7.49049e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.00834e-06, Final residual = 6.25409e-07, No Iterations 1 PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 smoothSolver: Solving for Ux, Initial residual = 4.04031e-06, Final residual = 1.91454e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.03987e-06, Final residual = 1.84729e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.70923e-05, Final residual = 5.46896e-07, No Iterations 2 smoothSolver: Solving for e, Initial residual = 1.64377e-05, Final residual = 2.78802e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 2.90363e-06, Final residual = 9.07084e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.10832e-05, global = 1.81893e-05, cumulative = 0.00364055 smoothSolver: Solving for epsilon, Initial residual = 8.44288e-07, Final residual = 8.44288e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.13604e-06, Final residual = 6.45061e-07, No Iterations 1 PIMPLE: Converged in 2 iterations ExecutionTime = 38.96 s ClockTime = 39 s Courant Number mean: 6525.72 max: 11819.3 Time = 10 PIMPLE: Iteration 1 smoothSolver: Solving for Ux, Initial residual = 3.94443e-06, Final residual = 1.84849e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 3.94806e-06, Final residual = 1.79024e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.51759e-05, Final residual = 2.77371e-06, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1.02609e-05, Final residual = 2.47591e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 2.81695e-06, Final residual = 8.93614e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.01718e-05, global = 1.47119e-05, cumulative = 0.00365527 smoothSolver: Solving for epsilon, Initial residual = 9.50203e-07, Final residual = 9.50203e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.27113e-06, Final residual = 6.67643e-07, No Iterations 1 PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 smoothSolver: Solving for Ux, Initial residual = 3.85296e-06, Final residual = 1.78797e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 3.86151e-06, Final residual = 1.73941e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.32573e-05, Final residual = 5.03187e-07, No Iterations 2 smoothSolver: Solving for e, Initial residual = 8.66523e-06, Final residual = 2.1521e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 2.75921e-06, Final residual = 8.14953e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 5.48743e-05, global = 9.12916e-06, cumulative = 0.00366439 smoothSolver: Solving for epsilon, Initial residual = 1.06319e-06, Final residual = 1.71247e-07, No Iterations 1 smoothSolver: Solving for k, Initial residual = 2.8671e-06, Final residual = 5.99262e-07, No Iterations 1 PIMPLE: Converged in 2 iterations ExecutionTime = 39.11 s ClockTime = 39 s End ____________________________________________________________________________________ In the second run, this is the output in the log file for timesteps 8 s and later: ____________________________________________________________________________________ Time = 8 PIMPLE: Iteration 1 smoothSolver: Solving for Ux, Initial residual = 4.33036e-06, Final residual = 2.08477e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.30974e-06, Final residual = 2.01438e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 9.46642e-05, Final residual = 3.25408e-06, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1.43566e-05, Final residual = 1.31108e-06, No Iterations 1 DICPCG: Solving for p, Initial residual = 3.12325e-06, Final residual = 8.87888e-08, No Iterations 24 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 5.97802e-05, global = 3.34696e-06, cumulative = 3.34696e-06 smoothSolver: Solving for epsilon, Initial residual = 9.49547e-07, Final residual = 9.49547e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.55613e-06, Final residual = 7.17605e-07, No Iterations 1 PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 smoothSolver: Solving for Ux, Initial residual = 4.24156e-06, Final residual = 2.06003e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.23924e-06, Final residual = 1.96007e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 9.2452e-05, Final residual = 6.41801e-07, No Iterations 2 smoothSolver: Solving for e, Initial residual = 1.51228e-05, Final residual = 2.49621e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 3.12412e-06, Final residual = 9.79475e-08, No Iterations 26 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.5944e-05, global = 1.90824e-05, cumulative = 2.24294e-05 smoothSolver: Solving for epsilon, Initial residual = 1.0726e-06, Final residual = 1.71641e-07, No Iterations 1 smoothSolver: Solving for k, Initial residual = 3.17538e-06, Final residual = 6.54843e-07, No Iterations 1 PIMPLE: Not converged within 2 iterations ExecutionTime = 0.34 s ClockTime = 0 s Courant Number mean: 6525.72 max: 11819.3 Time = 9 PIMPLE: Converged in 0 iterations ExecutionTime = 0.35 s ClockTime = 0 s Courant Number mean: 6525.72 max: 11819.3 Time = 10 PIMPLE: Iteration 1 smoothSolver: Solving for Ux, Initial residual = 4.14258e-06, Final residual = 1.98506e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.12611e-06, Final residual = 1.89728e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.9668e-05, Final residual = 3.00103e-06, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1.83517e-05, Final residual = 1.76029e-06, No Iterations 1 DICPCG: Solving for p, Initial residual = 2.92582e-06, Final residual = 9.22451e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.21077e-05, global = 1.99193e-05, cumulative = 4.23487e-05 smoothSolver: Solving for epsilon, Initial residual = 7.49046e-07, Final residual = 7.49046e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.00869e-06, Final residual = 6.25421e-07, No Iterations 1 PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 smoothSolver: Solving for Ux, Initial residual = 4.04034e-06, Final residual = 1.91405e-07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.04001e-06, Final residual = 1.8477e-07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.70832e-05, Final residual = 5.45265e-07, No Iterations 2 smoothSolver: Solving for e, Initial residual = 1.68857e-05, Final residual = 2.77335e-07, No Iterations 2 DICPCG: Solving for p, Initial residual = 2.90348e-06, Final residual = 9.12439e-08, No Iterations 27 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 6.14449e-05, global = 1.82105e-05, cumulative = 6.05592e-05 smoothSolver: Solving for epsilon, Initial residual = 8.4398e-07, Final residual = 8.4398e-07, No Iterations 0 smoothSolver: Solving for k, Initial residual = 3.1359e-06, Final residual = 6.45064e-07, No Iterations 1 PIMPLE: Not converged within 2 iterations ExecutionTime = 0.52 s ClockTime = 0 s End ____________________________________________________________________________________ | ||||
Additional Information | So there seems to be a bug, if the needed number of outer iterations is equal to the maximal number set in fvSolution. Also, these outputs are inconsistent: Time = 8 ... PIMPLE: Converged Doing final iteration PIMPLE: Iteration 2 ... PIMPLE: Not converged within 2 iterations ... Time = 9 PIMPLE: Converged in 0 iterations ExecutionTime = 0.35 s ClockTime = 0 s Courant Number mean: 6525.72 max: 11819.3 Time = 10 PIMPLE: Iteration 1 ... This bug also appears using other solvers (I just use the tutorial, because it should be reproducible elsewhere and is the only one with outerCorrectorResidualControl setup), e.g. chtMultiRegionFoam. Last checkout of OpenFOAM-dev is: commit ab610d20ad5833dd051f50b4e8a215488875468d Author: Will Bainbridge <http://cfd.direct> Date: Wed May 16 13:16:46 2018 +0100 The solver log header: /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: dev | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : dev-ab610d20ad58 Exec : rhoPimpleFoam Date : May 17 2018 Time : 16:15:15 OpenFOAM was compiled with icc (ICC) 18.0.0 20170811 | ||||
Tags | pimpleControl | ||||
|
I cannot reproduce this. My build (Gcc 7.3) runs the modified case with two iterations at each of times 8, 9 and 10, none of which are detected as converged. This is the behaviour that I would expect. Can you do a run with the following addition to the controlDict and upload the log, please? DebugSwitches { solutionControl 1; } Are you able to try a build with Gcc to confirm whether or not it is an issue with Icc? |
|
I can also check it with gcc. What is the number of iterations needed for convergence during the first run with nOuterCorrectors set to (the original) 50? |
|
It's formally a transient case, so convergence is a per-time-step thing. The first time-step to converge is at 7 seconds, and it happens after 37 iterations. After that, steps 8 to 10 converge immediately. |
|
So what happens, if you change the value of nOuterCorrectors for the second run not to 2 but to the number of iterations, it takes for Time = 8 s to converge (during the first run)? (I am building the gcc version and report tomorrow, what I get with it). |
|
I still don't see the problem. Can you generate the log with the solution control debug switch set? |
|
Apologies, I mistyped one of the steps. I can reproduce this now. No need for the Gcc build. |
|
I think it's just a matter of swapping the order of the two quit conditions in pimpleControl.C. Logically we should be checking the converged flag and reporting success before checking the iteration counter and reporting failure. This is what's causing the inconsistent logging. The failure to do any iterations at step 9 is due to the converged flag not being reset in the iteration counter exit condition. |
|
Fixed in dev by commit 4bd59d64 |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-05-17 15:32 | jherb | New Issue | |
2018-05-17 15:32 | jherb | Tag Attached: pimpleControl | |
2018-05-17 15:48 | will | Note Added: 0009590 | |
2018-05-17 16:23 | jherb | Note Added: 0009592 | |
2018-05-17 16:44 | will | Note Added: 0009593 | |
2018-05-17 16:53 | jherb | Note Added: 0009594 | |
2018-05-17 17:13 | will | Note Added: 0009595 | |
2018-05-17 17:31 | will | Note Added: 0009596 | |
2018-05-17 17:41 | will | Note Added: 0009597 | |
2018-05-17 18:17 | will | Assigned To | => will |
2018-05-17 18:17 | will | Status | new => resolved |
2018-05-17 18:17 | will | Resolution | open => fixed |
2018-05-17 18:17 | will | Fixed in Version | => dev |
2018-05-17 18:17 | will | Note Added: 0009598 |