invalide communicator in ParMETIS_V3_Mesh2Dual (size of ind and wgt)
Our ParMETIS based application can run successfully with some small mesh. But when we test against a bigger mesh, we saw "invalid communicator" error from ParMETIS_V3_Mesh2Dual.
The error happened at the end of ParMETIS_V3_Mesh2Dual when FreeCtrl(&ctrl) is called.
The real reason is that ctrl.gcomm is overwritten by "1" in one loop in file mesh.c.
In ParMETIS_V3_Mesh2Dual, ind and wgt are declared as
idxtype ind[200], wgt[200];
ind[count] and wgt[count] are written in the loop starting from line 261. In my case, sometime count is bigger than 200, therefore, the access to ind[count] and wgt[count] is out of boundary. As a result, ctrl is overwritten.
I think my questions are:
What are ind and wgt for?
why are they declare to have size 200?
May I simply to extend the size of ind and wgt to have ParMETIS_V3_Mesh2Dual work for my case?
thanks,
Mi
- Login to post comments