Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 391
    • Issues 391
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #1909

Closed
Open
Created Nov 01, 2020 by Robin Kamenicky@Robin

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 log

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. log1

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

Edited Dec 28, 2020 by Robin Kamenicky
Assignee
Assign to
Time tracking