-
Notifications
You must be signed in to change notification settings - Fork 1
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
Remove local copies from Schedule. #11
base: master
Are you sure you want to change the base?
Conversation
Is there an accumulate version of the receive operation? This is what I forgot to handle in my initial version of #10. |
The marker point tests (with this patch) get completely wrong values:
The x-component of the velocity is constant so each column of points should stay aligned. |
I'm out of time to investigate this today but I think the bug might be the other way around - either the local copy code is wrong or there is a bug in the marker point code. If I run that test executable with this patch then the output is the same regardless of the number of processors, However:
so the results are way off between these on |
Those tests fail because we are inconsistently filling things across periodic boundaries. Using a solution which is actually continuous and periodic fixes the problem. |
The next set of failing tests is
|
It should be OK to have an actual solution discontinuity at the periodic boundary... the result should still be well defined. |
With side-centered data, there is the question of "which solution wins" at periodic boundaries --- maybe that tie breaking is not being applied consistently? |
I suspect this is a bug somewhere in SAMRAI, then, because we get consistent results (across different numbers of processors) when I make the solution continuous and inconsistent results when the solution is discontinuous. That's independent of this patch. |
Are things more consistent if you have at least 2 patches in each direction?
|
I'll have to do some more experiments to know for sure, but I believe the answer is yes. If I fix all patches to be 4x4 then things are always consistent in parallel (i.e., this may be a literal corner-case) |
requiring at least 2 patches in each periodic direction seems like it might be the easiest thing to do. |
I bet that SAMRAI is not copying the periodically shifted copy of the patch onto itself. |
Probably - that might explain why using more patches (which happens when I use more MPI processes) produces different results. To be fair, we're working on banning AMR across periodic boundaries in deal.II because periodic BCs are a constant source of bugs. |
The nodal interpolation tests don't use periodic boundaries. I'd bet there are more nodal bugs there but I'll have to do some more investigating to figure that out for sure. This patch is revealing a bunch of interesting SAMRAI bugs - that's a second benefit to removing this subsystem. |
This causes a couple of tests to fail for interesting reasons, notably
The navier-stokes test is almost passing (the errors are near the tolerance of
numdiff
) but the first two are way off - not sure why. Perhaps we are copying things in a bad order now.