tmweigand / PMMoTo

Porous Media Morphological and Topological Analysis Toolkit
1 stars 0 forks source link

globalConnectedID appears to not be consistent across subprocesses for some sets. #17

Closed rileyvickers closed 1 year ago

rileyvickers commented 1 year ago

In a few cases, the globalConnectedID list for sets shared by two processors is not identical.

Fixed for global analysis by joining the globalConnectedID lists into one and retaining unique globalIDs in the list.

In the attached, dataOut contains results when the lists are not combined, instead only the first instance is kept. dataOut_fix contains results when the lists are combined as described above. dataOut.zip dataOut_fix.zip

tmweigand commented 1 year ago

I just merged your recent pull request and I am looking for the section of code where you check the globalConnectedSets and I cannot find it. Can you push your code to your rv branch so I can look at it.

rileyvickers commented 1 year ago

Just pushed, FYI it looks like you accidentally removed distance.pyx in a commit of the last pull request

tmweigand commented 1 year ago

ha...oops. fixing now. Thanks

tmweigand commented 1 year ago

It seems like the issue is when multiple localIDs point to the same globalID. Working on a solution.

rileyvickers commented 1 year ago

Recording this here so I don't forget to mention at some point:

Similarly, depending on the need for speed, it may be helpful to update the min and max distances for a set split across processors to all owning processors, that way trim flags based on size accessibility can be set locally.

I will likely address this comment myself, as I think it will be best to do the size accessibility trimming locally, then size accessibility path creation globally. But I will start simple by doing everything globally.

tmweigand commented 1 year ago

Just wanted to provide an update that I am working on this but found another bug. It has to do with matching boundary nodes in the subDomain buffer window. Hopefully I will have this all cleaned up in a couple of days.