☰
Sod’s shock tube
One-dimensional | AUSM+-up flux scheme
G. A. Sod, "A Survey of Several Finite Difference Methods for Systems of Nonlinear Hyperbolic Conservation Laws", J. Comput. Phys., vol. 27, pp. 1-31, 1978.
Subsonic case
Working directory located here
1. CASE SETUP
1.1 Mesh
The mesh is one-dimensional (empty
patches for walls in the y and z directions) and a resolution of 10 mesh points per meter is used along x. Zero-gradients boundary conditions are implemented at both ends of the tube.
1.2 Case conditions
A one-dimensional subsonic Sod tube of length L = 10 m is considered with initial conditions for the left (L) and right (R) states chosen to match the normalised values presented in the following Table. These conditions should yield from left to right an expansion wave (E), a contact discontinuity (C) and a shock wave (S).
State | Normalised density | Normalised pressure | Mach number |
---|---|---|---|
Left (L) | 1 | 1 | 0 |
Right (R) | 0.125 | 0.1 | 0 |
The diaphragm located in the middle of the tube breaks at t = 0 s.
1.3 Thermo-chemical and transport models
This test case is using the following thermo-chemical and transport models:
- calorically-perfect nitrogen gas
- inviscid fluid
- no chemical reactions
- single-temperature model
- laminar flow
1.4 Time controls
The constant time-step is set to 1 µs and the simulation is run until t = 5 ms.
1.5 Time and flux schemes
The temporal and flux schemes used are the first-order implicit Euler time scheme and the AUSM+-up flux scheme, respectively. The AUSM+-up model coefficients are given below.
fluxScheme AUSM+up;
fluxSchemeCoefficients
{
AUSM+upCoefficients
{
MachInf 1.0;
alpha 0.1875;
beta 0.125;
sigma 1.0;
Kp 0.25;
Ku 0.75;
}
}
2. RUNNING
The following commands will execute blockMesh, checkMesh, setFields and hy2Foam in serial
./Allclean
./Allrun
3. SOLUTION
Length, density, pressure, and temperature are normalised as follows:
`x^∗ = \frac{x}{L}`,
`ρ^∗ = \frac{ρ - ρ_R}{ρ_L - ρ_R}`,
`p^∗ = \frac{p - p_R}{p_L - p_R}`,
`T^∗ = \frac{T - T_R}{T_L - T_R}`.
On the following graphs, the tutorial case results for density, pressure, temperature and Mach are given by the red symbols. hy2Foam’s solution for the Kurganov-Noelle-Petrova (KNP) scheme is also shown as a reference.
4. REGRESSION TESTING
Check that the results are matching the solution stored in
./Alltest
Supersonic case
Working directory located here
1. CASE SETUP
1.1 Mesh
See subsonic case.
1.2 Case conditions
The shock tube case introduced in the previous section is simulated again for a different set of initial left and right state conditions resulting in a supersonic flow:
State | Normalised density | Normalised pressure | Mach number |
---|---|---|---|
Left (L) | 1 | 1 | 0 |
Right (R) | 0.01 | 0.01 | 0 |
1.3 Thermo-chemical and transport models
See subsonic case.
1.4 Time controls
See subsonic case.
1.5 Time and flux schemes
See subsonic case.
2. RUNNING
The following commands will execute blockMesh, checkMesh, setFields and hy2Foam in serial
./Allclean
./Allrun
3. SOLUTION
Because the left and right temperatures are equal, the normalised temperature is computed as
`T^∗ = \frac{T - T_R}{T_R}`.
On the following graphs, the tutorial case results for density, pressure, temperature and Mach are given by the red symbols:
4. REGRESSION TESTING
Check that the results are matching the solution stored in
./Alltest
Contributor: Dr Vincent Casseau