Skip to content
Snippets Groups Projects
Open chtMultiRegionTwoPhaseEulerFoam, pimple
  • View options
  • chtMultiRegionTwoPhaseEulerFoam, pimple

  • View options
  • Open Issue created

    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
    • Merge request
    • Branch

    Linked items ... 0

  • Activity

    • All activity
    • Comments only
    • History only
    • Newest first
    • Oldest first
    Loading Loading Loading Loading Loading Loading Loading Loading Loading Loading