2-D odd-even, striping test

This test is designed to produce a strong numerical instability, known variously as the odd-even decoupling, the striping instability, the Carbuncle instability or more colourfully the red-black instability.

When a strong shock is moving slowly across a grid, such that the shock interface is aligned with the underlying grid (in any coordinate system) a pattern of stripes perpendicular to the shock can develop very quickly. This has been known for many years, with instances seen in the 1984 Collella and Woordard review paper. The instability is very strong, and can be seeded even by errors in the cell coordinates at the limit of floating point precision. In Sutherland et al. (2003) it was seen that by defining the cell coordinates in one part of the code additively, by adding successive deltas, and elsewhere multipicatively by setting a multiple of the grid delta, resulted in a pattern of cell boundary differences at the level of the smallest bits of precsion in use.

Eliminating this grid coordinate noise results in a code such that, if an essentially 1-D simulation, ie a shock aligned with the grid perfectly, is set up on a 2-D grid, then the simulation will remain 1-D indefinitely, and hence the striping cannot appear, as that would break the 1-D symmetry.

This does not mean that the striping instability is not present, it is just a special case where symmetry prevents it being triggered. The Liska and Wendroff odd-even decoupling test is unfortunately just such an ideal 1-D test performed on a 2-D grid. As Fyris is designed to allow 1-D symmetry to persist indefinitly - owing to its careful grid coordinate construction, then no striping will occur in Fyris, even without any additional dissipation scheme being added.

The results of the L&W odd-even test are shown here, and Fyris is completely free of striping in this (special) case. The fact that the other codes do produce striping in this test is likely due to their coordinate schemes not being perfectly uniform.

Here the test is run with standard Fyris settings, including the stardard striping correction code on as is the default, and then with the striping correction code turned off, which is non-standard. The results are identical, and in order to get striping and test the striping control code, a new odd-even decoupling test has been developed, the RS07 striping test.

 

Initial conditions

The initial conditions are as per the 1D blast test, but on a 2-D 800x10 grid:

  • adiabatic Index: 1.4
 

Grid

Domain: 0.0 < x <1.0, 0.0 < y < 0.0125, 800 x 10 cells.

Y boundaries are periodic, X boundaries are reflecting.

Region 0

  • Density: 1.0
  • Pressure: 1000.0
  • Velocity: v_x = 0.0, v_y = 0.0

Region 1

  • Density: 1.0
  • Pressure: 0.01
  • Velocity: v_x = 0.0, v_y = 0.0
  • x_0/1 = 0.1
  • x_1/2 = 0.9

Region 2

  • Density: 1.0
  • Pressure: 100.0
  • Velocity: v_x = 0.0, v_y = 0.0
 

Code settings

  • CFL number: 0.8, (Standard)
  • Flattening: minimum 0.0, maximum 1.0 (standard)
 

Ending condition

Time, t = 0.038

 

Results

The region of interest at t = 0.038 is 0.65< x < 0.85, or cells with x indexes of 520-680. Here the whole grid is shown. No striping occurs, with or without the striping/carbuncle control code in place. A more severe striping test is needed to force Fyris to create stripes, see the RS07 striping test. 

 

Striping control on

Density

Pressure

X-velocity Auto scaled

(min  max)

 

Striping control off

Density

Pressure

X-velocity Auto scaled

(min  max)