Bug: findcell() can not work properly when using parallel

Submitted by Detian Liu on Mon, 03/09/2015 - 18:02

I found that when we use parallel, in the locate model, it will call for the member function in OpenFOAM-findcells(), it will always return -1, because OpenFOAM only try to search in the first processor. Does anybody met this problem? How do you fix this problem?

Thank you!

j-kerbl's picture

j-kerbl | Wed, 03/18/2015 - 11:26

Hi Detian,

could you provide more information on your error?
What locateModel and dataExchangeModel are you using?
Which solver are you using?
How do you execute the solver?

Cheers
Josef

vinaym | Thu, 07/07/2016 - 20:15

Hello Josef,

I get partCellId as -1 for some cases (although not all).
I am using cfdemSolverPiso solver with Engine locateModel and twoWayMPI dataExchangeModel.
I see that in SetWeightedSource.H for the following line
label partCellId = particleCloud_.locateM().findSingleCell(subPosition,cellID);

when I have a look at the EngineSearch model i see label engineSearch::findSingleCell function which calls another function label engineSearch::findCell
and then it has one line, that does all the magic.
cellIDs[index][0] = searchEngine_.findCell(position,-1,treeSearch_);

Can't really understand where things are going wrong.

How to fix this issue?

kind regards,

Vinay

vinaym | Fri, 07/08/2016 - 13:21

Foam::meshSearch::findCell function does the job of finding the exact Eulerian cell where the Lagrangian point lies.

Its strange that this function return -1, for cases where point is clearly inside the domain.
I have domain size 0.15 x 0.05 x 10 m and the point is at (0.0765, 0.02575, 9.98425) but partCellId is -1.
reasons why this might be happening?

Kind regards,

Vinay

vinaym | Mon, 07/11/2016 - 14:14

Hello,

I figured out that subPoints that are not is the same processor domain as the the center of mass of particle returns -1 as partCellID.
Can anyone please tell me how should I solve this parallelization issue?

Thanks and kind regards,
Vinay

Vinay

vinaym | Tue, 07/12/2016 - 11:36

Hello everyone,

I investigated the tutorial case settlingTestMPI and found that every time approximately 1255 sub points are not found out of total 71563 for each processor ~ 2500 particles.
Which results in roughly 2 percent error in calculation of solid volume fraction every time.
I feel this will have effect on pressure drop and drag if calculated correctly.

Kind regards,

Vinay