Skip to content

RT GEAR: New Riemann solver + additional unphysical checks

Mladen Ivkovic requested to merge rt_GEAR-hll-solver into master

This adds a new HLL Riemann solver for the GEAR RT scheme, as well as some checks and fixes for unphysical conditions. It turns out the scheme really dislikes unphysical conditions, in particular the photon flux magnitude being greater than the photon energy multiplied by the (reduced) speed of light, which is the maximally allowable radiation flux (in the free streaming/optically thin limit) for a given radiation energy. For this reason, I added an additional check for RT quantities at startup. If the initial conditions were created using the proper speed of light, as opposed to a reduced one that will be used in the scheme, we start off with too high fluxes, which can lead to catastrophic unstable behaviour. This MR fixes that problem. (Additionally, there is a small bugfix in a python script for debugging checks.)

Finally, I ran some tests for 1D advection with different slope limiters and the two Riemann solvers.

Here's some results for different slope limiters:

GLF Riemann solver (the one we already have in the master branch)

output_0010-limiter-comparison

HLL Riemann solver (the new one):

output_0010-limiter-comparison

Turns out the minmod limiter is preferable in both cases. It's the cheapest one, and gives results as good as any other, even without limiting the cell slopes first. Surprisingly the Gizmo-like clever limiter is more diffusive than the minmod, even when setting its parameters to reduce diffusion.

Here's also a comparison between the two Riemann solvers both with and without cell slope limiting: output_0010-solver-limiter-comparison

At least for this case, the HLL limiter doesn't perform any better, nor does the cell slope limiting help at all, so for now we can leave those out and save us some computing efforts. There are however more tests that I want to perform in the future where the Riemann solver and the limiters could have significant influence.

Merge request reports