-
Notifications
You must be signed in to change notification settings - Fork 191
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
Support weak form in elliptic DG #5679
Support weak form in elliptic DG #5679
Conversation
Allows to use this with buffers that have tags other than Tags::div<FluxTags>. For example, the elliptic DG operator buffers the divergence directly in the output.
e8697e0
to
1c80301
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! A couple suggestions. Feel free to squash & rebase right away!
@@ -74,9 +78,19 @@ void InitializeGeometry<Dim>::operator()( | |||
*inertial_coords = | |||
element_map->operator()(*logical_coords, 0., functions_of_time); | |||
// Jacobian | |||
// Note: we can try to use `::dg::metric_identity_jacobian_quantities` here. | |||
// When I tried (NV, Dec 2022) the DG residuals diverged on a sphere domain |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: Dec. 2022 or Dec. 2023?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops 👍
for (size_t i = 0; i < lhs.size(); ++i) { | ||
lhs[i] += 0.5 * rhs[i]; | ||
lhs[i] += sign * 0.5 * rhs[i]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[optional] consider precomputing sign * 0.5
outside the loop. That multiplication is 1/3 the FLOPS in this expression. At least a few years ago, compilers weren't doing that automatically :(
1c80301
to
a6db1e0
Compare
a6db1e0
to
2a1ea7b
Compare
Proposed changes
Almost gets the elliptic solver to work on large sphere domains! The attached
Lorentzian.yaml
configuration works, only BBH ID needs some more treatment (next PR).Upgrade instructions
Code review checklist
make doc
to generate the documentation locally intoBUILD_DIR/docs/html
.Then open
index.html
.code review guide.
bugfix
ornew feature
if appropriate.Further comments