-
Notifications
You must be signed in to change notification settings - Fork 160
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
Point evaluation failure in parallel #2790
Comments
A serial example, where evaluation at an out-of-bounds point returns a value.
|
I think this originates from #2662. Since libspatialindex indexes items by their bounding box, the update finds elements whose bounding box contains the evaluation point, even if the point lies within the partition for a different process. |
This is clearly a bug, and it's quite possibly a result of the FIAT change you point to, however that change is not wrong in and of itself. The change among other things switches to default tolerances for being outside cells which are relative to cell size. This is the right thing to do in order to deal with discretisation error at domain boundaries (and you can override it by user argument if you feel the need). The changes you found are also needed to prevent points getting lost in the boundaries between cells, which has been an ongoing problem. I think what is going on here is that @ReubenHill has fixed the parallel implications of this via a voting algorithm for VertexOnlyMesh, but this has not been applied to the legacy |
There is no error when using a
|
This is a real issue - see discussion #2813. If you have a point exactly on the boundary you get point duplication and lose uniqueness. This was introduced in #2662 and requires #2773 (the voting algorithm) to be complete. I will work on this ASAP - in the meantime we can either revert the offending commits or note that this needs fixing. |
I don't know how this slipped between my tests but it did! 🤦 |
@jrmaddison give |
@ReubenHill Yes, my code works on that branch. |
Fixed for |
But |
The following example
leads to a failure when run on 4 processes
There is no error if the expression is changed to
suggesting that one or more processes is extrapolating outside of its partition.
The text was updated successfully, but these errors were encountered: