The Riemann (or Sod) Shock-Tube Problem

Key References

Adopted Initial Conditions
g = 1.4
to the left of x0 to the right of x0
r = 1 P = 1 v = 0 r = 0.125 P = 0.1 v = 0
csound = [ g P / r ]1/2 = 1.183216 csound = [ g P / r ]1/2 = 1.058301


Key Positions

x0: Location of the initial membrane;
x1: Head of the rarefaction wave that is moving to the left;
x2: (To be discussed, below);
x3: Location of the contact discontinuity that separates the "left" fluid from the "right";
x4: Location of the shock front that is moving to the right.

Key Velocities

cleft: Sound speed of the (initially undisturbed) fluid on the left of the membrane;
vpost: Speed at which the "post shock" fluid is moving toward the right;
vshock: Speed of the shock front.

Relationship Between Key Positions and Velocities at any time t greater than 0.

x1 = x0 - cleft t ;
x3 = x0 + vpost t ;
x4 = x0 + vshock t ;

Shock jump conditions imply :

vshock = vpost (rpost/rright) / [ (rpost/rright) - 1 ] .
(rpost/rright) = [ (Ppost/Pright) + m2 ] / [ 1 + m2(Ppost/Pright) ]
where m2 = (g - 1)/(g + 1)

So, if we can figure out the values of vpost and Ppost, we can determine vshock.


Determining Ppost and vpost

The value of P that satisfies the following expression is the desired value of Ppost.

2g1/2/(g - 1) [ 1 - P(g-1)/2g ] = ( P - Pright ) { ( 1 - m2 )2 [ rright (P + m2Pright ) ]-1 }1/2 Then, vpost = 2g1/2/(g - 1) [ 1 - P(g-1)/2g ]

For example, with g = 1.4, Pright = 0.1, and rright = 0.125 (as used by Sod), I derive Ppost = 0.3190. Hence, vpost = 0.89095.


Determining vshock, rpost and rmiddle

Hence, also,

rpost = 0.27394; and
vshock = 1.6387.
Notice that, behind the shock (i.e., to the left of x4) but to the right of the contact discontinuity (x3), the specific entropy of the fluid has been increased over its pre-shock value because of heating through the shock. Hence, ( rpost/rright ) = 2.1915 does not equal ( Ppost/Pright )1/g = 2.290 . But this adiabatic relationship between P and r must be hold for the material that is to the left of the discontinuity (x3), that is, ( rmiddle/rleft ) = ( Ppost/Pleft )1/g = 0.44215. Hence, rmiddle = 0.44215.


Solution Between x1 and x2

Finally in the rarefaction wave,

csound = m2[ (x0-x)/t ] + ( 1 - m2) cleft ;
v = ( 1 - m2 ) [ - (x0-x)/t + cleft ] ;
r = rleft ( c/cleft )2/(g-1) ;
P = Pleft ( r/rleft )g .
Then, at all locations, e = P / [ ( g - 1 ) r ] .