chtMultiRegionTwoPhaseEulerFoam, pimple
Summary
Solver reports that it runs PIMPLE mode but actually it runs in PISO mode. Further more, residualControl for PIMPLE cannot be used.
Steps to reproduce
Use $FOAM_TUTORIALS/heatTransfer/chtMultiRegionTwoPhaseEulerFoam/solidQuenching2D.
$./Allrun
Have a look at the log.chtMultiRegionTwoPhaseEulerFoam. It will show
PIMPLE: no residual control data found. Calculations will employ 2 corrector loops
You can further check that only one outer correction loop was done
Then change system/water/fvSolution from
PIMPLE
{
nOuterCorrectors 2;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
nEnergyCorrectors 4;
faceMomentum yes;
}
into
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
nEnergyCorrectors 4;
faceMomentum yes;
}
Now, it informs
PIMPLE: Operating solver in PISO mode
There are no other differences in log because it run before in PISO mode as well. It just informed wrongly.
Apparently, the solver outer loop logic which loops over fluid and solid regions is based on system/fvSolution. It constructs object of pimpleControl from system/<region>/fvSolution, but it does not use it for outer correction loops. The pimplControl object is constructed in createFluidFields.H but it is used only for pressure correction loops and nonorthogonal correction. Thus, eventhough the number of outercorrectors and residualControl are read from system/<region>/fvSolution, they are not used.
The residualControl was tested adding
{
p_rgh {relTol 0; tolerance 1e-3;}
}
in the PIMPLE dictionary in system/fvSolution and system/water/fvSolution and defining the nOuterCorrectors to 10. However, the residualControl is ignored in system/fvSolution and in system/water/fvSolution is read but not used.
Example case
Given above
What is the current bug behaviour?
Given above
What is the expected correct behavior?
It should correctly inform whether PIMPLE runs as PIMPLE or in PISO. Also, residual conrol should be possible to use.
Relevant logs and/or images
Environment information
- OpenFOAM version :v1906 (most probably also in v2006, but not tested)
- Operating system : ubuntu 16.04.6 LTS
- Hardware info :
- Compiler : gcc
Possible fixes
Perhaps pimpleControl class should be adapted for multiregion solvers.
/lable bug