Пристеночная функция Spalding, многоуровневый домен, группы J и K

Решатель:
- --wall-function spalding поверх bouzidi/grad/hrr: моментные схемы берут
  модельную скорость узла и u_τ²/ν в тензор давлений, Bouzidi — скольжение
  стенки, согласованное по напряжению (в вязком подслое тождественно ноль);
- --levels: цепочка вложенных уровней с рекурсивным шагом на CPU и GPU,
  одиночный патч — её частный случай, прежние постановки побитово те же;
- --sponge-side, β по узлам; в сводке y⁺, cl_mean, rho_probe_rms.
- Исправлено: на GPU при --refine >= 3 сила лишних подшагов терялась за
  краем буфера, Cd занижался в r/2 раза.

Кампания: группы J (65, схемы стенки с функцией) и K (25, внешний домен),
205 прогонов на 5 долей по ≈27 ч; bench/compare.py сводит J и K против
эталонов; parity.py сверяет Spalding и три уровня. Образ 1.4.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 12:25:43 +03:00
co-authored by Claude Opus 5.5
parent 1d495e3e89
commit 86e9c7139d
14 changed files with 5574 additions and 596 deletions
+20
View File
@@ -79,6 +79,26 @@ CASES = [
"degenerate_frac": 5.0},
"report": ["strouhal"],
},
# Пристеночная функция переписана в WGSL отдельно от math.rs (закон Spalding, Ньютон в
# f32), поэтому сверяется отдельно. При Re=20 y⁺ < 1 и функция почти не меняет
# результат — проверяется именно совпадение двух реализаций, а не физика.
{
"name": "цилиндр Re=20, Град + Spalding, 8000 шагов",
"args": ["--shape", "cylinder", "--size", "16", "--nx", "320", "--ny", "192",
"--re", "20", "--refine", "1", "--steps", "8000",
"--wall", "grad", "--wall-function", "spalding"],
"fields": {"cd": 1.0, "rho_mean": 0.05, "yplus_mean": 1.0},
"report": ["strouhal"],
},
# Три уровня: рекурсивная связка уровней и сквозная нумерация подшагов силы на GPU.
{
"name": "цилиндр Re=20, три уровня ×2×2, 3000 шагов",
"args": ["--shape", "cylinder", "--size", "8", "--nx", "240", "--ny", "160",
"--re", "20", "--levels", "2:4,10,4; 2:1.5,4,1.5", "--wall", "bouzidi",
"--steps", "3000"],
"fields": {"cd": 1.0, "rho_mean": 0.05},
"report": ["strouhal"],
},
]