Симуляція рідини методом SPH (гідродинаміки згладжених частинок) — тим самим числовим методом, що використовується у NASA і Голлівуді для реалістичних ефектів рідини.
Кожна частинка несе тиск, густину та швидкість. Взаємодія з сусідами апроксимує рівняння Нав'є-Стокса, відтворюючи в'язкість, градієнти тиску та поверхневий натяг.
Клікай або тягни по рідині, щоб її штовхати. Повзунки змінюють гравітацію, в'язкість і кількість частинок. Збільш швидкість емісії зверху, щоб симулювати водоспад.
SPH-метод розробили у 1977 році для симуляцій зіткнень галактик. Сьогодні той самий метод працює в реальному часі на GPU для симуляції води у відеоіграх.
Це симуляція рідини в реальному часі на основі згладженої гідродинаміки частинок (SPH) — безсіткового методу, який представляє рідину у вигляді тисяч рухомих частинок замість фіксованої сітки. Той самий підхід використовують в астрофізиці для моделювання зіткнень галактик і в голлівудських фільмах для ефектів води, лави та диму. Він захопливий тим, що складна поведінка — бризки, коливання та утворення поверхні — виникає виключно з простих взаємодій між частинками.
h за допомогою швидкої просторової геш-сітки.rho_i = sum_j m * W(r_ij, h) — густина частинки i зі зважених ядром мас сусідів.
p_i = k * (rho_i - rho_0) — тиск із жорсткості k та густини спокою rho_0.
a_i = (-grad p + mu * lap v) / rho_i + g — прискорення від тиску, в'язкості mu та гравітації g.
SPH винайшли 1977 року Джінголд, Монаган і Люсі для моделювання поділу обертових зір — задовго до того, як його почали застосовувати до води. Колір частинок тут відповідає тиску, тож можна буквально спостерігати, як ударні хвилі високого тиску прокочуються рідиною після сплеску.
Ця симуляція моделює об'єм рідини в реальному часі за допомогою методу згладжених частинок (Smoothed Particle Hydrodynamics) — безсіткового підходу, який представляє рідину у вигляді до 2000 рухомих частинок замість фіксованої сітки. Кожна частинка обчислює свою локальну густину і тиск на основі сусідів у межах радіуса згладжування, а потім реагує на сили тиску, в'язкості та гравітації за допомогою SPH-ядер Мюллера (2003). Розбризкування, коливання та рух вільної поверхні виникають з цих простих взаємодій між частинками.
Поведінку рідини всередині каркасного резервуара, обчислену методом SPH. Просторова хеш-сітка знаходить сусідів кожної частинки в межах радіуса h, ядро poly6 підсумовує густину, тиск визначається як p = k(rho - rho0), а ядра spiky і лапласіан в'язкості забезпечують сили тиску та в'язкості перед напівнеявним інтегруванням за методом Ейлера.
Шість повзунків задають кількість частинок (200-2000), гравітацію (0-20), жорсткість тиску, в'язкість, радіус ядра h (0.5-3) та згасання на стінках. Перетягуйте, щоб обертати камеру, і прокручуйте, щоб масштабувати. Натисніть «Перезапуск», щоб перебудувати блок рідини, або «Хвиля», щоб подати висхідний імпульс розбризкування у випадкову третину частинок.
Метод SPH винайшли 1977 року Гінгольд, Монаган і Люсі для моделювання поділу обертових зір в астрофізиці — задовго до того, як його застосували до води. Тут колір кожної частинки відповідає її тиску, тож ви можете спостерігати, як ударні хвилі високого тиску прокочуються рідиною після розбризкування.
SPH — це безсітковий числовий метод, який представляє рідину як набір дискретних частинок, кожна з яких має масу, швидкість, густину та тиск. Польові величини оцінюються підсумовуванням внесків сусідніх частинок у межах радіуса h, зважених ядром згладжування. Оскільки фіксованої сітки немає, метод природно опрацьовує розбризкування вільної поверхні та великі деформації.
На кожному кроці вона будує просторову хеш-сітку, потім для кожної частинки підсумовує внески сусідів, щоб отримати густину за ядром poly6, і виводить тиск за формулою p = k(rho - rho0). Сили тиску використовують градієнт ядра spiky, а в'язкість — лапласіан ядра в'язкості, після чого додається гравітація, а позиції оновлюються напівнеявним інтегруванням за методом Ейлера.
«Частинки» задають, зі скількох точок складається рідина, «Гравітація» — це спрямоване вниз прискорення, а «Тиск» — це жорсткість k, яка протидіє стисненню й утримує рідину приблизно нестисливою. «В'язкість» — це внутрішнє тертя, що робить рідину густішою, «Радіус ядра h» — це відстань взаємодії сусідів, а «Згасання» — це частка швидкості, що зберігається після кожного відскоку від стінки.
Симуляція відтворює якісну поведінку справжньої рідини, зокрема градієнти тиску, в'язкий опір та зіткнення зі стінками, але це спрощена модель реального часу. Кількість частинок обмежена заради плавної частоти кадрів, ядра є стандартними наближеннями Мюллера 2003 року, а параметри використовують умовні одиниці симуляції, а не калібровані фізичні значення, тож результати є ілюстративними, а не кількісно точними.
Колір кодує тиск кожної частинки: від синього за низького тиску через блакитний і зелений до червоного за найвищого тиску в поточному кадрі. Це робить стиснення видимим: після натискання «Хвиля» можна побачити, як смуги високого тиску проходять рідиною у вигляді ударної хвилі, перш ніж рідина знову вляжеться під дією гравітації.