test: DFG Re20 steady rule as agreed (10 % range, 2 % slope, window-mean verdict)
Supersedes71221837. Samples every t* 0.5 (interval-mean forces), trailing t* 50..60 window (21 samples); range <= 10 % and |slope*window| <= 2 % of each official band width. Verdict on the window mean with the distance to the nearest band edge. Our engineering rule, frozen before any run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit869d60d78e)
This commit is contained in:
@@ -22,11 +22,14 @@ 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* = 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.
|
||||
- One sample every t* = 0.5 (0.25 s) at the end of a synchronized root step; Cd and
|
||||
Cl are interval means. Trailing window t* 50..60 inclusive (21 samples).
|
||||
- Steady rule (our engineering choice, not official): in the window, for each of Cd,
|
||||
Cl, p_diff, max - min <= 10 % and |least-squares slope x window| <= 2 % of its
|
||||
official interval width (range 2e-3 / 6e-5 / 4e-5; slope 4e-4 / 1.2e-5 / 8e-6).
|
||||
Absolute limits, so the small Cl is never a divisor. Never relaxed after a run.
|
||||
- The verdict uses the window mean; the distance to the nearest interval edge is
|
||||
reported for each quantity (negative outside).
|
||||
- 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
|
||||
@@ -37,10 +40,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 refined \
|
||||
CUDA_VISIBLE_DEVICES=<n> python tests/validation/run_dfg_re20.py --case both \
|
||||
--collision SRT --output <new-dir> --max-wall-seconds <cap>
|
||||
```
|
||||
|
||||
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`
|
||||
The uniform D80 control separates method error from refinement error. `--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