Ця симуляція моделює поширення двовимірних хвиль на мілководді за допомогою скінченно-різницевого клітинного автомата. Кожна комірка сітки зберігає значення висоти поверхні води; на кожному кроці нове значення обчислюється як середнє чотирьох сусідів мінус попереднє значення комірки, помножене на коефіцієнт згасання. Результат відтворює поведінку реальних брижів у мілкій воді — кругові хвильові фронти, що розходяться від джерела, відбиваються від стінок і утворюють інтерференційні візерунки.
Клацніть або проведіть пальцем по поверхні води, щоб створити збурення. Повзунок «Розмір хвилі» регулює початкову амплітуду кожного сплеску, а «Загасання» — швидкість розсіювання енергії. Менше загасання дозволяє хвилям довше жити й інтерферувати, більше — швидше гасить брижі, імітуючи глибшу або більш в'язку воду.
Чому брижі розходяться колами?
У однорідному середовищі хвильова енергія поширюється з однаковою швидкістю в усіх напрямках від джерела. Тому хвильовий фронт — множина точок, яких щойно досягло збурення, — утворює правильне коло із центром у точці удару. Той самий принцип діє для звукових хвиль від гучномовця і світлових імпульсів від точкового джерела.
Що відбувається, коли зустрічаються два набори брижів?
Хвилі підпорядковуються принципу суперпозиції: їхні висоти просто додаються у кожній точці. Там, де два гребені збігаються, виникає конструктивна інтерференція (вищий пік); де гребінь зустрічає западину — деструктивна (поверхня тимчасово вирівнюється). Пройшовши крізь одна одну, обидві хвилі продовжують рух незміненими — чудова властивість лінійних хвиль.
Чому хвилі відбиваються від стінок?
Умова жорсткої границі змушує висоту води біля стінки залишатися незмінною. Коли гребінь досягає стінки, відновлювальна сила повертає його у зворотному напрямку — так само, як м'яч відскакує від твердої поверхні. У закритому посуді, наприклад у ванні, багаторазові відбиття швидко формують складний візерунок стоячих хвиль.
На кожному кроці обчислена висота хвилі множиться на коефіцієнт загасання (наприклад, 97%). Значення 97% означає втрату 3% енергії за один кадр. За 60 кадрів/с час затухання становить приблизно 1,5 секунди — схоже на реальне загасання брижів у мілкій тарілці. При значенні 99% брижі зберігаються дуже довго, майже без втрат.
У наближенні мілководдя швидкість хвилі c = √(g·h), де g ≈ 9,81 м/с² — прискорення вільного падіння, h — глибина води. Для типової ванни з 10 см води c ≈ 1 м/с. Крок сітки та часовий крок підібрані так, щоб чисельна швидкість хвилі відповідала цьому співвідношенню без порушення умови стійкості Куранта.
На глибокій воді кожна довжина хвилі поширюється з різною швидкістю (дисперсія), тому різкий сплеск розсіюється у кільце брижів із поступово зростаючою довжиною хвилі. Хвилі на мілководді є бездисперсійними: усі довжини хвиль рухаються з однаковою швидкістю c = √(gh), що зберігає хвильові фронти гострими. Саме тому ця проста сіткова модель так добре відтворює брижі у ванні.
Так — клацайте швидко в одному місці або проведіть лінію через центр. Якщо збуджувати воду на одній із власних резонансних частот резервуара (fn = c·n / 2L для моди n у резервуарі довжиною L), виникне стояча хвиля з нерухомими вузлами та пучностями. Це той самий ефект, який спричиняє резонансне хлюпання у цистернах під час землетрусів.
Рахування хвилевого рівняння для кожного пікселя потребувало б мільйонів комірок і перевищило б можливості браузера в режимі реального часу. Групуючи пікселі у блоки 4×4, сітка скорочується приблизно до 480×270 комірок, що дозволяє оновлення 60 разів на секунду в JavaScript. Візуальний ефект майже ідентичний, оскільки брижі охоплюють багато комірок.
Метеорологи використовують їх для моделювання великомасштабної атмосферної циркуляції. Інженери застосовують їх для розрахунку паводків у річкових долинах і припливних естуаріях. Океанографи використовують їх для прогнозування поширення цунамі: адже цунамі у відкритому океані має довжину хвилі сотні кілометрів при глибині лише кілька кілометрів — це класичне наближення мілководдя навіть у глибокому океані.
Без розсіювання енергії (загасання = 100%) симуляція є консервативною: хвилі відбивалися б нескінченно, поступово накопичуючи амплітуду в усіх комірках до максимального значення, і екран перетворився б на візуальний шум. Реальна вода завжди має в'язкість і поверхневий натяг, які розсіюють енергію; повзунок загасання імітує ці фізичні втрати.
Так — клацніть одночасно (або одразу послідовно) у двох точках, однаково віддалених від центру. Якщо два джерела коливаються в фазі, між ними з'являться зони спокою (деструктивна інтерференція) і яскраві гребені там, де різниця ходу дорівнює цілому числу довжин хвиль. Це класичний дводіщілинний інтерференційний візерунок, відтворений на воді.