Skip to content
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

Reinfiltration of surface water and flow threshold for overland flow #470

Draft
wants to merge 28 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
df51bea
Update sbm.jl
JoostBuitink Sep 3, 2024
6a984ce
Merge branch 'master' into reinfiltration
JoostBuitink Sep 3, 2024
ebe92bd
add support for h_thres for overland flow
JoostBuitink Sep 9, 2024
30e30fb
Merge branch 'master' into reinfiltration
JoostBuitink Sep 9, 2024
6bd036c
update test and changelog
JoostBuitink Sep 9, 2024
de4c229
clean up overland flow threshold
JoostBuitink Sep 17, 2024
6b70f1b
clean code related to `excesswater`
JoostBuitink Sep 17, 2024
68aed28
improve infilt_ratio
JoostBuitink Sep 17, 2024
127b68b
fix `excesswater`
JoostBuitink Sep 17, 2024
7f2d86c
fix water balance issue; improve readability of excesswater computation
JoostBuitink Sep 25, 2024
6e1fd92
move correction to runoff calculation
JoostBuitink Sep 26, 2024
79ed50b
add flow threshold for overland flow
JoostBuitink Sep 26, 2024
de29798
fix `h_thresh` type in struct definition
JoostBuitink Sep 26, 2024
2cd9577
update changelog
JoostBuitink Sep 26, 2024
f6bfe8a
update docs, fix gwf error
JoostBuitink Sep 27, 2024
ae37c4a
add tests
JoostBuitink Sep 27, 2024
8560072
update docs
JoostBuitink Sep 27, 2024
e5067f7
update WflowServer tests
JoostBuitink Sep 27, 2024
715485e
Merge branch 'master' into reinfiltration
JoostBuitink Sep 27, 2024
db41548
wrap lines
JoostBuitink Sep 27, 2024
b5d4889
Update run_sbm.jl
JoostBuitink Sep 27, 2024
56e7d32
fix computation of pond volume to cell area
JoostBuitink Oct 11, 2024
4a39e4a
fix such that only water above the threshold is allowed to flow
JoostBuitink Oct 11, 2024
01bd103
revert area calculation back to width*dl
JoostBuitink Oct 16, 2024
26f5004
remove dependency of waterfrac; fix flowing_fraction
JoostBuitink Oct 18, 2024
dd921b7
fix open water evaporation
JoostBuitink Oct 24, 2024
d05f673
move pond calculations to fully inside for loop
JoostBuitink Oct 24, 2024
2dfa845
fix flowing_fraction and volume calculation
JoostBuitink Oct 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update docs, fix gwf error
  • Loading branch information
JoostBuitink committed Sep 27, 2024
commit f6bfe8a6dd51798c01779b260ef14a4c470867c2
2 changes: 2 additions & 0 deletions docs/src/model_docs/params_lateral.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ internal model parameter `sl`, and is listed in the Table below between parenthe
| `cel` | celerity of kinematic wave | m s``^{-1}`` | - |
| `to_river` | part of overland flow that flows to the river | m``^3`` s``^{-1}`` | - |
| `kinwave_it` | boolean for kinematic wave iterations | - | false |
| **`h_thresh`** | threshold for water level before flow occurs | m | 0 |
| `pond_height` | waterlevel of the pond (water stored on land surface) | m | - |

### [Reservoirs](@id reservoir_params)
The Table below shows the parameters (fields) of struct `SimpleReservoir`, including a
Expand Down
1 change: 1 addition & 0 deletions docs/src/model_docs/params_vertical.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ profile `kv` is used and `z_layered` is required as input.
| `actinfiltpath` | actual infiltration into compacted fraction | mm Δt``^{-1}`` | - |
| `infiltsoilpath` | infiltration into the unsaturated zone | mm Δt``^{-1}`` | - |
| `infiltexcess` | infiltration excess water | mm Δt``^{-1}`` | - |
| `infilt_surfacewater` | part of infiltration that originates from surface water | mm Δt``^{-1}`` | - |
| `excesswater` | water that cannot infiltrate due to saturated soil (saturation excess) | mm Δt``^{-1}`` | - |
| `exfiltsatwater` | water exfiltrating during saturation excess conditions | mm Δt``^{-1}`` | - |
| `exfiltustore` | water exfiltrating from unsaturated store because of change in water table | mm Δt``^{-1}`` | - |
Expand Down
28 changes: 28 additions & 0 deletions docs/src/user_guide/additional_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,34 @@ irrigation_trigger = "irrigation_trigger"
h = "h_paddy"
```

## Enabling re-infiltration of overland flow
To allow for re-infiltration of overland flow, the following model flag needs to be set:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To allow for re-infiltration of overland flow, the following model flag needs to be set:
To allow for re-infiltration of overland flow as part of the kinematic wave and local inertial routing schemes, the following model flag needs to be set:


```toml
[model]
surface_water_infiltration = true
```

When using this option, the average surface water level (of the previous time step) is added to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When using this option, the average surface water level (of the previous time step) is added to
When using this option, the average surface water level (at the previous time step) is added to

the volume of water that is allowed to infiltrate (`avail_forinfilt`). To keep track of the
infiltrated water that originates from the surface water, the variable `infilt_surfacewater` is
used. This variable is then subtracted from the net runoff, such that the overland flow is
corrected for the loss of this water. Lastly, some corrections are applied on the
`excesswater`, to prevent the surface water from being counted twice as excess water. This
option works for both kinematic wave and local inertial overland flow.
Comment on lines +199 to +200
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`excesswater`, to prevent the surface water from being counted twice as excess water. This
option works for both kinematic wave and local inertial overland flow.
`excesswater` variable, to prevent the surface water from being counted twice as excess water.


## Enabling a water level threshold for overland flow
A water level threshold can be set for the overland flow. As long as this threshold is not
exceeded, flow is not allowed to occur, and the water will be considered a "pond" (the variable
`lateral.land.pond_height` can be used to keep track of its water level for kinematic wave
overland flow, and the variable `lateral.land.h` can be used). When this threshold is exceeded,
Comment on lines +205 to +206
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this part could benefit from a bit more detailed explanation. Readers could get confused here: for kinematic wave pond_height is used and for local inertial routing the variable h is used, this needs a bit more explanation.

flow is allowed to occur. This flow threshold can be set as a map from the staticmaps:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
flow is allowed to occur. This flow threshold can be set as a map from the staticmaps:
flow is allowed to occur. This flow threshold can be set as a static map as part of the input netCDF file:


```toml
[input.lateral.land]
h_thresh = "overland_flow_threshold"
```

## [Using multithreading] (@id multi_threading)

### Using wflow in Julia
Expand Down
1 change: 1 addition & 0 deletions src/sbm_gwf_model.jl
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,7 @@ function update(model::Model{N,L,V,R,W,T}) where {N,L,V,R,W,T<:SbmGwfModel}
vertical,
(network.land.altitude .- aquifer.head) .* 1000.0, # zi [mm] in vertical concept SBM
exfiltwater .* 1000.0,
config,
)

ssf_toriver = zeros(vertical.n)
Expand Down
Loading