Чисельне рішення Нав'є-Стокса: FDM vs FVM vs LBM
Рівняння Нав'є-Стокса не мають загального аналітичного розв'язку, тож кожен CFD-солвер (обчислювальна гідродинаміка) змушений якось їх дискретизувати. У практиці домінують три родини методів: скінченних різниць, скінченних об'ємів та ґраткового Больцмана. Кожен робить свій компроміс між точністю, гнучкістю геометрії та тим, наскільки добре він лягає на GPU.
1. Навіщо дискретизувати?
Нестисливі рівняння Нав'є-Стокса описують збереження імпульсу та маси для в'язкої рідини:
Нерозривність (нестисливість) ∇·u = 0
Нелінійний доданок адвекції (u·∇)u та зв'язок між
швидкістю u та тиском p означають, що,
окрім кількох ідеалізованих випадків (течія Пуазея, потік Стокса навколо
сфери), аналітичного розв'язку не існує. Чисельні методи замінюють
неперервне PDE скінченним набором алгебраїчних рівнянь, розв'язуваних у
дискретних точках, комірках або вузлах ґратки. FDM,
FVM і LBM відрізняються переважно тим,
що саме дискретизується — похідні напряму, закони збереження
над контрольними об'ємами, чи базовий кінетичний (розподіл часток)
опис рідини.
2. Метод скінченних різниць (FDM)
FDM замінює похідні алгебраїчними різницевими відношеннями на структурованій сітці. Найпростіша центральна різниця для другої похідної (в'язкий член дифузії):
Класичний нестисливий солвер на базі FDM — метод проекції Чоріна: спочатку просуваємо швидкість, ігноруючи тиск, потім розв'язуємо рівняння Пуассона для тиску та віднімаємо його градієнт, щоб забезпечити ∇·u = 0.
2. ∇²p = (ρ/Δt)·∇·u* (рівняння Пуассона для тиску)
3. un+1 = u* − (Δt/ρ)·∇p (проекція на бездивергентне поле)
Переваги: концептуально просто, легко реалізувати на рівномірних сітках — стандартний вибір для real-time солверів у стилі "stable fluids" для диму/води (див. нашу статтю Нав'є-Стокс у WebGL).
Недоліки: погано працює з нерегулярною геометрією — вигнута стінка циліндра не вирівняна з декартовою сіткою, тому граничні умови потребують спеціальних технік immersed-boundary. Збереження маси лише наближене, якщо розв'язок Пуассона недостатньо збіжний, а стабільність вимагає умови CFL: Δt ≤ Δx/|u|max.
3. Метод скінченних об'ємів (FVM)
FVM виходить з інтегральної форми законів збереження замість диференціальної. Область розбивається на малі контрольні об'єми (комірки), і для кожної комірки метод відстежує чистий потік маси та імпульсу крізь її грані:
Оскільки теорема про дивергенцію перетворює об'ємні інтеграли похідних на поверхневі інтеграли потоків, FVM консервативний за побудовою — все, що покидає одну комірку крізь грань, точно (до машинної точності) потрапляє в сусідню комірку крізь ту саму грань. Це головна причина, чому FVM домінує в промисловому CFD (OpenFOAM, Fluent, StarCCM+): захоплення ударних хвиль, баланс маси та неструктуровані (тетраедричні/поліедричні) сітки навколо складної геометрії — кузов авто, лопатки турбіни, циліндр — усе випливає природно.
Компроміс — складність реалізації: схеми реконструкції потоків (upwind, QUICK, TVD-лімітери) та структури даних неструктурованих сіток значно об'ємніші за простий декартовий шаблон FDM, а реконструкція градієнта в центрах комірок вносить власну чисельну дифузію, якщо зроблена недбало.
4. Метод ґраткового Больцмана (LBM)
LBM бере зовсім іншу відправну точку: замість дискретизації
макроскопічних рівнянь Нав'є-Стокса він дискретизує
транспортне рівняння Больцмана для спрощеної
кінетичної моделі рідини — популяцій уявних часток
fi(x, t), які можуть рухатись лише вздовж малого,
фіксованого набору напрямків ґратки (9 у 2D, модель "D2Q9").
Кожен часовий крок — це рівно дві локальні операції: зіткнення
(релаксація розподілів кожного вузла до локальної рівноваги
feq, яка є функцією лише локальної густини та
швидкості) та стрімінг (зсув кожного розподілу на один
крок ґратки вздовж свого напрямку). Найважливіше — макроскопічна
поведінка Нав'є-Стокса, включно з точним тиском та в'язкістю, виникає
з цього мікроскопічного правила через розклад Чепмена-Енскога, без
жодного разу складання чи розв'язання глобальної лінійної системи.
Переваги: обидва кроки вище торкаються лише вузла та його безпосередніх сусідів, тож LBM надзвичайно паралелізується — ідеально для GPU compute shaders. Складні границі (циліндр, зразок пористої породи) обробляються простими локальними правилами bounce-back замість глобальної генерації сітки. Саме це — метод за нашою статтею Метод Больцмана на ґратці у 200 рядках JS та симуляцією вихорів Кармана.
Недоліки: стандартна ґратка рівномірна, тому локальне подрібнення сітки біля стінки (де градієнти пограничного шару найкрутіші) потребує спеціальних multi-block або адаптивних технік. Дуже високе число Рейнольдса, сильно стисливі чи стратифіковані потоки виводять метод за межі його «зони комфорту» без розширень (multi-relaxation time, ентропійний LBM, каскадний оператор зіткнення).
5. Порівняльна таблиця
| Властивість | FDM | FVM | LBM |
|---|---|---|---|
| Що дискретизується | Похідні PDE в точках сітки | Інтегральне збереження над контрольними об'ємами | Кінетичне рівняння Больцмана на швидкісній ґратці |
| Збереження | Наближене | Точне (за побудовою) | Точне (маса й імпульс — моменти f) |
| Складна геометрія | Погано (потрібен immersed boundary) | Відмінно (неструктуровані сітки) | Добре (локальний bounce-back, але рівномірна ґратка) |
| Розв'язок тиску | Глобальне рівняння Пуассона щокроку | Глобальна корекція тиску (SIMPLE, PISO) | Не потрібен — тиск є локальним моментом f (p = cs²ρ) |
| Паралелізм / GPU | Добре (структуровані шаблони) | Помірно (неструктурований, нерегулярний доступ до пам'яті) | Відмінно (повністю локальні оновлення) |
| Типове застосування | Навчання, real-time графіка/дим | Промисловий CFD, авіація, автопром | Пористі середовища, мікрофлюїдика, real-time GPU CFD |
| Стисливий потік | Так, з обережністю | Так, стандартно | Обмежено (за замовчуванням наближення низького Маха) |
Усі три методи повинні задовольняти межу стабільності, пов'язану зі швидкістю поширення інформації: умова CFL для FDM/FVM та аналогічне обмеження швидкості ґратки (u < cs/√3 ≈ 0.577 у ґраткових одиницях) для LBM.
6. Який метод обрати?
- Вивчення основ або real-time демо диму/води: FDM з методом проекції — найменше коду, добре задокументовано ("Stable Fluids" Йоса Стама).
- Симуляція обтікання реального авто, крила чи лопатки турбіни з сертифікованою точністю: FVM — галузевий стандарт із зрілими моделями турбулентності (k-ε, k-ω SST) та валідованими солверами.
- Інтерактивний GPU-прискорений CFD, пористі середовища чи мікрофлюїдика: LBM — тривіальний паралелізм та проста обробка границь виграють, коли потрібно багато кроків при інтерактивному фреймрейті.
На практиці професійні пайплайни часто комбінують методи: FVM для високоточного сертифікаційного розрахунку, LBM для швидкого дослідження простору проєктування, і FDM-солвери для художніх real-time превʼю в іграх та власних браузерних симуляціях цього сайту.
🧮 Спробуйте солвер Нав'є-Стокса
Ейлерів сітковий солвер із методом проекції, описаним вище — малюйте дим, спостерігайте, як завихрення закручуються в реальному часі.
Відкрити симуляцію →