Unify implementation VolumeIntegralShockCapturingHG and VolumeIntegralShockCapturingRRG#2802
Conversation
…gralShockCapturingRRG`
Review checklistThis checklist is meant to assist creators of PRs (to let them know what reviewers will typically look for) and reviewers (to guide them in a structured review process). Items do not need to be checked explicitly for a PR to be eligible for merging. Purpose and scope
Code quality
Documentation
Testing
Performance
Verification
Created with ❤️ by the Trixi.jl community. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2802 +/- ##
==========================================
+ Coverage 97.08% 97.09% +0.01%
==========================================
Files 586 588 +2
Lines 45463 45486 +23
==========================================
+ Hits 44136 44161 +25
+ Misses 1327 1325 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Since we already touched on this here, it makes sense to me to do so now. |
Ok, yeah makes sense. There are two things that came to my mind while working on this:
This would taking some responsibility from the user away, but of course also limit extentability. |
No. If someone implements a new equation without specialized two-point fluxes, they would be forced to use flux differencing with
I cannot think of something reasonable we have already implemented that should be used instead. However, I do not have a strong opinion here.
This is the only option we have been using so far, isn't it? I also do not have a strong opinion here. Do we restrict it currently? If not, it would be (mildly) breaking to restrict it now. |
jlchan
left a comment
There was a problem hiding this comment.
This is already looking pretty good in my opinion
I don't think it's necessary to restrict any of these |
Co-authored-by: Jesse Chan <1156048+jlchan@users.noreply.github.com>
|
Yeah I agree. I think I found a nice naming of the volume integrals with # In classic HG shock capturing this is also `VolumeIntegralBlendHighOrder`.
# This implementation is a generalization, which allows also usage of e.g.
# the (potentially) cheaper weak form volume integral.
volume_integral_default::VolumeIntegralDefault
# The volume integral used for the DG portion in the convex blending.
# Usually symmetric, e.g. split-form with entropy-conserative flux.
volume_integral_blend_high_order::VolumeIntegralBlendHighOrder
# Typically a first- or second-order finite volume method on the DG subcells.
# Non-symmetric, e.g. entropy-dissipative, to achieve shock-capturing behaviour.
volume_integral_blend_low_order::VolumeIntegralBlendLowOrderThis reflects the generality of the approach, while also pointing people sufficiently into the right direction. |
I like this name; I actually prefer it slightly over VolumeIntegralAdaptive for the entropy correction stuff. |
|
@jlchan should also review this PR because some |
jlchan
left a comment
There was a problem hiding this comment.
Thanks @DanielDoehring - I only have one minor question on the DGMulti implementation.
…gralShockCapturingRRG` (trixi-framework#2802) * Unify implementation `VolumeIntegralShockCapturingHG` and `VolumeIntegralShockCapturingRRG` * adjust print * bf * fix * two dg volume integrals * Update src/solvers/dg.jl Co-authored-by: Jesse Chan <1156048+jlchan@users.noreply.github.com> * adapt * db * export * test sedov * fix * try * example flix * bracket * examples * shorten * Apply suggestions from code review Co-authored-by: Hendrik Ranocha <ranocha@users.noreply.github.com> * example * tv * checks * news * news * dgmulti * remove * revert * Update NEWS.md * rm * Apply suggestions from code review * change --------- Co-authored-by: Jesse Chan <1156048+jlchan@users.noreply.github.com> Co-authored-by: Hendrik Ranocha <ranocha@users.noreply.github.com>
Having merged #2800 it is now possible to unify
VolumeIntegralShockCapturingHGandVolumeIntegralShockCapturingRRG.I changed the internal name to
VolumeIntegralShockCapturingHGType- not sure if this is a good choice.Furthermore, what we ultimately want is something like
which would allow us to use e.g. weak form in the non-troubled regions like this:
Question: Should we do this generalization already here, and set for the existing ones
volume_integral_dg_default = volume_integral_dg_stabilized?