Ця симуляція розв'язує одновимірні рівняння мілкої води (Сен-Венана) — збереження маси ∂h/∂t + ∂(hu)/∂t = 0 та імпульсу ∂(hu)/∂t + ∂(hu²+½gh²)/∂x = 0 — методом скінченних об'ємів із потоком типу Лакса-Фрідріхса та адаптивним кроком за часом, обмеженим числом CFL, щоб схема лишалась стійкою навіть коли швидкість хвилі змінюється. Чотири сценарії використовують один і той самий розв'язувач: класичний прорив дамби (стрибок глибини h), хлюпання у резервуарі (синусоїдальна початкова поверхня), хвильовий потяг від межі та рухомий гідравлічний перепад — це дозволяє порівняти, як та сама фізика мілкої води породжує бори, коливання хлюпання та усталені хвильові потяги.
Одновимірний стовпчик води з висотою h(x) та усередненим за глибиною імпульсом hu(x), що покроково обчислюється методом скінченних об'ємів. Функція потоку обчислює hu та hu·u+½gh² на кожній грані комірки, а умова CFL dt = CFL·dx/max(|u|+√(gh)) утримує явну схему стійкою навіть коли бор від прориву дамби прискорюється.
Оберіть сценарій (Прорив дамби, Хлюпання, Хвиля, Перепад), потім рухайте повзунки Лівої та Правої висоти, щоб задати початкові глибини води по обидва боки від дамби, налаштуйте коефіцієнт шорсткості Маннінга для тертя об дно та число CFL, щоб обрати компроміс між стійкістю та швидкістю. Загальна маса відстежується відносно початкового значення (mass0), тож можна перевіряти закон збереження під час роботи симуляції.
Задача про прорив дамби має точний аналітичний (Ріттера) розв'язок для дна без тертя, тому вона є стандартним підручниковим тестом для перевірки будь-якої нової числової схеми мілкої води перед застосуванням до річок, цунамі чи заплав.
Це спрощення рівнянь Нав'є-Стокса, усереднене за глибиною, справедливе коли горизонтальний масштаб набагато більший за глибину води. Вони відстежують лише висоту h(x,t) та інтегрований за глибиною імпульс hu(x,t), тому їх можна дешево розв'язувати в 1D, зберігаючи при цьому хвилі, бори та хлюпання.
Задання різних лівої (hL) та правої (hR) висот і їх звільнення моделює раптове руйнування дамби: вищий стовпчик обвалюється у нижчий, породжуючи удароподібний бор, що просувається у мілку сторону, та хвилю розрідження, що відступає у глибоку сторону — точнісінько як при реальному паводковому підйомі.
Явні схеми скінченних об'ємів стійкі лише якщо інформація не може перетнути більш ніж одну комірку сітки за крок. Оскільки швидкість хвилі дорівнює u±√(gh), код перераховує dt = CFL·dx/max_швидкість_хвилі на кожному кроці, щоб швидкий бор у сценарії Дамби чи швидкий Перепад не випередив числову схему й не спричинив розбіжність.
Коефіцієнт Маннінга представляє тертя об дно річки чи каналу. Збільшення його додає гальмівний член, що поступово забирає імпульс у потоку, гасячи коливання у сценарії Хлюпання та сповільнюючи бор у сценарії Дамби — подібно до того, як шорстке дно річки сповільнює реальну повеневу воду.
Оскільки дискретизовані рівняння записані у консервативній формі (різниці потоків між сусідніми комірками), загальний об'єм води Σh·dx має лишатись рівним початковому значенню mass0 для будь-якого замкненого чи періодичного домену — відстеження цього значення є живою перевіркою того, що числова схема штучно не створює й не знищує воду.