Files
CFDManager/docs/theory/2d_solver/bench/scenarios.json
T
NotBigGhostandClaude Opus 5.5 1d495e3e89 Кампания на пять равных долей: контейнер сразу считает свою часть
gen_scenarios.py раскладывает 115 прогонов по пяти долям (LPT, поправка
на размер сетки по замерам dzn) — по ≈24 ч каждая; поле shard в
scenarios.json. run_campaign.sh/.ps1 получили --shard. Новая точка входа
образа entrypoint.sh: при KBC2D_SHARD сама выбирает путь к карте (dzn
или NVIDIA), проверяет vulkaninfo и parity.py и запускает долю. Для
чужих ПК под Windows/WSL2 — docker-compose.shards.yml и shard.bat.
Образ notbigghost/kbc2d:1.3.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 20:15:40 +03:00

4976 lines
94 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"meta": {
"note": "Стоимость в обновлениях узлов — единственная переносимая между машинами мера. Часы драйвер получает, поделив её на фактические MLUPS, которые замеряет на месте (--calibrate).",
"gif_policy": "вся длительность прогона, реальная скорость, 10 кадр/с; кадр прореживается до ширины не больше 1280 пикселей",
"scale": 2.0,
"assumed_gpu_mlups": 1200,
"assumed_cpu_mlups": 22,
"shards": 5,
"shard_hours": [
24.0,
24.0,
24.0,
24.0,
24.0
]
},
"runs": [
{
"id": "A01_tg_diff_n64",
"group": "A",
"title": "Тейлор–Грин, диффузионное измельчение, N=64 (CPU/f64)",
"expect": "порядок сходимости 2 по ряду N=64..512; ошибка на N=512 ниже 2e-4",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"64",
"--ny",
"64",
"--refine",
"1",
"--u-lat",
"0.030000",
"--re",
"100",
"--case-every",
"11",
"--steps",
"220",
"--backend",
"cpu",
"--case-csv",
"A01_tg_diff_n64_case.csv"
],
"nodes_per_step": 4096,
"steps": 220,
"cost": 901120,
"outputs": [
"case_csv"
],
"shard": 1
},
{
"id": "A02_tg_diff_n128",
"group": "A",
"title": "Тейлор–Грин, диффузионное измельчение, N=128 (CPU/f64)",
"expect": "порядок сходимости 2 по ряду N=64..512; ошибка на N=512 ниже 2e-4",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"128",
"--ny",
"128",
"--refine",
"1",
"--u-lat",
"0.015000",
"--re",
"100",
"--case-every",
"44",
"--steps",
"881",
"--backend",
"cpu",
"--case-csv",
"A02_tg_diff_n128_case.csv"
],
"nodes_per_step": 16384,
"steps": 881,
"cost": 14434304,
"outputs": [
"case_csv"
],
"shard": 5
},
{
"id": "A03_tg_diff_n256",
"group": "A",
"title": "Тейлор–Грин, диффузионное измельчение, N=256 (CPU/f64)",
"expect": "порядок сходимости 2 по ряду N=64..512; ошибка на N=512 ниже 2e-4",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"256",
"--ny",
"256",
"--refine",
"1",
"--u-lat",
"0.007500",
"--re",
"100",
"--case-every",
"176",
"--steps",
"3525",
"--backend",
"cpu",
"--case-csv",
"A03_tg_diff_n256_case.csv"
],
"nodes_per_step": 65536,
"steps": 3525,
"cost": 231014400,
"outputs": [
"case_csv"
],
"shard": 2
},
{
"id": "A04_tg_diff_n512",
"group": "A",
"title": "Тейлор–Грин, диффузионное измельчение, N=512 (CPU/f64)",
"expect": "порядок сходимости 2 по ряду N=64..512; ошибка на N=512 ниже 2e-4",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"512",
"--ny",
"512",
"--refine",
"1",
"--u-lat",
"0.003750",
"--re",
"100",
"--case-every",
"705",
"--steps",
"14101",
"--backend",
"cpu",
"--case-csv",
"A04_tg_diff_n512_case.csv"
],
"nodes_per_step": 262144,
"steps": 14101,
"cost": 3696492544,
"outputs": [
"case_csv"
],
"shard": 1
},
{
"id": "A05_tg_fixed_n128",
"group": "A",
"title": "Тейлор–Грин при фиксированном u₀, N=128 — демонстрация полки O(Ma²)",
"expect": "ошибка перестаёт падать с ростом N: это свойство слабо-сжимаемого метода",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"128",
"--ny",
"128",
"--refine",
"1",
"--u-lat",
"0.03",
"--re",
"200.0",
"--case-every",
"44",
"--steps",
"881",
"--backend",
"cpu",
"--case-csv",
"A05_tg_fixed_n128_case.csv"
],
"nodes_per_step": 16384,
"steps": 881,
"cost": 14434304,
"outputs": [
"case_csv"
],
"shard": 5
},
{
"id": "A06_tg_fixed_n256",
"group": "A",
"title": "Тейлор–Грин при фиксированном u₀, N=256 — демонстрация полки O(Ma²)",
"expect": "ошибка перестаёт падать с ростом N: это свойство слабо-сжимаемого метода",
"backend": "cpu",
"args": [
"--case",
"taylor-green",
"--nx",
"256",
"--ny",
"256",
"--refine",
"1",
"--u-lat",
"0.03",
"--re",
"400.0",
"--case-every",
"176",
"--steps",
"3525",
"--backend",
"cpu",
"--case-csv",
"A06_tg_fixed_n256_case.csv"
],
"nodes_per_step": 65536,
"steps": 3525,
"cost": 231014400,
"outputs": [
"case_csv"
],
"shard": 5
},
{
"id": "A07_shear_n512_kbc_n1",
"group": "A",
"title": "Сдвиговый слой Re=3·10⁴, N=512, kbc_n1",
"expect": "KBC доживает до конца, LBGK обязан развалиться (разд. VII статьи)",
"backend": "gpu",
"args": [
"--case",
"shear-layer",
"--nx",
"512",
"--ny",
"512",
"--refine",
"1",
"--u-lat",
"0.04",
"--re",
"30000",
"--collision",
"kbc",
"--kbc-model",
"n1",
"--case-every",
"512",
"--steps",
"102400",
"--backend",
"gpu",
"--case-csv",
"A07_shear_n512_kbc_n1_case.csv",
"--gif",
"shear_kbc_n1.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 262144,
"steps": 102400,
"cost": 26843545600,
"outputs": [
"case_csv"
],
"shard": 1
},
{
"id": "A08_shear_n512_kbc_n2",
"group": "A",
"title": "Сдвиговый слой Re=3·10⁴, N=512, kbc_n2",
"expect": "KBC доживает до конца, LBGK обязан развалиться (разд. VII статьи)",
"backend": "gpu",
"args": [
"--case",
"shear-layer",
"--nx",
"512",
"--ny",
"512",
"--refine",
"1",
"--u-lat",
"0.04",
"--re",
"30000",
"--collision",
"kbc",
"--kbc-model",
"n2",
"--case-every",
"512",
"--steps",
"102400",
"--backend",
"gpu",
"--case-csv",
"A08_shear_n512_kbc_n2_case.csv",
"--gif",
"shear_kbc_n2.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 262144,
"steps": 102400,
"cost": 26843545600,
"outputs": [
"case_csv"
],
"shard": 4
},
{
"id": "A09_shear_n512_lbgk",
"group": "A",
"title": "Сдвиговый слой Re=3·10⁴, N=512, lbgk",
"expect": "KBC доживает до конца, LBGK обязан развалиться (разд. VII статьи)",
"backend": "gpu",
"args": [
"--case",
"shear-layer",
"--nx",
"512",
"--ny",
"512",
"--refine",
"1",
"--u-lat",
"0.04",
"--re",
"30000",
"--collision",
"bgk",
"--kbc-model",
"n1",
"--case-every",
"512",
"--steps",
"102400",
"--backend",
"gpu",
"--case-csv",
"A09_shear_n512_lbgk_case.csv",
"--gif",
"shear_lbgk.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 262144,
"steps": 102400,
"cost": 26843545600,
"outputs": [
"case_csv"
],
"shard": 1
},
{
"id": "A10_turb_n2048_kbc",
"group": "A",
"title": "Затухающая турбулентность N=2048, kbc",
"expect": "энстрофия и палинстрофия падают монотонно; KBC держится там, где LBGK нет",
"backend": "gpu",
"args": [
"--case",
"decaying-turbulence",
"--nx",
"2048",
"--ny",
"2048",
"--refine",
"1",
"--u-lat",
"0.02",
"--re",
"501961",
"--collision",
"kbc",
"--case-every",
"1333",
"--steps",
"400000",
"--backend",
"gpu",
"--case-csv",
"A10_turb_n2048_kbc_case.csv",
"--gif",
"turb_n2048_kbc.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 4194304,
"steps": 400000,
"cost": 1677721600000,
"outputs": [
"case_csv"
],
"shard": 3
},
{
"id": "A11_turb_n2048_bgk",
"group": "A",
"title": "Затухающая турбулентность N=2048, bgk",
"expect": "энстрофия и палинстрофия падают монотонно; KBC держится там, где LBGK нет",
"backend": "gpu",
"args": [
"--case",
"decaying-turbulence",
"--nx",
"2048",
"--ny",
"2048",
"--refine",
"1",
"--u-lat",
"0.02",
"--re",
"501961",
"--collision",
"bgk",
"--case-every",
"1333",
"--steps",
"400000",
"--backend",
"gpu",
"--case-csv",
"A11_turb_n2048_bgk_case.csv",
"--gif",
"turb_n2048_bgk.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 4194304,
"steps": 400000,
"cost": 1677721600000,
"outputs": [
"case_csv"
],
"shard": 5
},
{
"id": "A12_turb_n4096_kbc",
"group": "A",
"title": "Затухающая турбулентность N=4096, kbc",
"expect": "энстрофия и палинстрофия падают монотонно; KBC держится там, где LBGK нет",
"backend": "gpu",
"args": [
"--case",
"decaying-turbulence",
"--nx",
"4096",
"--ny",
"4096",
"--refine",
"1",
"--u-lat",
"0.02",
"--re",
"1003922",
"--collision",
"kbc",
"--case-every",
"666",
"--steps",
"200000",
"--backend",
"gpu",
"--case-csv",
"A12_turb_n4096_kbc_case.csv",
"--gif",
"turb_n4096_kbc.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"4",
"--gif-scale",
"1"
],
"nodes_per_step": 16777216,
"steps": 200000,
"cost": 3355443200000,
"outputs": [
"case_csv"
],
"shard": 4
},
{
"id": "B01_cyl_re20",
"group": "B",
"title": "Цилиндр Re=20, стационар, D=48",
"expect": "Cd выходит на постоянную; сравнение с литературой по стационарному обтеканию",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"20",
"--refine",
"1",
"--pert-amp",
"0",
"--steps",
"115200",
"--backend",
"gpu",
"--gif",
"cyl_re20.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 115200,
"cost": 63700992000,
"outputs": [],
"shard": 3
},
{
"id": "B02_cyl_re40",
"group": "B",
"title": "Цилиндр Re=40, стационар, D=48",
"expect": "Cd выходит на постоянную; сравнение с литературой по стационарному обтеканию",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"40",
"--refine",
"1",
"--pert-amp",
"0",
"--steps",
"115200",
"--backend",
"gpu",
"--gif",
"cyl_re40.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 115200,
"cost": 63700992000,
"outputs": [],
"shard": 4
},
{
"id": "B03_cyl_re100",
"group": "B",
"title": "Цилиндр Re=100, дорожка Кармана, D=64, 1500 конв. времён",
"expect": "St≈0.183 и ⟨Cd⟩≈1.33 при Re=150 после поправки на блокировку",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"64",
"--nx",
"1280",
"--ny",
"768",
"--body-x",
"256",
"--re",
"100",
"--refine",
"1",
"--steps",
"3840000",
"--backend",
"gpu",
"--series-every",
"19",
"--gif",
"cyl_re100.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 983040,
"steps": 3840000,
"cost": 3774873600000,
"outputs": [],
"shard": 1
},
{
"id": "B04_cyl_re150",
"group": "B",
"title": "Цилиндр Re=150, дорожка Кармана, D=64, 1500 конв. времён",
"expect": "St≈0.183 и ⟨Cd⟩≈1.33 при Re=150 после поправки на блокировку",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"64",
"--nx",
"1280",
"--ny",
"768",
"--body-x",
"256",
"--re",
"150",
"--refine",
"1",
"--steps",
"3840000",
"--backend",
"gpu",
"--series-every",
"19",
"--gif",
"cyl_re150.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 983040,
"steps": 3840000,
"cost": 3774873600000,
"outputs": [],
"shard": 5
},
{
"id": "B05_cyl_re200",
"group": "B",
"title": "Цилиндр Re=200, дорожка Кармана, D=64, 1500 конв. времён",
"expect": "St≈0.183 и ⟨Cd⟩≈1.33 при Re=150 после поправки на блокировку",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"64",
"--nx",
"1280",
"--ny",
"768",
"--body-x",
"256",
"--re",
"200",
"--refine",
"1",
"--steps",
"3840000",
"--backend",
"gpu",
"--series-every",
"19",
"--gif",
"cyl_re200.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 983040,
"steps": 3840000,
"cost": 3774873600000,
"outputs": [],
"shard": 2
},
{
"id": "B06_cyl_re300",
"group": "B",
"title": "Цилиндр Re=300, дорожка Кармана, D=64, 1500 конв. времён",
"expect": "St≈0.183 и ⟨Cd⟩≈1.33 при Re=150 после поправки на блокировку",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"64",
"--nx",
"1280",
"--ny",
"768",
"--body-x",
"256",
"--re",
"300",
"--refine",
"1",
"--steps",
"3840000",
"--backend",
"gpu",
"--series-every",
"19",
"--gif",
"cyl_re300.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 983040,
"steps": 3840000,
"cost": 3774873600000,
"outputs": [],
"shard": 1
},
{
"id": "B07_cyl_d16",
"group": "B",
"title": "Цилиндр Re=150, разрешение D=16",
"expect": "Cd сходится по D; экстраполяция даёт сеточно-независимое значение",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"150",
"--refine",
"1",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"cyl_d16.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 61440,
"steps": 512000,
"cost": 31457280000,
"outputs": [],
"shard": 3
},
{
"id": "B08_cyl_d32",
"group": "B",
"title": "Цилиндр Re=150, разрешение D=32",
"expect": "Cd сходится по D; экстраполяция даёт сеточно-независимое значение",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--steps",
"1024000",
"--backend",
"gpu",
"--series-every",
"5",
"--gif",
"cyl_d32.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 245760,
"steps": 1024000,
"cost": 251658240000,
"outputs": [],
"shard": 3
},
{
"id": "B09_cyl_d64",
"group": "B",
"title": "Цилиндр Re=150, разрешение D=64",
"expect": "Cd сходится по D; экстраполяция даёт сеточно-независимое значение",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"64",
"--nx",
"1280",
"--ny",
"768",
"--body-x",
"256",
"--re",
"150",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"cyl_d64.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 983040,
"steps": 2048000,
"cost": 2013265920000,
"outputs": [],
"shard": 3
},
{
"id": "B10_cyl_d128",
"group": "B",
"title": "Цилиндр Re=150, разрешение D=128",
"expect": "Cd сходится по D; экстраполяция даёт сеточно-независимое значение",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"128",
"--nx",
"2560",
"--ny",
"1536",
"--body-x",
"512",
"--re",
"150",
"--refine",
"1",
"--steps",
"4096000",
"--backend",
"gpu",
"--series-every",
"20",
"--gif",
"cyl_d128.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"5",
"--gif-scale",
"1"
],
"nodes_per_step": 3932160,
"steps": 4096000,
"cost": 16106127360000,
"outputs": [],
"shard": 5
},
{
"id": "B11_cyl_block6",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=6",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"288",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 276480,
"steps": 1920000,
"cost": 530841600000,
"outputs": [],
"shard": 5
},
{
"id": "B12_cyl_block8",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=8",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"384",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 368640,
"steps": 1920000,
"cost": 707788800000,
"outputs": [],
"shard": 5
},
{
"id": "B13_cyl_block12",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=12",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 552960,
"steps": 1920000,
"cost": 1061683200000,
"outputs": [],
"shard": 5
},
{
"id": "B14_cyl_block16",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=16",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"768",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 737280,
"steps": 1920000,
"cost": 1415577600000,
"outputs": [],
"shard": 1
},
{
"id": "B15_cyl_block24",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=24",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"1152",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 1105920,
"steps": 1920000,
"cost": 2123366400000,
"outputs": [],
"shard": 2
},
{
"id": "B16_cyl_block32",
"group": "B",
"title": "Цилиндр Re=150, блокировка Ny/D=32",
"expect": "экстраполяция Cd и St к нулевой блокировке; ожидание — сходимость к 1.33 и 0.183",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"1536",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"1920000",
"--backend",
"gpu",
"--series-every",
"9"
],
"nodes_per_step": 1474560,
"steps": 1920000,
"cost": 2831155200000,
"outputs": [],
"shard": 4
},
{
"id": "C01_wall_hrr_re150",
"group": "C",
"title": "Модель стенки hrr, Re=150",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--wall",
"hrr",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"wall_hrr_re150.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 2
},
{
"id": "C02_wall_hrr_re2000",
"group": "C",
"title": "Модель стенки hrr, Re=2000",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"2000",
"--refine",
"1",
"--wall",
"hrr",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 5
},
{
"id": "C03_wall_grad_re150",
"group": "C",
"title": "Модель стенки grad, Re=150",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--wall",
"grad",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"wall_grad_re150.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 4
},
{
"id": "C04_wall_grad_re2000",
"group": "C",
"title": "Модель стенки grad, Re=2000",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"2000",
"--refine",
"1",
"--wall",
"grad",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 2
},
{
"id": "C05_wall_bouzidi_re150",
"group": "C",
"title": "Модель стенки bouzidi, Re=150",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--wall",
"bouzidi",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"wall_bouzidi_re150.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 5
},
{
"id": "C06_wall_bouzidi_re2000",
"group": "C",
"title": "Модель стенки bouzidi, Re=2000",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"2000",
"--refine",
"1",
"--wall",
"bouzidi",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 1
},
{
"id": "C07_wall_staircase_re150",
"group": "C",
"title": "Модель стенки staircase, Re=150",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--wall",
"staircase",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"wall_staircase_re150.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 3
},
{
"id": "C08_wall_staircase_re2000",
"group": "C",
"title": "Модель стенки staircase, Re=2000",
"expect": "все субсеточные модели обязаны сойтись к одному пределу; staircase — база",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"2000",
"--refine",
"1",
"--wall",
"staircase",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 4
},
{
"id": "C09_sub_hrr_00",
"group": "C",
"title": "Субклеточный сдвиг тела 0.0 клетки, стенка hrr",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.0",
"--wall",
"hrr",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 3
},
{
"id": "C10_sub_hrr_25",
"group": "C",
"title": "Субклеточный сдвиг тела 0.25 клетки, стенка hrr",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.25",
"--wall",
"hrr",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 4
},
{
"id": "C11_sub_hrr_50",
"group": "C",
"title": "Субклеточный сдвиг тела 0.5 клетки, стенка hrr",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.5",
"--wall",
"hrr",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 2
},
{
"id": "C12_sub_grad_00",
"group": "C",
"title": "Субклеточный сдвиг тела 0.0 клетки, стенка grad",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.0",
"--wall",
"grad",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 1
},
{
"id": "C13_sub_grad_25",
"group": "C",
"title": "Субклеточный сдвиг тела 0.25 клетки, стенка grad",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.25",
"--wall",
"grad",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 3
},
{
"id": "C14_sub_grad_50",
"group": "C",
"title": "Субклеточный сдвиг тела 0.5 клетки, стенка grad",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.5",
"--wall",
"grad",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 4
},
{
"id": "C15_sub_bouzidi_00",
"group": "C",
"title": "Субклеточный сдвиг тела 0.0 клетки, стенка bouzidi",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.0",
"--wall",
"bouzidi",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 2
},
{
"id": "C16_sub_bouzidi_25",
"group": "C",
"title": "Субклеточный сдвиг тела 0.25 клетки, стенка bouzidi",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.25",
"--wall",
"bouzidi",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 5
},
{
"id": "C17_sub_bouzidi_50",
"group": "C",
"title": "Субклеточный сдвиг тела 0.5 клетки, стенка bouzidi",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.5",
"--wall",
"bouzidi",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 1
},
{
"id": "C18_sub_staircase_00",
"group": "C",
"title": "Субклеточный сдвиг тела 0.0 клетки, стенка staircase",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.0",
"--wall",
"staircase",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 3
},
{
"id": "C19_sub_staircase_25",
"group": "C",
"title": "Субклеточный сдвиг тела 0.25 клетки, стенка staircase",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.25",
"--wall",
"staircase",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 4
},
{
"id": "C20_sub_staircase_50",
"group": "C",
"title": "Субклеточный сдвиг тела 0.5 клетки, стенка staircase",
"expect": "разброс Cd по сдвигам: чем субсеточнее модель, тем он меньше",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"16",
"--nx",
"320",
"--ny",
"192",
"--body-x",
"64",
"--re",
"20",
"--refine",
"1",
"--body-y",
"96.5",
"--wall",
"staircase",
"--pert-amp",
"0",
"--steps",
"38400",
"--backend",
"gpu"
],
"nodes_per_step": 61440,
"steps": 38400,
"cost": 2359296000,
"outputs": [],
"shard": 2
},
{
"id": "D01_naca0012_a00",
"group": "D",
"title": "NACA 0012, α=0°, Re=1000, хорда 128",
"expect": "линейный участок Cl(α) и срыв; сравнение с низкорейнольдсовой литературой",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"0",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_a00.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 5
},
{
"id": "D02_naca0012_a04",
"group": "D",
"title": "NACA 0012, α=4°, Re=1000, хорда 128",
"expect": "линейный участок Cl(α) и срыв; сравнение с низкорейнольдсовой литературой",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"4",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_a04.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 4
},
{
"id": "D03_naca0012_a08",
"group": "D",
"title": "NACA 0012, α=8°, Re=1000, хорда 128",
"expect": "линейный участок Cl(α) и срыв; сравнение с низкорейнольдсовой литературой",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"8",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_a08.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 3
},
{
"id": "D04_naca0012_a12",
"group": "D",
"title": "NACA 0012, α=12°, Re=1000, хорда 128",
"expect": "линейный участок Cl(α) и срыв; сравнение с низкорейнольдсовой литературой",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"12",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_a12.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 5
},
{
"id": "D05_naca0012_a16",
"group": "D",
"title": "NACA 0012, α=16°, Re=1000, хорда 128",
"expect": "линейный участок Cl(α) и срыв; сравнение с низкорейнольдсовой литературой",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"16",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_a16.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 2
},
{
"id": "D06_naca0012_re500",
"group": "D",
"title": "NACA 0012, α=8°, Re=500",
"expect": "перестройка следа с ростом Re; проверка устойчивости на профиле",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"8",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"500",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_re500.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 4
},
{
"id": "D07_naca0012_re2000",
"group": "D",
"title": "NACA 0012, α=8°, Re=2000",
"expect": "перестройка следа с ростом Re; проверка устойчивости на профиле",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"8",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"2000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_re2000.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 3
},
{
"id": "D08_naca0012_re10000",
"group": "D",
"title": "NACA 0012, α=8°, Re=10000",
"expect": "перестройка следа с ростом Re; проверка устойчивости на профиле",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"128",
"--body-angle",
"8",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"10000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca0012_re10000.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 5
},
{
"id": "D09_naca4412_a00",
"group": "D",
"title": "NACA 4412 (с изгибом), α=0°, Re=1000",
"expect": "ненулевой Cl при α=0 — прямая проверка средней линии профиля",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"4412",
"--size",
"128",
"--body-angle",
"0",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca4412_a00.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 2
},
{
"id": "D10_naca4412_a06",
"group": "D",
"title": "NACA 4412 (с изгибом), α=6°, Re=1000",
"expect": "ненулевой Cl при α=0 — прямая проверка средней линии профиля",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"4412",
"--size",
"128",
"--body-angle",
"6",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca4412_a06.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 4
},
{
"id": "D11_naca4412_a12",
"group": "D",
"title": "NACA 4412 (с изгибом), α=12°, Re=1000",
"expect": "ненулевой Cl при α=0 — прямая проверка средней линии профиля",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"4412",
"--size",
"128",
"--body-angle",
"12",
"--nx",
"2048",
"--ny",
"1024",
"--body-x",
"512",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2048000",
"--backend",
"gpu",
"--series-every",
"10",
"--gif",
"naca4412_a12.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2048000,
"cost": 4294967296000,
"outputs": [],
"shard": 3
},
{
"id": "D12_naca_chord48",
"group": "D",
"title": "NACA 0012, α=8°, сходимость по хорде 48",
"expect": "Cl и Cd сходятся по разрешению хорды",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"48",
"--body-angle",
"8",
"--nx",
"768",
"--ny",
"384",
"--body-x",
"192",
"--re",
"1000",
"--refine",
"1",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 294912,
"steps": 576000,
"cost": 169869312000,
"outputs": [],
"shard": 3
},
{
"id": "D13_naca_chord96",
"group": "D",
"title": "NACA 0012, α=8°, сходимость по хорде 96",
"expect": "Cl и Cd сходятся по разрешению хорды",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"96",
"--body-angle",
"8",
"--nx",
"1536",
"--ny",
"768",
"--body-x",
"384",
"--re",
"1000",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 1179648,
"steps": 1152000,
"cost": 1358954496000,
"outputs": [],
"shard": 3
},
{
"id": "D14_naca_chord192",
"group": "D",
"title": "NACA 0012, α=8°, сходимость по хорде 192",
"expect": "Cl и Cd сходятся по разрешению хорды",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"192",
"--body-angle",
"8",
"--nx",
"3072",
"--ny",
"1536",
"--body-x",
"768",
"--re",
"1000",
"--refine",
"1",
"--steps",
"2304000",
"--backend",
"gpu",
"--series-every",
"11"
],
"nodes_per_step": 4718592,
"steps": 2304000,
"cost": 10871635968000,
"outputs": [],
"shard": 5
},
{
"id": "E01_tandem_ld15",
"group": "E",
"title": "Тандем цилиндров, зазор L/D=1.5",
"expect": "при малом зазоре у заднего тела ОТРИЦАТЕЛЬНОЕ сопротивление; переход около 3.5–4",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=48,x=360,y=360; cylinder:d=48,x=432,y=360",
"--nx",
"1440",
"--ny",
"720",
"--re",
"150",
"--refine",
"1",
"--steps",
"1536000",
"--backend",
"gpu",
"--series-every",
"7",
"--gif",
"tandem_ld15.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 1036800,
"steps": 1536000,
"cost": 1592524800000,
"outputs": [],
"shard": 4
},
{
"id": "E02_tandem_ld30",
"group": "E",
"title": "Тандем цилиндров, зазор L/D=3.0",
"expect": "при малом зазоре у заднего тела ОТРИЦАТЕЛЬНОЕ сопротивление; переход около 3.5–4",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=48,x=360,y=360; cylinder:d=48,x=504,y=360",
"--nx",
"1440",
"--ny",
"720",
"--re",
"150",
"--refine",
"1",
"--steps",
"1536000",
"--backend",
"gpu",
"--series-every",
"7",
"--gif",
"tandem_ld30.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 1036800,
"steps": 1536000,
"cost": 1592524800000,
"outputs": [],
"shard": 2
},
{
"id": "E03_tandem_ld50",
"group": "E",
"title": "Тандем цилиндров, зазор L/D=5.0",
"expect": "при малом зазоре у заднего тела ОТРИЦАТЕЛЬНОЕ сопротивление; переход около 3.5–4",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=48,x=360,y=360; cylinder:d=48,x=600,y=360",
"--nx",
"1440",
"--ny",
"720",
"--re",
"150",
"--refine",
"1",
"--steps",
"1536000",
"--backend",
"gpu",
"--series-every",
"7",
"--gif",
"tandem_ld50.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 1036800,
"steps": 1536000,
"cost": 1592524800000,
"outputs": [],
"shard": 5
},
{
"id": "E04_array_sparse",
"group": "E",
"title": "Решётка 4×4 цилиндров, шаг 3D — пористая среда",
"expect": "суммарное сопротивление и структура течения сквозь набор тел",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=24,x=360,y=252.0; cylinder:d=24,x=360,y=324.0; cylinder:d=24,x=360,y=396.0; cylinder:d=24,x=360,y=468.0; cylinder:d=24,x=432,y=252.0; cylinder:d=24,x=432,y=324.0; cylinder:d=24,x=432,y=396.0; cylinder:d=24,x=432,y=468.0; cylinder:d=24,x=504,y=252.0; cylinder:d=24,x=504,y=324.0; cylinder:d=24,x=504,y=396.0; cylinder:d=24,x=504,y=468.0; cylinder:d=24,x=576,y=252.0; cylinder:d=24,x=576,y=324.0; cylinder:d=24,x=576,y=396.0; cylinder:d=24,x=576,y=468.0",
"--nx",
"1440",
"--ny",
"720",
"--re",
"150",
"--refine",
"1",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"array_sparse.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 1036800,
"steps": 576000,
"cost": 597196800000,
"outputs": [],
"shard": 2
},
{
"id": "E05_array_dense",
"group": "E",
"title": "Решётка 4×4 цилиндров, шаг 2D — пористая среда",
"expect": "суммарное сопротивление и структура течения сквозь набор тел",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=24,x=360,y=288.0; cylinder:d=24,x=360,y=336.0; cylinder:d=24,x=360,y=384.0; cylinder:d=24,x=360,y=432.0; cylinder:d=24,x=408,y=288.0; cylinder:d=24,x=408,y=336.0; cylinder:d=24,x=408,y=384.0; cylinder:d=24,x=408,y=432.0; cylinder:d=24,x=456,y=288.0; cylinder:d=24,x=456,y=336.0; cylinder:d=24,x=456,y=384.0; cylinder:d=24,x=456,y=432.0; cylinder:d=24,x=504,y=288.0; cylinder:d=24,x=504,y=336.0; cylinder:d=24,x=504,y=384.0; cylinder:d=24,x=504,y=432.0",
"--nx",
"1440",
"--ny",
"720",
"--re",
"150",
"--refine",
"1",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"array_dense.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 1036800,
"steps": 576000,
"cost": 597196800000,
"outputs": [],
"shard": 3
},
{
"id": "E06_perf_open20",
"group": "E",
"title": "Перфорированная пластина, скважность 0.2",
"expect": "струи в щелях и общее сопротивление; проверка множества тонких тел",
"backend": "gpu",
"args": [
"--bodies",
"plate:d=40,t=0.12,a=90,x=300,y=60; plate:d=40,t=0.12,a=90,x=300,y=110; plate:d=40,t=0.12,a=90,x=300,y=160; plate:d=40,t=0.12,a=90,x=300,y=210; plate:d=40,t=0.12,a=90,x=300,y=260; plate:d=40,t=0.12,a=90,x=300,y=310; plate:d=40,t=0.12,a=90,x=300,y=360; plate:d=40,t=0.12,a=90,x=300,y=410; plate:d=40,t=0.12,a=90,x=300,y=460",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"800000",
"--backend",
"gpu",
"--series-every",
"4",
"--gif",
"perf_open20.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 800000,
"cost": 576000000000,
"outputs": [],
"shard": 1
},
{
"id": "E07_perf_open50",
"group": "E",
"title": "Перфорированная пластина, скважность 0.5",
"expect": "струи в щелях и общее сопротивление; проверка множества тонких тел",
"backend": "gpu",
"args": [
"--bodies",
"plate:d=40,t=0.12,a=90,x=300,y=60; plate:d=40,t=0.12,a=90,x=300,y=140; plate:d=40,t=0.12,a=90,x=300,y=220; plate:d=40,t=0.12,a=90,x=300,y=300; plate:d=40,t=0.12,a=90,x=300,y=380; plate:d=40,t=0.12,a=90,x=300,y=460",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"800000",
"--backend",
"gpu",
"--series-every",
"4",
"--gif",
"perf_open50.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 800000,
"cost": 576000000000,
"outputs": [],
"shard": 5
},
{
"id": "E08_multielem",
"group": "E",
"title": "Многоэлементный профиль: основной 4412 плюс предкрылок",
"expect": "щель между элементами и раздельные Cl/Cd по телам",
"backend": "gpu",
"args": [
"--bodies",
"naca:naca=4412,d=200,a=6,x=560,y=512; naca:naca=2412,d=70,a=18,x=430,y=470",
"--nx",
"2048",
"--ny",
"1024",
"--re",
"2000",
"--refine",
"1",
"--steps",
"2400000",
"--backend",
"gpu",
"--series-every",
"12",
"--gif",
"multielem.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"3",
"--gif-scale",
"1"
],
"nodes_per_step": 2097152,
"steps": 2400000,
"cost": 5033164800000,
"outputs": [],
"shard": 3
},
{
"id": "E09_thin_t05",
"group": "E",
"title": "Сверхтонкая пластина, толщина 1.00 клетки",
"expect": "предел субсеточной границы: тело тоньше клетки; ждём откаты на простой отскок",
"backend": "gpu",
"args": [
"--shape",
"plate",
"--size",
"50",
"--thickness",
"0.02",
"--body-angle",
"20",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"1000000",
"--backend",
"gpu",
"--series-every",
"5",
"--gif",
"thin_t05.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 1000000,
"cost": 720000000000,
"outputs": [],
"shard": 1
},
{
"id": "E10_thin_t025",
"group": "E",
"title": "Сверхтонкая пластина, толщина 0.50 клетки",
"expect": "предел субсеточной границы: тело тоньше клетки; ждём откаты на простой отскок",
"backend": "gpu",
"args": [
"--shape",
"plate",
"--size",
"50",
"--thickness",
"0.01",
"--body-angle",
"20",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"1000000",
"--backend",
"gpu",
"--series-every",
"5",
"--gif",
"thin_t025.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 1000000,
"cost": 720000000000,
"outputs": [],
"shard": 4
},
{
"id": "E11_wedge",
"group": "E",
"title": "Клин остриём против потока",
"expect": "острая кромка: особая точка геометрии",
"backend": "gpu",
"args": [
"--shape",
"polygon",
"--poly=-30,-18;36,0;-30,18",
"--size",
"60",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"1200000",
"--backend",
"gpu",
"--series-every",
"6",
"--gif",
"wedge.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 1200000,
"cost": 864000000000,
"outputs": [],
"shard": 1
},
{
"id": "E12_serrated",
"group": "E",
"title": "Зазубренная задняя кромка",
"expect": "субклеточные зубцы: как их видит граница",
"backend": "gpu",
"args": [
"--shape",
"polygon",
"--poly=-30,6;-18,-6;-6,6;6,-6;18,6;30,-6;30,-18;-30,-18",
"--size",
"60",
"--nx",
"1200",
"--ny",
"600",
"--re",
"500",
"--refine",
"1",
"--steps",
"1200000",
"--backend",
"gpu",
"--series-every",
"6",
"--gif",
"serrated.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 720000,
"steps": 1200000,
"cost": 864000000000,
"outputs": [],
"shard": 4
},
{
"id": "F01_inlet2d",
"group": "F",
"title": "Отступ до входа 2D",
"expect": "с какого отступа результат перестаёт зависеть от положения входа",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"1056",
"--ny",
"576",
"--body-x",
"96",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 608256,
"steps": 1152000,
"cost": 700710912000,
"outputs": [],
"shard": 3
},
{
"id": "F02_inlet6d",
"group": "F",
"title": "Отступ до входа 6D",
"expect": "с какого отступа результат перестаёт зависеть от положения входа",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"1248",
"--ny",
"576",
"--body-x",
"288",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 718848,
"steps": 1152000,
"cost": 828112896000,
"outputs": [],
"shard": 3
},
{
"id": "F03_inlet16d",
"group": "F",
"title": "Отступ до входа 16D",
"expect": "с какого отступа результат перестаёт зависеть от положения входа",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"1728",
"--ny",
"576",
"--body-x",
"768",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 995328,
"steps": 1152000,
"cost": 1146617856000,
"outputs": [],
"shard": 2
},
{
"id": "F04_outlet5d",
"group": "F",
"title": "Отступ до выхода 5D",
"expect": "с какой длины следа выход перестаёт влиять на силы",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"528",
"--ny",
"576",
"--body-x",
"288",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 304128,
"steps": 1152000,
"cost": 350355456000,
"outputs": [],
"shard": 4
},
{
"id": "F05_outlet15d",
"group": "F",
"title": "Отступ до выхода 15D",
"expect": "с какой длины следа выход перестаёт влиять на силы",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"1008",
"--ny",
"576",
"--body-x",
"288",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 580608,
"steps": 1152000,
"cost": 668860416000,
"outputs": [],
"shard": 2
},
{
"id": "F06_outlet40d",
"group": "F",
"title": "Отступ до выхода 40D",
"expect": "с какой длины следа выход перестаёт влиять на силы",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"2208",
"--ny",
"576",
"--body-x",
"288",
"--re",
"150",
"--refine",
"1",
"--steps",
"1152000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 1271808,
"steps": 1152000,
"cost": 1465122816000,
"outputs": [],
"shard": 4
},
{
"id": "F07_refine1",
"group": "F",
"title": "Вложенный патч ×1",
"expect": "вносит ли связка уровней систематику: Cd и St обязаны совпасть",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 245760,
"steps": 768000,
"cost": 188743680000,
"outputs": [],
"shard": 2
},
{
"id": "F08_refine2",
"group": "F",
"title": "Вложенный патч ×2",
"expect": "вносит ли связка уровней систематику: Cd и St обязаны совпасть",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"2",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 501218,
"steps": 768000,
"cost": 384935424000,
"outputs": [],
"shard": 1
},
{
"id": "F09_refine3",
"group": "F",
"title": "Вложенный патч ×3",
"expect": "вносит ли связка уровней систематику: Cd и St обязаны совпасть",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"3",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 1106235,
"steps": 768000,
"cost": 849588480000,
"outputs": [],
"shard": 2
},
{
"id": "G01_xt_re150_uniform",
"group": "G",
"title": "x–t диаграмма, Re=150, старт uniform",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--init",
"uniform",
"--sponge-len",
"0",
"--xt",
"xt_re150_uniform.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re150_uniform.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 2
},
{
"id": "G02_xt_re150_rest",
"group": "G",
"title": "x–t диаграмма, Re=150, старт rest",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--init",
"rest",
"--sponge-len",
"0",
"--xt",
"xt_re150_rest.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re150_rest.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 3
},
{
"id": "G03_xt_re2000_uniform",
"group": "G",
"title": "x–t диаграмма, Re=2000, старт uniform",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"2000",
"--refine",
"1",
"--init",
"uniform",
"--sponge-len",
"0",
"--xt",
"xt_re2000_uniform.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re2000_uniform.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 4
},
{
"id": "G04_xt_re2000_rest",
"group": "G",
"title": "x–t диаграмма, Re=2000, старт rest",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"2000",
"--refine",
"1",
"--init",
"rest",
"--sponge-len",
"0",
"--xt",
"xt_re2000_rest.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re2000_rest.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 2
},
{
"id": "G05_xt_re20000_uniform",
"group": "G",
"title": "x–t диаграмма, Re=20000, старт uniform",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"20000",
"--refine",
"1",
"--init",
"uniform",
"--sponge-len",
"0",
"--xt",
"xt_re20000_uniform.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re20000_uniform.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 1
},
{
"id": "G06_xt_re20000_rest",
"group": "G",
"title": "x–t диаграмма, Re=20000, старт rest",
"expect": "откуда идёт стартовое возмущение и раскачивается ли продольная мода",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"20000",
"--refine",
"1",
"--init",
"rest",
"--sponge-len",
"0",
"--xt",
"xt_re20000_rest.csv",
"--xt-every",
"200",
"--steps",
"576000",
"--backend",
"gpu",
"--series-every",
"2",
"--gif",
"xt_re20000_rest.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"1",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 576000,
"cost": 318504960000,
"outputs": [
"xt"
],
"shard": 5
},
{
"id": "G07_sponge0",
"group": "G",
"title": "Губка выхода 0 столбцов при Re=5000",
"expect": "губка — единственное, что реально ест продольную моду",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"5000",
"--refine",
"1",
"--sponge-len",
"0",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 552960,
"steps": 768000,
"cost": 424673280000,
"outputs": [],
"shard": 4
},
{
"id": "G08_sponge40",
"group": "G",
"title": "Губка выхода 40 столбцов при Re=5000",
"expect": "губка — единственное, что реально ест продольную моду",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"5000",
"--refine",
"1",
"--sponge-len",
"40",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 552960,
"steps": 768000,
"cost": 424673280000,
"outputs": [],
"shard": 1
},
{
"id": "G09_spongein0",
"group": "G",
"title": "Губка входа 0 столбцов при Re=5000",
"expect": "помогает ли гасить волну до отражения от входа",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"5000",
"--refine",
"1",
"--sponge-in",
"0",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 552960,
"steps": 768000,
"cost": 424673280000,
"outputs": [],
"shard": 4
},
{
"id": "G10_spongein40",
"group": "G",
"title": "Губка входа 40 столбцов при Re=5000",
"expect": "помогает ли гасить волну до отражения от входа",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"5000",
"--refine",
"1",
"--sponge-in",
"40",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 552960,
"steps": 768000,
"cost": 424673280000,
"outputs": [],
"shard": 1
},
{
"id": "G11_limit_re10000",
"group": "G",
"title": "Предел устойчивости, Re=10000",
"expect": "где именно гибнет счёт; часть этих прогонов обязана развалиться",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"10000",
"--refine",
"1",
"--steps",
"384000",
"--backend",
"gpu"
],
"nodes_per_step": 552960,
"steps": 384000,
"cost": 212336640000,
"outputs": [],
"shard": 3
},
{
"id": "G12_limit_re50000",
"group": "G",
"title": "Предел устойчивости, Re=50000",
"expect": "где именно гибнет счёт; часть этих прогонов обязана развалиться",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"50000",
"--refine",
"1",
"--steps",
"384000",
"--backend",
"gpu"
],
"nodes_per_step": 552960,
"steps": 384000,
"cost": 212336640000,
"outputs": [],
"shard": 1
},
{
"id": "G13_limit_re200000",
"group": "G",
"title": "Предел устойчивости, Re=200000",
"expect": "где именно гибнет счёт; часть этих прогонов обязана развалиться",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"200000",
"--refine",
"1",
"--steps",
"384000",
"--backend",
"gpu"
],
"nodes_per_step": 552960,
"steps": 384000,
"cost": 212336640000,
"outputs": [],
"shard": 5
},
{
"id": "G14_lifetime",
"group": "G",
"title": "Тест на время жизни: 5·10⁶ шагов",
"expect": "не уплывает ли ⟨ρ⟩ и не деградирует ли решение на очень длинной дистанции",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"48",
"--nx",
"960",
"--ny",
"576",
"--body-x",
"192",
"--re",
"150",
"--refine",
"1",
"--steps",
"10000000",
"--backend",
"gpu",
"--series-every",
"50",
"--gif",
"lifetime.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"2",
"--gif-scale",
"1"
],
"nodes_per_step": 552960,
"steps": 10000000,
"cost": 5529600000000,
"outputs": [],
"shard": 2
},
{
"id": "H01_sym_cyl",
"group": "H",
"title": "Симметрия: цилиндр при α=0 без возмущения",
"expect": "Cl и Cm обязаны остаться ≈0 — это внутреннее свойство схемы, не литература",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"40",
"--refine",
"1",
"--pert-amp",
"0",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 2
},
{
"id": "H02_sym_foil",
"group": "H",
"title": "Симметрия: NACA 0012 при α=0 без возмущения",
"expect": "Cl ≈ 0 у симметричного профиля под нулевым углом",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"64",
"--body-angle",
"0",
"--nx",
"1024",
"--ny",
"512",
"--body-x",
"256",
"--re",
"500",
"--refine",
"1",
"--pert-amp",
"0",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 524288,
"steps": 768000,
"cost": 402653184000,
"outputs": [],
"shard": 5
},
{
"id": "H03_mirror_plus",
"group": "H",
"title": "Зеркальность: NACA 0012 при α=8°",
"expect": "ряды обязаны зеркалиться: Cl меняет знак, Cd совпадает",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"64",
"--body-angle",
"8",
"--nx",
"1024",
"--ny",
"512",
"--body-x",
"256",
"--re",
"500",
"--refine",
"1",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 524288,
"steps": 768000,
"cost": 402653184000,
"outputs": [],
"shard": 2
},
{
"id": "H04_mirror_minus",
"group": "H",
"title": "Зеркальность: NACA 0012 при α=-8°",
"expect": "ряды обязаны зеркалиться: Cl меняет знак, Cd совпадает",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--size",
"64",
"--body-angle",
"-8",
"--nx",
"1024",
"--ny",
"512",
"--body-x",
"256",
"--re",
"500",
"--refine",
"1",
"--steps",
"768000",
"--backend",
"gpu",
"--series-every",
"3"
],
"nodes_per_step": 524288,
"steps": 768000,
"cost": 402653184000,
"outputs": [],
"shard": 3
},
{
"id": "H05_mach02",
"group": "H",
"title": "Зависимость от числа Маха, u_lat=0.02",
"expect": "результат обязан сходиться при Ma→0; расхождение и есть сжимаемостная ошибка",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--u-lat",
"0.02",
"--steps",
"1280000",
"--backend",
"gpu",
"--series-every",
"6"
],
"nodes_per_step": 245760,
"steps": 1280000,
"cost": 314572800000,
"outputs": [],
"shard": 5
},
{
"id": "H06_mach05",
"group": "H",
"title": "Зависимость от числа Маха, u_lat=0.05",
"expect": "результат обязан сходиться при Ma→0; расхождение и есть сжимаемостная ошибка",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--u-lat",
"0.05",
"--steps",
"512000",
"--backend",
"gpu",
"--series-every",
"2"
],
"nodes_per_step": 245760,
"steps": 512000,
"cost": 125829120000,
"outputs": [],
"shard": 5
},
{
"id": "H07_mach10",
"group": "H",
"title": "Зависимость от числа Маха, u_lat=0.1",
"expect": "результат обязан сходиться при Ma→0; расхождение и есть сжимаемостная ошибка",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--u-lat",
"0.1",
"--steps",
"256000",
"--backend",
"gpu"
],
"nodes_per_step": 245760,
"steps": 256000,
"cost": 62914560000,
"outputs": [],
"shard": 1
},
{
"id": "H08_prec_cpu",
"group": "H",
"title": "Точность: одинаковая постановка на cpu",
"expect": "расхождение f32 против f64 в зависимости от длины прогона",
"backend": "cpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--steps",
"1024000",
"--backend",
"cpu",
"--series-every",
"5"
],
"nodes_per_step": 245760,
"steps": 1024000,
"cost": 251658240000,
"outputs": [],
"shard": 1
},
{
"id": "H09_prec_gpu",
"group": "H",
"title": "Точность: одинаковая постановка на gpu",
"expect": "расхождение f32 против f64 в зависимости от длины прогона",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"32",
"--nx",
"640",
"--ny",
"384",
"--body-x",
"128",
"--re",
"150",
"--refine",
"1",
"--steps",
"1024000",
"--backend",
"gpu",
"--series-every",
"5"
],
"nodes_per_step": 245760,
"steps": 1024000,
"cost": 251658240000,
"outputs": [],
"shard": 4
},
{
"id": "I01_fine_cylinder",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, cylinder, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"cylinder",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_cylinder.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 1
},
{
"id": "I02_fine_square",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, square, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"square",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_square.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 2
},
{
"id": "I03_fine_diamond",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, diamond, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"diamond",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_diamond.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 3
},
{
"id": "I04_fine_ellipse",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, ellipse, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"ellipse",
"--thickness",
"0.35",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_ellipse.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 4
},
{
"id": "I05_fine_naca",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, naca, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"naca",
"--naca",
"0012",
"--body-angle",
"8",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_naca.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 5
},
{
"id": "I06_fine_triangle",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, triangle, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"triangle",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_triangle.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 1
},
{
"id": "I07_fine_plate",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, plate, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"plate",
"--thickness",
"0.08",
"--body-angle",
"25",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_plate.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 2
},
{
"id": "I08_fine_wedge",
"group": "I",
"title": "Сверхмелкая сетка 4096×2048, wedge, D=256",
"expect": "держится ли субсеточная граница на предельном разрешении для этой формы",
"backend": "gpu",
"args": [
"--shape",
"polygon",
"--poly=-128,-72;154,0;-128,72",
"--size",
"256",
"--nx",
"4096",
"--ny",
"2048",
"--body-x",
"820",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_wedge.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 3
},
{
"id": "I09_fine_multi",
"group": "I",
"title": "Сверхмелкая сетка, композиция из трёх тел",
"expect": "взаимодействие следов на предельном разрешении",
"backend": "gpu",
"args": [
"--bodies",
"cylinder:d=200,x=800,y=1024; cylinder:d=200,x=1400,y=1024; naca:naca=4412,d=300,a=10,x=2200,y=1024",
"--nx",
"4096",
"--ny",
"2048",
"--re",
"1000",
"--refine",
"1",
"--steps",
"3072000",
"--backend",
"gpu",
"--series-every",
"15",
"--gif",
"fine_multi.gif",
"--gif-field",
"vorticity",
"--gif-every",
"auto",
"--gif-fps",
"10",
"--gif-speed",
"1",
"--gif-downsample",
"6",
"--gif-scale",
"1"
],
"nodes_per_step": 8388608,
"steps": 3072000,
"cost": 25769803776000,
"outputs": [],
"shard": 4
}
]
}