2018-08-19 20:29 BST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002913OpenFOAM[All Projects] Bugpublic2018-04-28 19:37
Reportermonto 
Assigned Towill 
PrioritynormalSeverityblockReproducibilityalways
StatusresolvedResolutionfixed 
Platformlinux 64OSDebianOS Version9
Product Versiondev 
Target VersionFixed 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.
Attached Files

-Relationships
+Relationships

-Notes

~0009527

will (manager)

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.

~0009528

will (manager)

Fix pushed to dev as commit c1b380c8.
+Notes

-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
+Issue History