The effect of tangential velocities¶
It was first noted by Rezzolla, Zanotti and Pons that there is one effect that is specific to relativistic Riemann problems. Thanks to the Lorentz factor coupling the tangential velocities more tightly to the other terms, it is possible to change the wave pattern in the problem solely by changing the tangential velocity. This cannot happen in the Newtonian case.
The examples used in their paper use a modified relativistic Sod problem as a base. We set that problem up first:
In [1]:
from r3d2 import Gamma_law, Gamma_law_react, State, RiemannProblem
from IPython.display import display, display_png
In [2]:
eos = Gamma_law(5.0/3.0)
U_left_sod_modified = State(1.0, 0.5, 0.0, 1.5, eos)
U_right_sod_modified = State(0.125, 0.0, 0.0, 1.2, eos)
rp_sod_modified = RiemannProblem(U_left_sod_modified, U_right_sod_modified)
display(rp_sod_modified)
display_png(rp_sod_modified)
We see the wave pattern has a left going rarefaction and a right going shock.
Now, by modifying the tangential velocity of the right state, the wave pattern changes:
In [3]:
U_right_vt_0_9 = State(0.125, 0.0, 0.9, 1.2, eos)
rp_vt_0_9 = RiemannProblem(U_left_sod_modified, U_right_vt_0_9)
display(rp_vt_0_9)
display_png(rp_vt_0_9)
The result is a left going shock, rather than a rarefaction.
A shock-rarefaction problem can be modified, via a tangential velocity, to a two rarefaction problem in a similar fashion:
In [4]:
U_left_sod_modified2 = State(1.0, 0., 0.0, 1.5, eos)
U_right_sod_modified2 = State(0.125, 0.5, 0.0, 1.2, eos)
rp_sod_modified2 = RiemannProblem(U_left_sod_modified2, U_right_sod_modified2)
display(rp_sod_modified2)
display_png(rp_sod_modified2)
And now with tangential velocity:
In [5]:
U_left_vt_0_9 = State(1.0, 0.0, 0.9, 1.5, eos)
rp2_vt_0_9 = RiemannProblem(U_left_vt_0_9, U_right_sod_modified2)
display(rp2_vt_0_9)
display_png(rp2_vt_0_9)
Reactive case¶
An interesting question is on the potential impact of this relativistic effect on detonations and deflagrations. Let us set up a reference reactive problem and add tangential velocities:
In [6]:
eos_reactive = Gamma_law_react(5.0/3.0, 0.25, 1.0, 1.0, eos)
U_reactive = State(1.0, -0.5, 0.0, 1.5, eos_reactive)
U_burnt = State(0.125, 0.0, 0., 1.2, eos)
rp_reactive_base = RiemannProblem(U_reactive, U_burnt)
display(rp_reactive_base)
display_png(rp_reactive_base)
We see that this is a deflagration-shock problem.
Now add tangential velocities to the unburnt material:
In [7]:
U_reactive_vt_0_9 = State(1.0, -0.5, 0.8, 1.5, eos_reactive)
rp_reactive_vt_reactive = RiemannProblem(U_reactive_vt_0_9, U_burnt)
display(rp_reactive_vt_reactive)
display_png(rp_reactive_vt_reactive)
Again, by adding tangential velocities to the right state the shock has become a rarefaction.