Головна Гідродинаміка та Аеродинаміка Симуляція рідини — Рівняння Нав'є–Стокса в реальному часі

💧 Симуляція рідини — Рівняння Нав'є–Стокса в реальному часі

Інтерактивна 2D-симуляція рідини на основі стабільного методу Жо Стама для рівнянь Нав

Гідродинаміка та Аеродинаміка2DСкладний60 FPS
fluid-simulation ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Про цю симуляцію

Ця симуляція розв'язує нестисливі рівняння Нав'є–Стокса на сітці 100×100, моделюючи рух двовимірної рідини та поширення барвника, який вона переносить. Використовується безумовно стійка схема Жо Стама: на кожному кадрі додаються сили, швидкість і густина дифундують за допомогою неявного розв'язувача Гаусса–Зейделя, величини переносяться шляхом зворотного відстеження характеристик у часі (напівлагранжевий метод), а потім поле швидкості проєктується для усунення дивергенції (∇·u = 0).

🔬 Що це показує

Перетягуйте курсор по полотну, щоб додати швидкість і барвник. Повзунок В'язкість визначає, наскільки сильно згладжується імпульс, Дифузія керує поширенням барвника, а Згасання зменшує густину на кожному кадрі, щоб сліди розсіювались.

🎮 Як користуватися

Кнопки Густина, Швидкість і Обидва перемикають кольорову карту, а пресети Вихор, Зсув і Струмінь задають класичні патерни течії: обертовий вихор, шар зсуву та висхідний струмінь.

💡 Чи знали ви?

Такі розв'язувачі stable-fluids живлять ефекти диму, води та вогню в іграх, кіно та візуальних ефектах, де швидкість і стійкість важливіші за точну фізику.

Поширені запитання

Що саме показує ця симуляція?

Вона показує рух двовимірної нестисливої рідини, візуалізований як кольорове поле барвника (густини), поле швидкості, забарвлене за напрямком, або обидва одночасно. Коли ви перетягуєте курсор по полотну, ви додаєте імпульс і барвник, а розв'язувач переносить і дифундує їх кадр за кадром, тож ви бачите, як розвиваються завихрення, струмені та шари зсуву.

Який метод використовується для розв'язання рівнянь рідини?

Реалізовано метод «Stable Fluids» Жо Стама. Кожен часовий крок поділяється на етапи: додавання сили, дифузія, перенесення та проєкція. Дифузія та розв'язання тиску використовують приблизно 20 ітерацій лінійного розв'язувача Гаусса–Зейделя, а перенесення використовує напівлагранжеве зворотне відстеження, що робить метод безумовно стійким для будь-якого часового кроку.

Що робить етап проєкції?

Проєкція забезпечує нестисливість (∇·u = 0), обчислюючи поле тиску, градієнт якого віднімається від швидкості. Це розклад Гельмгольца–Ходжа: він усуває дивергентну частину потоку, зберігаючи масу рідини незмінною, тож вона не стискається і не розширюється.

Що контролює повзунок В'язкість?

В'язкість визначає, як швидко згладжуються відмінності швидкості, моделюючи внутрішнє тертя рідини (член ν∇²u). Повзунок масштабується логарифмічно приблизно від 1e-6 до 1e-2; низькі значення дають рідку, турбулентну, завихрену течію, а високі — густий, сиропоподібний рух, що швидко згасає.

У чому різниця між В'язкістю і Дифузією?

В'язкість діє на поле швидкості, згладжуючи імпульс так, що сусідні ділянки тягнуть одна одну. Дифузія діє на поле барвника (густини), поширюючи видимий колір назовні незалежно від течії. Можлива рідина з низькою в'язкістю та швидким рухом, барвник якої все одно сильно дифундує й розмивається, або навпаки.

Що робить повзунок Згасання?

Згасання множить поле густини на коефіцієнт (0,80–1,00) кожен кадр, тож барвник поступово розсіюється, а не накопичується назавжди. При 0,99 сліди затримуються й наростають; нижчі значення змушують доданий барвник швидко зникати, що корисно для спостереження за поточною швидкістю, а не за всією історією.

Що роблять пресети Вихор, Зсув і Струмінь?

Вихор задає обертове поле швидкості в центральному диску, створюючи вихор, що обертається. Зсув задає протилежні горизонтальні швидкості у верхній і нижній половинах, засіваючи шар зсуву у стилі Кельвіна–Гельмгольца. Струмінь вводить висхідну швидкість і барвник уздовж нижнього краю, створюючи висхідний струмінь рідини без плавучості.

Чи фізично точна ця симуляція?

Це достовірний якісний розв'язувач нестисливих рівнянь Нав'є–Стокса, але він не є кількісно точним. Напівлагранжеве перенесення додає числову дифузію, яка згладжує дрібні деталі, сітка має розмір лише 100×100, а плавучість і гравітація відсутні, тож пріоритет надається візуальній стійкості та швидкості, а не точній інженерній достовірності.

Що означає відображувана статистика?

Макс. швидкість — це найбільша величина швидкості, знайдена будь-де на сітці, у одиницях комірок за секунду. Загальна густина — це сума кількості барвника по всіх комірках, яка зменшується під дією коефіцієнта Згасання. Розмір сітки показує роздільну здатність симуляції — тут 100×100 внутрішніх комірок плюс однокоміркове граничне кільце.

Де такі розв'язувачі використовуються в реальному світі?

Розв'язувачі stable-fluids лежать в основі ефектів диму, вогню, води та хмар у реальному часі в відеоіграх та кіновізуальних ефектах, де швидкість і стійкість важливіші за точну фізику. Ті самі рівняння Нав'є–Стокса, розв'язані більш точними методами, керують інженерною обчислювальною гідродинамікою для аеродинаміки, погоди та течії в трубах.

Схожі симуляції