From c0df9c9c527372f2e39b79aa4fbfd839f4977509 Mon Sep 17 00:00:00 2001 From: visr Date: Wed, 9 Oct 2024 08:30:30 +0000 Subject: [PATCH] deploy: 7cda6740bfe59653cd30a4195aa4820c17eed6d8 --- concept/allocation.html | 28 +- guide/delwaq.html | 22 +- reference/node/basin.html | 14 +- reference/node/discrete-control.html | 2 +- reference/node/manning-resistance.html | 2 +- reference/node/tabulated-rating-curve.html | 2 +- reference/test-models.html | 2 +- reference/validation.html | 4 +- search.json | 3134 ++++++++++---------- site_libs/bootstrap/bootstrap.min.css | 2 +- tutorial/irrigation-demand.html | 4 +- tutorial/reservoir.html | 4 +- 12 files changed, 1610 insertions(+), 1610 deletions(-) diff --git a/concept/allocation.html b/concept/allocation.html index 4f097b017..5870af635 100644 --- a/concept/allocation.html +++ b/concept/allocation.html @@ -578,7 +578,7 @@

4.4 Example

The following is an example of an optimization problem for the example shown here:

-
+
Code
using Ribasim
@@ -600,27 +600,27 @@ 

println(p.allocation.allocation_models[1].problem)

-
Min F[(Basin #5, UserDemand #6)]² + F[(Basin #2, UserDemand #3)]²
+
Min F[(Basin #2, UserDemand #3)]² + F[(Basin #5, UserDemand #6)]²
 Subject to
- flow_conservation[Basin #5] : -F[(Basin #5, UserDemand #6)] + F[(UserDemand #6, Basin #5)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, TabulatedRatingCurve #7)] = 0
- flow_conservation[TabulatedRatingCurve #7] : -F[(TabulatedRatingCurve #7, Terminal #8)] + F[(Basin #5, TabulatedRatingCurve #7)] = 0
- flow_conservation[Basin #2] : F[(UserDemand #3, Basin #2)] + F[(FlowBoundary #1, Basin #2)] - F[(Basin #2, UserDemand #3)] - F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] = 0
+ flow_conservation[LinearResistance #4] : F[(Basin #2, LinearResistance #4)] - F[(LinearResistance #4, Basin #2)] - F[(LinearResistance #4, Basin #5)] + F[(Basin #5, LinearResistance #4)] = 0
  flow_conservation[Terminal #8] : F[(TabulatedRatingCurve #7, Terminal #8)] = 0
- flow_conservation[LinearResistance #4] : -F[(LinearResistance #4, Basin #5)] + F[(Basin #5, LinearResistance #4)] + F[(Basin #2, LinearResistance #4)] - F[(LinearResistance #4, Basin #2)] = 0
+ flow_conservation[Basin #5] : -F[(Basin #5, TabulatedRatingCurve #7)] - F[(Basin #5, UserDemand #6)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] + F[(UserDemand #6, Basin #5)] = 0
+ flow_conservation[Basin #2] : -F[(Basin #2, UserDemand #3)] + F[(UserDemand #3, Basin #2)] + F[(FlowBoundary #1, Basin #2)] - F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] = 0
+ flow_conservation[TabulatedRatingCurve #7] : F[(Basin #5, TabulatedRatingCurve #7)] - F[(TabulatedRatingCurve #7, Terminal #8)] = 0
  source[(FlowBoundary #1, Basin #2)] : F[(FlowBoundary #1, Basin #2)] ≤ 172800
- source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 0
  source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
- F[(TabulatedRatingCurve #7, Terminal #8)] ≥ 0
+ source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 0
+ F[(Basin #2, UserDemand #3)] ≥ 0
+ F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
  F[(UserDemand #3, Basin #2)] ≥ 0
- F[(Basin #5, UserDemand #6)] ≥ 0
  F[(FlowBoundary #1, Basin #2)] ≥ 0
- F[(UserDemand #6, Basin #5)] ≥ 0
- F[(LinearResistance #4, Basin #5)] ≥ 0
- F[(Basin #5, LinearResistance #4)] ≥ 0
- F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
- F[(Basin #2, UserDemand #3)] ≥ 0
  F[(Basin #2, LinearResistance #4)] ≥ 0
  F[(LinearResistance #4, Basin #2)] ≥ 0
+ F[(Basin #5, UserDemand #6)] ≥ 0
+ F[(LinearResistance #4, Basin #5)] ≥ 0
+ F[(Basin #5, LinearResistance #4)] ≥ 0
+ F[(TabulatedRatingCurve #7, Terminal #8)] ≥ 0
+ F[(UserDemand #6, Basin #5)] ≥ 0
 
diff --git a/guide/delwaq.html b/guide/delwaq.html index cb395fc48..e06dd147b 100644 --- a/guide/delwaq.html +++ b/guide/delwaq.html @@ -558,21 +558,21 @@

Ribasim Delwaq coupling

list(output_path.iterdir())
-
[PosixPath('../../generated_testmodels/basic/delwaq/ribasim.vol'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim_bndlist.inc'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.atr'),
- PosixPath('../../generated_testmodels/basic/delwaq/flows.csv'),
- PosixPath('../../generated_testmodels/basic/delwaq/delwaq.inp'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.are'),
- PosixPath('../../generated_testmodels/basic/delwaq/B5_bounddata.inc'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.nc'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.vel'),
+
[PosixPath('../../generated_testmodels/basic/delwaq/ribasim.flo'),
  PosixPath('../../generated_testmodels/basic/delwaq/volumes.csv'),
+ PosixPath('../../generated_testmodels/basic/delwaq/ribasim.are'),
+ PosixPath('../../generated_testmodels/basic/delwaq/ribasim.poi'),
  PosixPath('../../generated_testmodels/basic/delwaq/dimr_config.xml'),
+ PosixPath('../../generated_testmodels/basic/delwaq/ribasim.nc'),
+ PosixPath('../../generated_testmodels/basic/delwaq/flows.csv'),
  PosixPath('../../generated_testmodels/basic/delwaq/network.csv'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.flo'),
  PosixPath('../../generated_testmodels/basic/delwaq/ribasim.len'),
- PosixPath('../../generated_testmodels/basic/delwaq/ribasim.poi')]
+ PosixPath('../../generated_testmodels/basic/delwaq/B5_bounddata.inc'), + PosixPath('../../generated_testmodels/basic/delwaq/ribasim.atr'), + PosixPath('../../generated_testmodels/basic/delwaq/ribasim_bndlist.inc'), + PosixPath('../../generated_testmodels/basic/delwaq/delwaq.inp'), + PosixPath('../../generated_testmodels/basic/delwaq/ribasim.vel'), + PosixPath('../../generated_testmodels/basic/delwaq/ribasim.vol')]

These files form a complete Delwaq simulation, and can be run by either pointing DIMR to the dimr_config.xml file or pointing Delwaq to the delwaq.inp file.

diff --git a/reference/node/basin.html b/reference/node/basin.html index e415dcefd..afab79136 100644 --- a/reference/node/basin.html +++ b/reference/node/basin.html @@ -476,7 +476,7 @@

1.2.1 Interpolation

At the given timestamps the values are set in the simulation, such that the timeseries can be seen as forward filled.

-
+
Code
import numpy as np
@@ -675,7 +675,7 @@ 

1.4.1.1 Level to area

The level to area relationship is defined with the Basin / profile data using linear interpolation. An example of such a relationship is shown below.

-
+
Code
fig, ax = plt.subplots()
@@ -758,7 +758,7 @@ 

\[ S(h) = \int_{h_0}^h A(h')\text{d}h'. \]

-
+
Code
storage = np.diff(level) * area[:-1] + 0.5 * np.diff(area) * np.diff(level)
@@ -803,7 +803,7 @@ 

1.4.1.3 Interactive basin example

The profile data is not detailed enough to create a full 3D picture of the basin. However, if we assume the profile data is for a stretch of canal of given length, the following plot shows a cross section of the basin.

-
+
Code
import plotly.graph_objects as go
@@ -918,9 +918,9 @@ 

fig.show()

-