-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
patchkernel: improve adaption/partitioning tracking #370
base: master
Are you sure you want to change the base?
Conversation
ccbb63e
to
552890e
Compare
32d6e4c
to
552890e
Compare
5b2019b
to
552890e
Compare
The pull seems not working for vertices tracking. The adaption info returned for entity VERTEX are empty. You can see with following modifications to test_volunstructured_parallel_00001 as following (this code chunk at the place of line 523): ` std::vectorbitpit::adaption::Info adaptionInfo = patch_3D->partition(cellRanks, true, true);
` @andrea-iob could you add in the pull a test or an example of usage of the tracking results, please? For both purposes, to test the implementation (at least that there are no empty structures neither segmentation fault, or better if a predefined partitioning is reached) and to help the usage. I don't know where is the best place and the best way to explain it, but could you also add some comments to the documentation or of the adaption info structures (completely missing) or to the partition methods to explain what the returning objects mean, please? What are the current ids, the previous ones for instance, where the user can find info on ghost cells/vertices/interfaces, etc. Thanks |
Tracking vertex send/receive during partitioning is more tricky than expected. The image represent a 2x2 mesh before (left) and after (right) the bottom left cell has been send from process #0 to process #2. Cell exchange involves ranks #0 and #2, but after the cell have been send there are some vertices that are now owned by process #1 (the owner of a vertex is the process with the lowest rank). The tracking should than report that those vertices have been sent to process #1 from process #0. I'm not sure how I can get that information in the partitioning prepare stage (this is when vertex data to be send should be collected). The best solution would be to void tracking data exchange for vertices and relay on cell exchange to communicate vertex data.
I've already modified the branch to allow that, after some more tests I'll push it. |
552890e
to
b8fb3af
Compare
…d by a refinement
…e specified cells
b8fb3af
to
d63a6c7
Compare
Adaption/partitioning tracking is extended also to vertices and interfaces. However, tracking of vertices and interfaces offers only a limited set of information.
During adaption, information available for tracking purposes are the following:
During partitioning, information available on the sender side for tracking purposes are the following:
have been sent may have become ghosts cells);
that have been sent may have become ghosts vertices);
During partitioning, information available on the receiver side for tracking purposes are the following: