You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We would like an option to guarantee bit-wise exactly zero Braid residuals (over multiple Braid iterations), when Braid is initialized with the solution from sequential time stepping. This is a useful debugging test, in that if zero residuals in Braid are not maintained over multiple Braid iterations, then a bug is present. We don't think this is guaranteed right now, but if the following was added to the storage=-2 option, we believe it would be true.
The FAS coarse grid is
A_c(u_c) = R(f - A(u)) + A_c(R(u))
-> R() is restriction
-> f - A(u) should be, unless there's a bug
-> A_c(R(u)) = -step(u_{i-1}) + u_i
Now assume that we solve the coarse-grid equation exactly, as in a two-grid method. Then the solution at equation i is
Right now, the right-hand-side is summed, and then step( u_{c,i-1} ) is added to the right-hand-side to yield
u_{c,i} = u_i.
If there are any precision errors during the above two summing steps, then you lose one or two bits of precision. However if extra storage where added so that -step(u_{i-1}) on the right-hand-side were kept in its only container, then it could be summed
against step( u_{c,i-1} ) so that they cancel out to exactly 0, leaving the only nonzero quantity on the right-hand-side being u_i.
This would be useful.
The text was updated successfully, but these errors were encountered:
We would like an option to guarantee bit-wise exactly zero Braid residuals (over multiple Braid iterations), when Braid is initialized with the solution from sequential time stepping. This is a useful debugging test, in that if zero residuals in Braid are not maintained over multiple Braid iterations, then a bug is present. We don't think this is guaranteed right now, but if the following was added to the storage=-2 option, we believe it would be true.
The FAS coarse grid is
A_c(u_c) = R(f - A(u)) + A_c(R(u))
-> R() is restriction
-> f - A(u) should be, unless there's a bug
-> A_c(R(u)) = -step(u_{i-1}) + u_i
Now assume that we solve the coarse-grid equation exactly, as in a two-grid method. Then the solution at equation i is
-step( u_{c,i-1} ) + u_{c,i} = -step(u_{i-1}) + u_i
Right now, the right-hand-side is summed, and then step( u_{c,i-1} ) is added to the right-hand-side to yield
u_{c,i} = u_i.
If there are any precision errors during the above two summing steps, then you lose one or two bits of precision. However if extra storage where added so that -step(u_{i-1}) on the right-hand-side were kept in its only container, then it could be summed
against step( u_{c,i-1} ) so that they cancel out to exactly 0, leaving the only nonzero quantity on the right-hand-side being u_i.
This would be useful.
The text was updated successfully, but these errors were encountered: