Appearance
Non-reflecting boundary
The open boundaries of #121: the non-reflecting outflow (S2, legs nr) and the shock generator (S3, legs sg).
[bc_*] type = non-reflecting (#121 S2) is a characteristic outflow and far-field boundary. It extrapolates the outgoing waves, relaxes the incoming acoustic wave toward a target pressure (Rudy & Strikwerda 1980, Poinsot & Lele 1992), and takes the target's entropy and tangential velocity where flow enters (boundary conditions). The legs measure what it does against the kinds it would replace, extrapolation and inflow. Script: src/tests/flume/verification/boundary/check.sh.
| Setup | |
|---|---|
| box, cells | |
| gas | Euler, |
| packet | sine-wave acoustic, wavelength 0.2, amplitude |
| boundary | non-reflecting with the free stream as target, nr_length), |
| scheme | WENO-U-5 characteristic, SSP-54, CFL 0.5, 2 ranks |
| Leg | Case | Oracle | Measured (CPU; FNL the same to the digits shown) |
|---|---|---|---|
| nr1 | inflow) | equal to extrapolation bit for bit | 0 of 64 datasets differ, both |
| nr2 | the packet leaving through | the largest | 2.86e-3, 7.56e-4, ratio 3.78; extrapolation 1.15e-4 |
| nr3 | a uniform 2 % overpressure at Mach 0.5, both x faces non-reflecting, | the box-mean overpressure left, over the initial: below 0.15; with extrapolation, above 0.95 | 0.099; 1.000 |
| nr4 | a left-running packet leaving through the subsonic inflow face | what is left: below 6e-3 | 4.28e-3; inflow 1.41e-5 |

Left: what is left in the box once the packet of nr2 has gone, against x. Right: the box-mean overpressure of nr3 against time, from the box integrals; dotted,
What it shows.
- It anchors the pressure; extrapolation does not. The overpressure falls to 0.099 of itself in 10 acoustic crossings, close to
with . Extrapolation keeps it at 1.000: a subsonic outflow with extrapolationhas no pressure of its own. - It is not less reflecting than the kinds it would replace. In this characteristic-upwind scheme
extrapolationalready makes the incoming characteristic jumps zero, andinflowmakes them the free stream's: both let linear waves out (1.2e-4, 1.4e-5 left behind). The relaxation that holds the pressure reflects in proportion to(2.9e-3 at 0.28, 7.6e-4 at 0.07, ratio 3.8 for a ratio of 4), as predicts. - Its limits are exact: at
, and at a supersonic outflow, it is extrapolation bit for bit.
Use it where a subsonic outflow or a far-field face must hold a pressure, with extrapolation.
Shock generator
[bc_y_max] type = shock-generator (#121 S3, boundary conditions) brings an oblique shock in through the top face. The legs measure the shock it makes against the oblique-shock relations (shockgen_oracle.py, which solves them on its own).
| Setup | |
|---|---|
| box, cells | |
| gas | Euler, |
| boundary | inflow at extrapolation at shock-generator at shock_x = 0.5 ( |
| scheme | WENO-U-5 characteristic, SSP-54, CFL 0.5, 2 ranks, to |
| Leg | Case | Oracle | Measured (CPU; FNL the same to the digits shown) |
|---|---|---|---|
| sg1 | the shock by its deflection | the uniform region behind it (16 cells off the shock, 4 below the streamline from its foot, above | |
| sg2 | the same shock by its angle (shock_angle 39.313932) | as sg1 | the same digits |
| sg3 | a shock entering beyond the box (shock_x 3) | equal to an extrapolated top bit for bit | 0 of 64 datasets differ |

Left:
What it shows.
- The shock is where the relations put it. Its angle is within
of , and it meets the top within a cell of shock_x; behind it the state is Rankine–Hugoniot's within. - What the oracle leaves out, and why. The captured shock leaves oscillations of a few
that decay over 16 cells behind it (the staircase of an oblique shock on a Cartesian grid). The jump of the ghost state at shock_xleaves an entropy streak along the streamline from the foot (7e-3 off, the pressure continuous). Where the shock leaves through the extrapolated bottom, the corner downstream sits up to 4 % high: an extrapolated face crossed by an oblique shock is not clean. In a shock–boundary-layer interaction the shock meets the wall instead.