-
Notifications
You must be signed in to change notification settings - Fork 115
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
3d connectivity balancing issue #238
Comments
Thanks for the report! |
It will make sense to integrate #101 on the way to resolving this issue. |
@hannesbrandt and I checked the issue and we think that the reason for the reported assertion failure is connected to The Currently, in processor-local trees We tested our solution approach serial and parallel for the cases described by @SAutum. Moreover, we tested the balance issue described in #112. As expected this is not solved by our solution since the mentioned issue relates to missing information in the connectivity and our solution neither adds the required connectivity information nor reduces the required connectivity information in balance. However, there is still the suggestion in #136 that fixes this issue. After we found our solution we also tested the branch referenced in the issue #101 that adds quadrants to the |
Thanks for the investigation and the report! One thing I'd like to maintain/reestablish is that BALANCE_FACE and BALANCE_EDGE work consistenly and require minimal specific information, always. This means e. g. not to store temporary corner neighbors for face/edge balance. In this sense, would it be possible to extend your fix to be sensitive to the connect_type? (Edited: the connectivity must always connect by all codimensions.) |
After testing this again, we have seen that the changes in test-neighborhood-owned only yield correct results for full balance since only
@hannesbrandt and I think that balance always uses the full insulation layer. That is why the reported assertion failure occurs even for face balance. Because of the connection-type-agnostic insulation layer, it is not possible to only adjust
Tightening the requirements in balance seems to be at least also related to the insulation layer not respecting the given balance connection type. |
I think your original analysis is very much to the point, while my comment above should be considered outdated. We have established in #112 that the edge and corner connectivity shall be complete for consistent balance, yet completeness must not be required by assertions or algorithms. In other words, the code should never crash on valid but incomplete connectivities. Let us meet and find the best compromise to go ahead, making balance work for edge- and corner-neighbors when face neighbor trees are missing entirely. |
Description
As I created an 3D example in #237 , errors occurred during balancing. The example contains face, edge (2x) and corner (1x) connections.
Two types of errors occur using different maximum refinement level.
Case 1 - line 1042:
Case 2 - line 1062:
To Reproduce
The parameters below have been tested.
no mpi, max_level = 2
Case 1 - line 1042
no mpi, max_level = 3, 4, 5
Case 2 - line 1062
with mpi, no_of_process = 1, max_level = 2
Case 1 - line 1042
with mpi, no_of_process = 1, max_level = 3, 4, 5
Case 2 - line 1062
with mpi, no_of_process = 2, 3, max_level = 2, 3, 4, 5
Case 2 - line 1062
Errors persist with P8EST_CONNECT_FULL/FACE/EDGE.
The text was updated successfully, but these errors were encountered: