test: DFG Re20 steady rule per review (1 % band, range and slope, 0.5 s samples)
Samples every 0.5 s at synchronized root steps; trailing 5 s window (11
samples); range and |slope*window| each at most 1 % of the official band
width. States the fluid-on-cylinder force sign, reports cd_positive,
defaults to the refined case and uses the review's label.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 71221837f9)
This commit is contained in:
@@ -6,7 +6,7 @@ inflow, initial state, layout and observation are those of the pinned Re100 runn
|
||||
(`run_refined_dfg.py`, `re100_helpers.py`, both unchanged); only the lattice
|
||||
viscosity is set for Re 20 (root tau 0.56, fine 0.62, uniform 0.62, lattice speed 0.01).
|
||||
|
||||
This is a comparison with the official intervals, not a full benchmark
|
||||
Label: "compared against the official reference bands", not a full benchmark
|
||||
certification: the outlet is pressure-NEQ (`neq_extrap`), not do-nothing, and the
|
||||
inlet is local Zou-He.
|
||||
|
||||
@@ -22,10 +22,13 @@ inlet is local Zou-He.
|
||||
## Bounds and steady rule (frozen before any run)
|
||||
|
||||
- End time t* = 60 (30 s physical): 240,000 refined root steps, 480,000 uniform steps.
|
||||
- One sample every t* = 0.5; trailing window t* = 10 (5 s, 20 samples).
|
||||
- Steady: in the window, max - min of each of Cd, Cl, p_diff is at most one tenth of
|
||||
its official interval width (0.002, 0.00006, 0.00004). Absolute ranges, so the
|
||||
small Cl is never used as a divisor.
|
||||
- One sample every t* = 1 (0.5 s) at the end of a synchronized root step; trailing
|
||||
window t* = 10 (last 5 s, 11 samples).
|
||||
- Steady: in the window, both max - min and |least-squares slope x window| of each
|
||||
of Cd, Cl, p_diff are at most 1 % of its official interval width (2e-4, 6e-6,
|
||||
4e-6). Absolute limits, so the small Cl is never a divisor. Never relaxed after a run.
|
||||
- Force sign: fluid on cylinder, x along the inflow, y up from the bottom wall; Cd > 0
|
||||
and the official Cl > 0 (`cd_positive` is reported).
|
||||
- Not steady at t* = 60: status `NOT_STEADY`, no interval verdict. Health limits
|
||||
(Mach <= 0.2, rho in [0.5, 1.5]) stop the run with `UNHEALTHY`.
|
||||
- Steady: `WITHIN_INTERVALS` or `OUTSIDE_INTERVALS`, with the per-quantity verdict.
|
||||
@@ -34,10 +37,10 @@ inlet is local Zou-He.
|
||||
|
||||
```
|
||||
python tests/validation/run_dfg_re20.py --output <new-dir> --plan
|
||||
CUDA_VISIBLE_DEVICES=<n> python tests/validation/run_dfg_re20.py --case both \
|
||||
CUDA_VISIBLE_DEVICES=<n> python tests/validation/run_dfg_re20.py --case refined \
|
||||
--collision SRT --output <new-dir> --max-wall-seconds <cap>
|
||||
```
|
||||
|
||||
`--plan` writes `plan.json` only. A GPU run writes `plan.json` and `result.json`
|
||||
Run `--case uniform` only if the refined result is outside a band. `--plan` writes `plan.json` only. A GPU run writes `plan.json` and `result.json`
|
||||
(per case: lattice parameters, every sample, window ranges, status, verdict).
|
||||
Host contract tests: `tests/unit/test_dfg_re20.py`.
|
||||
|
||||
Reference in New Issue
Block a user