-
Notifications
You must be signed in to change notification settings - Fork 22
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
Test that connections that should be are actually permutations #105
Conversation
I played around a bit with this locally and it can pass the tests if the tolerance in here gets pushed up a bit. Most of the fails seem to be from the opposite face connection, which also seems to have its own tolerance that's quite a bit larger. Matching them up a bit seems to make most of the tests pass. |
Thanks for taking a look! Maybe be it'll be enough to twiddle tolerances to get this to go. I agree that the opposite-face-match tolerance and the permutation-matrix one should be roughly matched up, although they're really for different things. (nodes vs interpolation matrix entries) I'm a bit hesitant to dial down the Gauss-Newton tolerance in opposite-face matching without looking at the history of why it got dialed up that much in the first place. :) |
I tried to dial it down to |
Is it promising to try and build the interpolation matrix in quad precision? ( (Possible catch: not all CPU architectures give us |
I don't know if that will work, since EDIT: Just checked and
|
Thanks for checking! AFAIR, all we need is (One of the tri solves could be copied from here: https://relate.cs.illinois.edu/course/cs450-s19/f/demos/upload/linear_systems/Coding%20back-substitution.html) |
I just spent a bit more time here, and I learned a few things.
I'm out of steam for the night, but I hope this will help get us closer to tracking this down. (cc @nchristensen since we had just discussed this in our meeting) |
Interesting. Thanks for looking! |
#225 is a version of this that's supposed to be mergeable right away, but with some tests still |
Continued in #228. |
This adds a test that currently fails: Restriction to the boundary and opposite-face swap fall into the "interpolation matrix" code path here rather than the permutation matrix one, even though the matrices should be permutations. There's some crappy thresholding right before that to decide which is which. This is an efficiency problem, as operations that should merely be indirect memory access actually end up consuming considerable flops.
cc @lukeolson