Difference between solve() and solve(...finalInnerIter())?
Hello,
can you help me understand the difference between a simple call to Code:
p_rghEqn.solve(); Code:
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))); Your help is much appreciated! |
The second version uses the settings for p_rghFinal in the system/fvSolutions file (for solver settings) for the last iteration in the pimple outer loop (so for the last iteration step per time step) whereas the first version *always* use the p_rgh settings. So the p_rghFinal settings are ignore in the first case.
|
Thanks for the quick and clear answer!
My settings for p_rgh and p_rghFinal are the same, except for the relTol, which is 0.05 and 0, respectively. So naturally, the solver needs more iterations in the last outer pimple loop because it can't stop at any relative tolerance. I was wondering if it's normal that THAT much more iterations are required: Code:
DICPCG: Solving for p_rgh, Initial residual = 0.0509331, Final residual = 0.00187709, |
It would say it is normal.
|
Just look at your residuals. At first you are reducing them by 10, then in the final iteration 10'000x. Of course that will require a lot more iterations. By the way, GAMG typically shows much better performance for the solution of the pressure equation.
Quote:
|
All times are GMT -4. The time now is 23:09. |