View Issue Details

IDProjectCategoryView StatusLast Update
0002913OpenFOAM[All Projects] Bugpublic2018-04-28 19:37
ReportermontoAssigned Towill 
PrioritynormalSeverityblockReproducibilityalways
Status resolvedResolutionfixed 
Platformlinux 64OSDebianOS Version9
Product Versiondev 
Fixed in Versiondev 
Summary0002913: new convergence control classes causes mpi block in some PIMPLE-based solvers
DescriptionSome PIMPLE-based solvers experience an mpi hang when the following conditions are met:

- case is run in parallel
- algorithm is set to transient-simple (see attached fvSolution)

At the second time step the solver enter an mpi hang due to a wrong list size passed by the MPI communicator.

The problem is likely to be caused by the solution of equations outside the while(pimple.loop()) scope. See e.g. this sprayFoam exert:
        
        // ....
        if (!pimple.frozenFlow())
        {
            #include "rhoEqn.H"

            // --- Pressure-velocity PIMPLE corrector loop
            while (pimple.loop())
            {
                #include "UEqn.H"
                // ....
            }
            // ...
        }

Steps To ReproduceRun the "aachenBomb" tutorial with the attached fvSolution.
Additional InformationMoving #include "rhoEqn.H" into the pimple loop solves the issue:

        if (!pimple.frozenFlow())
        {
            // --- Pressure-velocity PIMPLE corrector loop
            while (pimple.loop())
            {
                if (pimple.firstIter())
                {
                    #include "rhoEqn.H"
                }
                // ...
             }
             // ...
         }
                    
 Other solvers might be affected, e.g. engineFoam.
TagsNo tags attached.

Activities

monto

2018-04-26 11:51

reporter  

aachenBomb.tgz (11,144 bytes)

will

2018-04-26 15:42

manager   ~0009527

The problem is that the rho solve is clearing the solver performance dictionary before the controls try to reset the solution indices. The controls only loop through the variables listed in the solver performance dictionary when resetting the indices. That can be fixed by making the controls loop through all the residual control sets instead.

The change fixes your case. I'm just running a few more tests before pushing.

will

2018-04-26 16:13

manager   ~0009528

Fix pushed to dev as commit c1b380c8.

Issue History

Date Modified Username Field Change
2018-04-26 11:51 monto New Issue
2018-04-26 11:51 monto File Added: aachenBomb.tgz
2018-04-26 15:42 will Note Added: 0009527
2018-04-26 16:13 will Assigned To => will
2018-04-26 16:13 will Status new => resolved
2018-04-26 16:13 will Resolution open => fixed
2018-04-26 16:13 will Fixed in Version => dev
2018-04-26 16:13 will Note Added: 0009528