{ "meta": { "note": "Стоимость в обновлениях узлов — единственная переносимая между машинами мера. Часы драйвер получает, поделив её на фактические MLUPS, которые замеряет на месте (--calibrate).", "gif_policy": "вся длительность прогона, реальная скорость, 10 кадр/с; кадр прореживается до ширины не больше 1280 пикселей", "scale": 2.0, "assumed_gpu_mlups": 1200, "assumed_cpu_mlups": 22 }, "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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" ] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] } ] }