Состояние на момент заведения репозитория. C++ приложение (src/, shaders/, tests/) — минимальный редактор 3D-моделей на Vulkan 1.3: орбитальная камера, три опорные сетки через начало координат, загрузка .obj с режимами отображения. Весь Vulkan изолирован в src/vk/. Исследование (docs/) — оригинальные статьи по KBC (docs/origins) и Python-решатель D2Q9 KBC-N1 с AMR 2x и SDF+Bouzidi (docs/theory). В решателе перед коммитом исправлены дефекты, найденные сверкой с первоисточниками: относительный порог знаменателя энтропийного стабилизатора (абсолютный вырождал KBC в LBGK на 77-99% узлов), заворот вход/выход в углах домена, диагностика средней плотности по фиктивным узлам тела, зашитый refine=2. Подробности — docs/theory/solver_2x_sdf/README.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
37 lines
2.6 KiB
Markdown
37 lines
2.6 KiB
Markdown
# demos_gpu — GPU-прогоны демо для ноутбука kbc_lbm.ipynb
|
||
|
||
Ноутбук **не исполняет код** — он встраивает готовые артефакты (png/gif) и цитирует числа.
|
||
Все симуляции здесь, **только GPU/CuPy** (CPU-фолбэка нет). Физика не дублируется: решётка,
|
||
равновесие, KBC-столкновение, перенос и AMR-связка импортируются из `../solver_2x_sdf` —
|
||
демо тем самым гоняют **те же компоненты, что и финальная модель**.
|
||
|
||
## Запуск (на GPU-сервере, из этой папки)
|
||
|
||
```sh
|
||
python checks_gpu.py # самопроверки математики → out/checks.txt
|
||
python tgv_gpu.py # Тейлор–Грин: вязкость, H-теорема → figures/07*, anim/tgv_decay.gif
|
||
python shear_gpu.py # сдвиговый слой BGK vs KBC → figures/08*, anim/shear_bgk_vs_kbc.gif
|
||
python cavity_gpu.py # каверна Re=1000 vs Ghia → figures/09*, anim/cavity_transient.gif
|
||
python obstacle_gpu.py # 4 тела, дорожки Кармана → figures/10*, anim/obstacle_shapes.gif
|
||
python amr_demo_gpu.py # AMR: демо + бенчмарк + вложенный → figures/11d*, anim/amr_{cylinder,nested}.gif
|
||
python figures_static.py # стенсили/блок-схема/схема AMR → figures/01,06,11c,11_d3q27 (после obstacle!)
|
||
```
|
||
|
||
`figures_static.py` — единственный скрипт без GPU (чистый matplotlib, можно гонять локально);
|
||
схему `11c` он перерисовывает по фону из `out/obstacle_circle_field.npz`, который пишет
|
||
`obstacle_gpu.py` — поэтому его запускать **после** obstacle.
|
||
|
||
Env: `AMR_FP64=1` — двойная точность (жёстче пороги самопроверок в checks_gpu).
|
||
|
||
| Скрипт | Время (примерно, совр. GPU) |
|
||
|---|---|
|
||
| checks_gpu | секунды |
|
||
| tgv_gpu | ~1 мин (10k шагов, 96²) |
|
||
| shear_gpu | ~1–2 мин (2×8k, 128²) |
|
||
| cavity_gpu | ~1–2 мин (до 14k, 110²) |
|
||
| obstacle_gpu | ~3–5 мин (4×9.6k, 150×72) |
|
||
| amr_demo_gpu | ~5–10 мин (демо + 6 бенчмарков + анимация) |
|
||
|
||
Артефакты идут в общие каталоги `../figures` и `../anim` под **теми же именами**, что
|
||
исторически использовал ноутбук; числовые сводки — в `out/*.txt|npz`.
|