Skip to content

Multi-layer solver

BG_Flood started the implementration of the Basilisk multilayer solver (Popinet 2020). Despite the name, the implementation was only done for a single layer. multi-layer development is underway.

Motivation

Adopting the Basilisk multilayer solver is driven by two main goals * having a non-hydrostatic solver for Tsunami and swell waves * consider the impact of density driven flow in estuaries

BG_Flood development is very much focus on inuindations drivers and not so much on larger spatial and temporal scale oceanographic processes. While this solver should open the door for simulating some of these processes we will not really focus on these and users may find more user friendly features in ROMS.

Nice side effect

The engine is claimed to be superior to other engine/solvers/ reconstruction already implemented in BG_Flood. Our experience so far shows:

  • Much improvement for rain on steep catchment (see below)
  • Sharper shock capture with 1 layer but this may be minor
  • More prone to instability

Usage

If you want to use this engine, simply specify the engine in your param file like this:

engine = 5

We are still experimenting with conflict with other solver default options and fixes and for now make sure you have the option wetdryfix=false in your param file too.

Test

There is a test for the solver as part of test=1 note this is only tested for the selected engine.

Validation

Below are a series of validation of the solver for rain-on-grid, dam break and tsunami.

Rain on grid validation

Simple mass-conservation test

The simple mass conservation test is great for checking engine flaws when using rain on grid. Here we push it to the extreme by throwing 100 m3/s for 100 s over 1 km2 (equivalent 10 mm of rainfall falling in 100 s which is equivalent to a rate of 360 mm/h for 1.5-ish minutes ). Note that there are a few tricks to There are a few trick to force the Buttinger to conserve mass but we decided not to turn them on for these tests.

When topography is gentle mass conservation is a given but when using steep topography things start to break down. This is the extreme bit. Clearly the Kurganov is better at conserving Mass and the new engine is not bad either.

Test Theory Kurganov Engine Buttinger Engine 1-layer MLH Engine
No Topo, Wet ground 10000.0 -0.00071% -0.00290% 0.00351%
No Topo Dry ground 10000.0 0.00027% 0.00023% 0.00022%
Real Topo Dry ground 10000.0 2.24% -13.03% 3.10%

The table above show that the Kurganov (the original) engine conserves mass better but the fighures below show that it actually does that by keeping water up the catchment and not letting it flow down (Bad). Buttinger model looks like it is missing a huge amount of mass (Bad) but in reality it is because it lets the water down (Good) but as a consequence it leaves negative water depth upstream (Bad). Thew new engine as a good mass balance and lets the water flow nicely...

Water depth after 500 s, Kurganov engine. Note the black pixels are negative values. image

Water depth after 500 s, Buttinger engine. Note the black pixels are negative values. image

Water depth after 500 s, 1-layer MLH Engine. No negative values and the water has accumulated in the rivers instead of upstream of the steep slopes. image

Cea et al. test

This is one of my favourite test for Rain on grid even though the lab test has some flaw itself. This shows that the Buttinger and 1-layer MLH engines basically perform the same. and despite over-predicting the peak capture the both raising and falling limb really well.

image

Rain-on-grid Summary

The new engine is performing very well and looks like is able to dramatically improve results using rain on grid. In the past BG_Flood didn't see much improvement using old engine with no-infiltration, the new engine might require a tighter use of infiltration for rain-on-grid.

Dam Break

Dam break lab experiments are very difficult to replicate but they are widely use for model comparison so this is a great to compare engine and compare with other hydrodynamic packages (we won't be doing that explicitly here...).

The Dam break experiment we are replicating here is the classic dam-break against an isolated obstacle from Soares-Frazão and Zech (2002). This test is used in the Benchmarking of 2D Hydraulic Modelling Packages from the UK Environment Agency.

Experimental setup

Experimental setup

As expected the model is doing sorta OK against the lab data. And more importantly both Kurganov solver and the 1-layered MLH are doing pretty similar at all gauges.

BG_Flood results

Gauge 1

The model capture the initial shock OK but then struggles because of the breaking of the shock forms rollers. image

image

Gauge 2

image

image

Gauge 6

image

Velocity field

While the velocity figure above are not too promising the plot below show modelled velocity patterns and amplitude with some canning similarity to the measurements.

Downstream velocity

image

Cross-stream velocity

image

Other models

For reference this is how other models did. image

Dam Break summary

The new engine perform at least as well as the previous engine and is as satisfactory as a 2D solver can be for dam break problems.

Tsunami Validation

This post is to check the validity and performance of the new engine for tsunami problem

Monai example

One of the hope is that the new engine handles tsunami wave propagation and inundation. The Monai benchmark test is a great test for that. image The new engine (5) process very similar results as the other engine (1).

Kamchatka 2025 earthquake

Here we plug the SIFT inversion of the tsunami for deformation and run the model across the Pacific. We only plot the comparison for a single DART buoys below but we have looked at a bunch and there is only minor difference between the two engine tested. It's actually quite hard to see the difference between the two model. this is actually a good thing that two fairly different engine produces such similar results.

image

image

Tsunami summary

The new engine shows better shock capture but that might be only helpful for nearshore processes (this is still very good).