-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Local inertial solution 1-D/2-D #182
Conversation
10a3617
to
232ec2f
Compare
update of wflow_sbm model Moselle (including states and forcing), includes now river elevation data for local inertial approach.
with different struct for Land and River part
should have been part of previous commit. for lateral subsurface flow/ groundwater kinematic wave is used for now.
update function with sub-grid channel model: local inertial approximation of the shallow water equation (Almeida et al., 2012), 1D (sub-grid) for the river channel, and 2D for the floodplain/ overland flow.
- runoff to land domain of shallow water now also includes river and lateral ssf inputs - moved update of land and river domain from sbm_swf_model.jl to a function in flow.jl - adaptive time stepping is calculated (was fixed)
- cleanup code in sbm_swf_model.jl - decreased memory allocation by Wflow.update_sbm_swf(model)
- sbm_swf_model and update of forcing/cyclic (load_dynamic_input!(model)) and prepare_reader - related to new version of test model Moselle
- local inertial model for land and river domain are now part of surface routing - implemented for sbm_model as option to run local inertial model for both river and land domain
- warm state working correctly now for local inertial routing (overland and river flow) - update of sbm Moselle test model and test results based on HydroMT updates (river bathymetry) - small test for local inertial routing (overland and river flow) - update of fields ShallowWaterLand
- for local inertial approach river and overland flow.
- move check for zero flow width - remove double entry "lateral.land.volume .= ..."
Removes MacOS from the tests since it is unlikely to find any additional issues, and takes the most time in CI.
for the calculation of the effective flow width as part of local inertial overland flow, a check on the maximum index was missing.
and preserve the floating point type
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! I added some commits, please check them before merging.
Possibly there are more performance gains still on the table, but we can always improve on that later. Would be nice to have some animations of local inertial 2D spreading along the land, maybe as embedded videos in the documentation? Not for this PR though.
Thanks for the review @visr! I agree, there are probably more performance gains, just came across this interesting paper (lisflood-fp): |
Routing for model type
sbm
has been extended with a local inertial solution for 2-D for overland/ floodplain flow. It is linked to the existing local inertial solution for 1-D river flow (subgrid channel). The 2-D solution makes use of a D4 (four direction) routing scheme, while the 1-D river flow solution uses a D8 (eight direction) routing scheme. For 2-D overland/ floodplain on a staggered grid the numerical scheme proposed by Almeida et al. (2012) is adopted.