Головна Гідродинаміка та Аеродинаміка Рівняння мілководдя

🌊 Рівняння мілководдя

1D розв'язувач рівнянь мілководдя (Сен-Венан) за схемою Лакса-Фрідріхса. Симулюйте прорив дамби (хвиля рідини + бор), коливання хвиль, припливну хвилю, гідравлічний ступінь. Відображає профіль поверхні, поле швидкостей і число Фруда. Коефіцієнт Менінга враховує тертя дна. Похибка збереження маси відображається в реальному часі.

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

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

Ця симуляція розв'язує 1D рівняння мілководдя (Сен-Венана) — збереження маси ∂h/∂t + ∂(hu)/∂t = 0 та імпульсу ∂(hu)/∂t + ∂(hu²+½gh²)/∂x = 0 — за допомогою потоку у стилі Лакса–Фрідріхса та адаптивного часового кроку, обмеженого умовою CFL, щоб схема залишалась стійкою при зміні швидкостей хвиль. Чотири сценарії використовують той самий розв'язувач: класичний прорив дамби (стрибок глибини h), коливання у резервуарі (синусоїдальна початкова поверхня), хвильовий потяг, керований межею, та рухомий гідравлічний ступінь — це дозволяє порівняти, як та сама фізика мілководдя породжує бори, коливання та стійкі хвильові потяги.

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

1D стовпчик висоти води h(x) та усередненого по глибині імпульсу hu(x), що просувається скінченно-об'ємною схемою. Функція потоку обчислює hu та hu·u+½gh² на кожній грані комірки, а умова CFL dt = CFL·dx/max(|u|+√(gh)) утримує явну схему стійкою навіть коли бор прориву дамби прискорюється.

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

Оберіть сценарій (Dam Break, Slosh, Wave, Step), тоді перетягніть повзунки Left Height і Right Height, щоб задати початкові глибини води по обидва боки дамби, налаштуйте коефіцієнт шорсткості Менінга для тертя дна та відрегулюйте число CFL, щоб компромісувати стійкість зі швидкістю. Загальна маса відстежується відносно початкового значення (mass0), тож можна перевіряти збереження під час роботи симуляції.

💡 Чи знали ви?

Задача прориву дамби має точний аналітичний розв'язок (Ріттера) для дна без тертя, тому вона є стандартним підручниковим тестом для перевірки будь-якої нової чисельної схеми мілководдя перед застосуванням до річок, цунамі чи заплавних територій.

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

Що таке рівняння мілководдя (Сен-Венана)?

Це усереднене по глибині спрощення рівнянь Нав'є–Стокса, дійсне, коли горизонтальний масштаб довжини набагато більший за глибину води. Вони відстежують лише висоту h(x,t) та проінтегрований по глибині імпульс hu(x,t), тому їх можна дешево розв'язувати в 1D, водночас зберігаючи хвилі, бори та коливання.

Що фізично відбувається у сценарії прориву дамби?

Задання різних лівої (hL) та правої (hR) висот і їх вивільнення моделює раптовий прорив дамби: вищий стовпчик обвалюється в нижчий, створюючи ударну хвилю (бор), що просувається у мілку сторону, та хвилю розрідження (розширення), що відступає у глибоку сторону — точно як у реальному повеневому паводку.

Чому симуляції потрібен часовий крок, обмежений умовою CFL?

Явні скінченно-об'ємні схеми стійкі лише тоді, коли інформація не перетинає більш ніж одну комірку сітки за часовий крок. Оскільки швидкість хвилі становить u±√(gh), код перераховує dt = CFL·dx/макс_швидкість_хвилі на кожному кроці, щоб швидкий бор у сценарії Dam чи швидкий сценарій Step не випередив чисельну схему й не спричинив вибух розв'язку.

Що контролює повзунок шорсткості Менінга?

Коефіцієнт Менінга представляє тертя дна річкового русла чи каналу. Його збільшення додає член опору, що з часом забирає імпульс з течії, гасячи коливання у сценарії Slosh і сповільнюючи бор у сценарії Dam, подібно до того, як шорстке дно річки сповільнює реальну паводкову воду.

Чому загальна маса відстежується під час симуляції?

Оскільки дискретизовані рівняння записані у консервативній формі (різниці потоків між сусідніми комірками), загальний об'єм води Σh·dx має залишатися рівним початковому значенню mass0 для будь-якого замкненого чи періодичного домену — відстеження цього є живою перевіркою того, що чисельна схема штучно не створює й не знищує воду.

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