bugg migrateEntities (load balance tool)
There is a problem with mEntity::equal method:
In delete stage of migrateEntities a call is done to DEL_updateAdj with entity created in One level manner. Maybe DEL_oneLevel would have been more appropriate but it is not the problem. The problem is that both of those methods call the mMesh::del method which remove entity given in argument from allEntities container. Erasing a element from this container (unordered container) imply comparing with mEntity::equal. But this method apparently is not working well in the context of migrateEntities ?? SEGFAULT on some plateform with some files (in 3D context).
It looks to vertex to do its comparison of id and says if both entities are equal or not.
Retriving vertex is done by mEntity:get method.
For full adjancy get will give vertex imadiatelly for any tet, face, edge .
For One level adjancy its more complicate : For a tet, get will call getTemplate as it does not have theAdjacencies[O]. mTet::getTemplate(ith,0,0) will look if edge adjancy exist and if not to face adjancy which is supose to exist. Then it will try to find vertex comon to 3 faces coresponding to ith corner (mFace::commonVertex). This method itself try to retrive vertex of each face using mEntity::get which calls mFace::getTemplate(kth,0,0) which try to find vertex by finding common vertex of edges ! Sommewhere in this process something went wrong as in mEntity::equal the get(0,i) return a null pointer and v1[i]=get(0,i)->getId(); SEGFAULT .... In fact by looking to definition of tet compared, one of them have only 2 faces ???
Don't know if prb is in AOMD side or migrate side. To be more invistigated ...