Тут класичне 2D хвильове рівняння
∂²u/∂t² = c²∇²u розв'язується повністю на GPU. Поле висоти
u зберігається у текстурах із плаваючою комою, а фрагментний
шейдер просуває кожну комірку сітки паралельно на кожному кроці за
допомогою оновлення «жабка» (leapfrog) із 9-точковим лапласіаном.
u_next = 2u − u_prev + (c·dt)²·∇²u − damping·(u − u_prev).Хвильове рівняння відтворене у двовимірному аркуші: клацайте, щоб запускати хвильові пакети, і спостерігайте за рефлексією, інтерференцією та дифракцією в реальному часі.
Двовимірна хвильова рівняння ∂²u/∂t² = c²∇²u описує розповсюдження збурення. Хвилі відбиваються від меж і інтерферують. Умова стабільності CFL (c·Δt/Δx < 1/√2) запобігає чисельній нестійкості.
Клацайте на поверхню, щоб створити хвилю. Натисніть кілька разів поряд, щоб побачити суперпозицію. Спробуйте натискати вздовж межі, щоб побачити відбиття.
Хвильове рівняння було виведено Д'Аламбером у 1747 р. для вібруючої струни. Та сама рівняння описує електромагнітні хвилі (Максвелл, 1865), сейсмічні хвилі і навіть гравітаційні хвилі (Einstein, 1916).
Ця симуляція в реальному часі інтегрує класичне хвильове рівняння, ∂²u/∂t² = c²∇²u, за допомогою явної скінченно-різницевої схеми «жабка» (leapfrog). Ви можете перемикатися між одновимірною защипнутою струною із 600 точок і двовимірною мембраною барабана на сітці 100×100, обидві з закріпленими (відбивними) кінцями. Оскільки на кожному кроці пряма й відбита хвилі інтерферують, ви можете спостерігати, як зі однієї простої формули оновлення виникають стоячі хвилі, гармоніки та двовимірна інтерференція брижів.
Дискретизоване хвильове рівняння: наступне зміщення кожного вузла сітки обчислюється з його поточного та попереднього значень плюс кривина його сусідів, помножена на r = c². Струна використовує одновимірний лапласіан (u[i-1] - 2u[i] + u[i+1]); мембрана використовує двовимірний лапласіан із чотирма сусідами. Множник згасання застосовується на кожному кроці, тож енергія поступово зменшується.
Перемикайте «String 1D» або «Membrane 2D». Клацніть або проведіть по полотну, щоб внести гаусове збурення. Повзунок Speed (1–20) задає швидкість хвилі c, а Damping (0–50) — втрату енергії за крок. Використовуйте «Pluck» для одиничного імпульсу, «Continuous» — щоб синусоїдально розгойдувати струну, меню Mode — щоб запустити чисту 1–4-ту гармоніку, а Reset — щоб очистити поле.
Хвильове рівняння вперше записав Жан ле Рон д'Аламбер у 1747 році для опису коливної струни. Його розв'язки розпадаються на хвилі, що біжать ліворуч і праворуч, і те саме рівняння керує звуком, світлом, водяними брижами та сейсмічними хвилями.
Вона розв'язує класичне хвильове рівняння другого порядку, ∂²u/∂t² = c²∇²u, де u — поперечне зміщення, а c — швидкість хвилі. У режимі струни лапласіан одновимірний; у режимі мембрани — двовимірний. Те саме рівняння описує гітарну струну, шкіру барабана, звук і багато інших хвиль.
Він використовує явну скінченно-різницеву схему «жабка» (leapfrog). Час і простір розбиваються на сітку, і наступне значення кожної точки обчислюється як 2u(зараз) - u(попереднє) + r на дискретний лапласіан, де r = c². Це триточкове в часі оновлення є стандартним способом другого порядку точності для просування хвильового рівняння в часі.
Speed задає константу поширення хвилі c, яка масштабує член жорсткості r = c², тож вищі значення змушують хвилі рухатися й коливатися швидше. Damping застосовує мультиплікативний множник трохи менший за 1 на кожному кроці, відбираючи енергію, тож вібрація поступово згасає, подібно до опору повітря й внутрішнього тертя в реальній струні чи мембрані.
Якісно — так. Кінці закріплені, тож відбиття створюють стоячі хвилі, чиї вузли збігаються з реальними гармоніками, а вибір моди запускає чистий синусоїдальний профіль sin(nπx/L). Утім, це ідеалізована модель: вона ігнорує жорсткість струни та дисперсію, а дуже високі швидкості можуть перевищити межу стійкості схеми й спотворити результат.
Локалізований защип — це суперпозиція хвиль, що біжать вздовж струни в обидва боки. Коли кожна досягає закріпленого кінця, вона відбивається зі зміною фази, і пряма й відбита хвилі багаторазово інтерферують. Лише ті довжини хвиль, що вкладаються в межі, виживають конструктивно, тож хаотичний початковий імпульс переходить у резонансний рисунок стоячої хвилі, який ви бачите.