💭 Proposed feature
Inspired by recent improvements of stability to the half-step prediction in the MHM scheme, we may want to do similar things in the half-step of the MHM_RP scheme as well.
However, the procedures are different between MHM and MHM_RP. In MHM_RP, the half-step prediction requires the neighboring cells to solve Riemann problems, so it is harder to maintain consistency and conservativeness. And even if we find that there is any unphysical result in MHM_RP, there is much less room to adjust it, as the fluxes are computed by the Riemann solver. We cannot just borrow the improved treatment of the half-step prediction in the MHM scheme.
Still, there are two possible ideas to improve MHM_RP:
- In
Hydro_RiemannPredict_Flux(), add more checks on the flux (e.g., whether it is unreasonably large) and switch to the rescue Riemann solver. Currently, we only check NaN. This approach can ensure a consistent flux between two cells. However, the conditions for unphysical flux are unclear.
- In
Hydro_RiemannPredict(), add unphysical checks on the updated cell-centered conserved variables and invoke a rescue Riemann solver to recompute the fluxes. Currently, we only apply density and internal energy floors without rescuing them. This approach may break conservation (only at the half-step, not the full-step) if we only recompute one cell.
🔆 Use case
When we find unphysical results in the half-step prediction with the MHM_RP scheme.
💡 Motivation
Once there were unphysical results in the half-step prediction, they would influence the full-step update and likely cause weird behavior with symptoms different from their origin in the final results, which makes it harder to trace back or to rescue.
Correcting unphysical results as early as the half-step prediction can give a more accurate and stable input to the full-step update solver, reducing the need for corrections in Flu_Close(), which are usually less self-consistent or more expensive, and thus improving the hydro simulation's overall stability.
💬 Additional information
So far, we haven't seen any evidence of unphysical results from MHM_RP's half-step prediction. Please let us know if anyone finds them in their use cases.
🔖 Related topics
💭 Proposed feature
Inspired by recent improvements of stability to the half-step prediction in the
MHMscheme, we may want to do similar things in the half-step of theMHM_RPscheme as well.However, the procedures are different between
MHMandMHM_RP. InMHM_RP, the half-step prediction requires the neighboring cells to solve Riemann problems, so it is harder to maintain consistency and conservativeness. And even if we find that there is any unphysical result inMHM_RP, there is much less room to adjust it, as the fluxes are computed by the Riemann solver. We cannot just borrow the improved treatment of the half-step prediction in theMHMscheme.Still, there are two possible ideas to improve
MHM_RP:Hydro_RiemannPredict_Flux(), add more checks on the flux (e.g., whether it is unreasonably large) and switch to the rescue Riemann solver. Currently, we only check NaN. This approach can ensure a consistent flux between two cells. However, the conditions for unphysical flux are unclear.Hydro_RiemannPredict(), add unphysical checks on the updated cell-centered conserved variables and invoke a rescue Riemann solver to recompute the fluxes. Currently, we only apply density and internal energy floors without rescuing them. This approach may break conservation (only at the half-step, not the full-step) if we only recompute one cell.🔆 Use case
When we find unphysical results in the half-step prediction with the
MHM_RPscheme.💡 Motivation
Once there were unphysical results in the half-step prediction, they would influence the full-step update and likely cause weird behavior with symptoms different from their origin in the final results, which makes it harder to trace back or to rescue.
Correcting unphysical results as early as the half-step prediction can give a more accurate and stable input to the full-step update solver, reducing the need for corrections in
Flu_Close(), which are usually less self-consistent or more expensive, and thus improving the hydro simulation's overall stability.💬 Additional information
So far, we haven't seen any evidence of unphysical results from MHM_RP's half-step prediction. Please let us know if anyone finds them in their use cases.
🔖 Related topics