diff --git a/changelog.html b/changelog.html index 673e06b67..392392ebb 100644 --- a/changelog.html +++ b/changelog.html @@ -172,8 +172,11 @@ + + diff --git a/concept/allocation.html b/concept/allocation.html index 68299ea1f..e09c57605 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
- F[(UserDemand #6, Basin #5)] ≥ 0
+ source[(FlowBoundary #1, Basin #2)] : F[(FlowBoundary #1, Basin #2)] ≤ 172800
+ source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
+ source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 0
+ F[(FlowBoundary #1, Basin #2)] ≥ 0
+ F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
+ F[(UserDemand #3, Basin #2)] ≥ 0
  F[(LinearResistance #4, Basin #5)] ≥ 0
  F[(Basin #5, LinearResistance #4)] ≥ 0
+ F[(Basin #2, UserDemand #3)] ≥ 0
+ F[(Basin #5, UserDemand #6)] ≥ 0
+ F[(UserDemand #6, Basin #5)] ≥ 0
  F[(TabulatedRatingCurve #7, Terminal #8)] ≥ 0
  F[(Basin #2, LinearResistance #4)] ≥ 0
  F[(LinearResistance #4, Basin #2)] ≥ 0
- F[(UserDemand #3, Basin #2)] ≥ 0
- F[(FlowBoundary #1, Basin #2)] ≥ 0
- F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
- F[(Basin #5, UserDemand #6)] ≥ 0
- F[(Basin #2, UserDemand #3)] ≥ 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[TabulatedRatingCurve #7] : -F[(TabulatedRatingCurve #7, Terminal #8)] + F[(Basin #5, TabulatedRatingCurve #7)] = 0
- flow_conservation[Basin #2] : -F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] + F[(UserDemand #3, Basin #2)] + F[(FlowBoundary #1, Basin #2)] - F[(Basin #2, UserDemand #3)] = 0
- flow_conservation[Basin #5] : F[(UserDemand #6, Basin #5)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, TabulatedRatingCurve #7)] - F[(Basin #5, UserDemand #6)] = 0
+ flow_conservation[Basin #2] : F[(FlowBoundary #1, Basin #2)] + F[(UserDemand #3, Basin #2)] - F[(Basin #2, UserDemand #3)] - F[(Basin #2, LinearResistance #4)] + F[(LinearResistance #4, Basin #2)] = 0
+ flow_conservation[Basin #5] : -F[(Basin #5, TabulatedRatingCurve #7)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, UserDemand #6)] + F[(UserDemand #6, Basin #5)] = 0
+ flow_conservation[TabulatedRatingCurve #7] : F[(Basin #5, TabulatedRatingCurve #7)] - F[(TabulatedRatingCurve #7, Terminal #8)] = 0
  flow_conservation[Terminal #8] : F[(TabulatedRatingCurve #7, Terminal #8)] = 0
- source[(FlowBoundary #1, Basin #2)] : F[(FlowBoundary #1, Basin #2)] ≤ 172800
- source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
- source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 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
 
diff --git a/concept/core.html b/concept/core.html index e746439f0..e36d1c48a 100644 --- a/concept/core.html +++ b/concept/core.html @@ -409,7 +409,7 @@

3 Substance (trac

-

This is an unsupported experimental feature and is disabled by default. We advise to use the Delwaq coupling for tracer calculations. If you’re interested in using this experimental feature, please contact us.

+

This is an unsupported experimental feature and is disabled by default. We advise to use the Delwaq coupling for tracer calculations. If you’re interested in using this experimental feature, please contact us.

Ribasim can calculate concentrations of conservative tracers (i.e. substances that are non-reactive). It does so by calculating the mass transports by flows for each timestep, in the update_cumulative_flows! callback. Specifically, for each Basin at each timestep it calculates:

diff --git a/contact.html b/contact.html new file mode 100644 index 000000000..82b1b6bbd --- /dev/null +++ b/contact.html @@ -0,0 +1,648 @@ + + + + + + + + + +Contact us – Ribasim + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Contact us

+
+ + + +
+ + + + +
+ + + +
+ + +

You can contact us via email.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/guide/delwaq.html b/guide/delwaq.html index f2fdcac57..de4545120 100644 --- a/guide/delwaq.html +++ b/guide/delwaq.html @@ -890,35 +890,35 @@

2020-01-01 00:00:00 1 0.0 -Foo +UserDemand 1464 2020-01-01 00:00:00 1 -0.0 -LevelBoundary +1.0 +Initial 2928 2020-01-01 00:00:00 1 0.0 -Precipitation +Bar 4392 2020-01-01 00:00:00 1 0.0 -Bar +Precipitation 5856 2020-01-01 00:00:00 1 0.0 -Cl +FlowBoundary ... @@ -931,36 +931,36 @@

11711 2020-12-31 00:00:00 9 -0.000108 -Initial +1.008239 +Cl 13175 2020-12-31 00:00:00 9 -0.0 -UserDemand +0.970239 +Tracer 14639 2020-12-31 00:00:00 9 -0.640103 -FlowBoundary +0.999999 +Continuity 16103 2020-12-31 00:00:00 9 -0.0 -Drainage +0.029654 +LevelBoundary 17567 2020-12-31 00:00:00 9 -0.970239 -Tracer +0.010949 +Foo @@ -969,7 +969,7 @@

-
{'Foo', 'LevelBoundary', 'Precipitation', 'Bar', 'Cl', 'Continuity', 'Terminal', 'Initial', 'UserDemand', 'FlowBoundary', 'Drainage', 'Tracer'}
+
{'UserDemand', 'Initial', 'Bar', 'Precipitation', 'FlowBoundary', 'Drainage', 'Terminal', 'Cl', 'Tracer', 'Continuity', 'LevelBoundary', 'Foo'}
@@ -997,43 +997,43 @@

8 2020-01-03 00:00:00 1 -0.034251 -Foo +0.0 +UserDemand 1472 2020-01-03 00:00:00 1 -0.034251 -LevelBoundary +0.044259 +Initial 2936 2020-01-03 00:00:00 1 -0.177087 -Precipitation +0.0 +Bar 4400 2020-01-03 00:00:00 1 -0.0 -Bar +0.177087 +Precipitation 5864 2020-01-03 00:00:00 1 -1.164538 -Cl +0.744403 +FlowBoundary 7328 2020-01-03 00:00:00 1 -1.0 -Continuity +0.0 +Drainage 8792 @@ -1046,78 +1046,78 @@

10256 2020-01-03 00:00:00 1 -0.044259 -Initial +1.164538 +Cl 11720 2020-01-03 00:00:00 1 -0.0 -UserDemand +0.92149 +Tracer 13184 2020-01-03 00:00:00 1 -0.744403 -FlowBoundary +1.0 +Continuity 14648 2020-01-03 00:00:00 1 -0.0 -Drainage +0.034251 +LevelBoundary 16112 2020-01-03 00:00:00 1 -0.92149 -Tracer +0.034251 +Foo 9 2020-01-03 00:00:00 3 -0.851086 -Foo +0.0 +UserDemand 1473 2020-01-03 00:00:00 3 -0.851086 -LevelBoundary +0.029275 +Initial 2937 2020-01-03 00:00:00 3 -0.119639 -Precipitation +0.0 +Bar 4401 2020-01-03 00:00:00 3 -0.0 -Bar +0.119639 +Precipitation 5865 2020-01-03 00:00:00 3 -28.936922 -Cl +0.0 +FlowBoundary 7329 2020-01-03 00:00:00 3 -1.0 -Continuity +0.0 +Drainage 8793 @@ -1130,78 +1130,78 @@

10257 2020-01-03 00:00:00 3 -0.029275 -Initial +28.936922 +Cl 11721 2020-01-03 00:00:00 3 -0.0 -UserDemand +0.119639 +Tracer 13185 2020-01-03 00:00:00 3 -0.0 -FlowBoundary +1.0 +Continuity 14649 2020-01-03 00:00:00 3 -0.0 -Drainage +0.851086 +LevelBoundary 16113 2020-01-03 00:00:00 3 -0.119639 -Tracer +0.851086 +Foo 10 2020-01-03 00:00:00 6 -0.03994 -Foo +0.0 +UserDemand 1474 2020-01-03 00:00:00 6 -0.03994 -LevelBoundary +0.032499 +Initial 2938 2020-01-03 00:00:00 6 -0.178862 -Precipitation +0.748699 +Bar 4402 2020-01-03 00:00:00 6 -0.748699 -Bar +0.178862 +Precipitation 5866 2020-01-03 00:00:00 6 -1.357952 -Cl +0.748699 +FlowBoundary 7330 2020-01-03 00:00:00 6 -1.0 -Continuity +0.0 +Drainage 8794 @@ -1214,78 +1214,78 @@

10258 2020-01-03 00:00:00 6 -0.032499 -Initial +1.357952 +Cl 11722 2020-01-03 00:00:00 6 -0.0 -UserDemand +0.927561 +Tracer 13186 2020-01-03 00:00:00 6 -0.748699 -FlowBoundary +1.0 +Continuity 14650 2020-01-03 00:00:00 6 -0.0 -Drainage +0.03994 +LevelBoundary 16114 2020-01-03 00:00:00 6 -0.927561 -Tracer +0.03994 +Foo 11 2020-01-03 00:00:00 9 -0.002296 -Foo +0.0 +UserDemand 1475 2020-01-03 00:00:00 9 -0.913229 -LevelBoundary +0.0078 +Initial 2939 2020-01-03 00:00:00 9 -0.029421 -Precipitation +0.04955 +Bar 4403 2020-01-03 00:00:00 9 -0.04955 -Bar +0.029421 +Precipitation 5867 2020-01-03 00:00:00 9 -31.049776 -Cl +0.04955 +FlowBoundary 7331 2020-01-03 00:00:00 9 -1.0 -Continuity +0.0 +Drainage 8795 @@ -1298,36 +1298,36 @@

10259 2020-01-03 00:00:00 9 -0.0078 -Initial +31.049776 +Cl 11723 2020-01-03 00:00:00 9 -0.0 -UserDemand +0.078971 +Tracer 13187 2020-01-03 00:00:00 9 -0.04955 -FlowBoundary +1.0 +Continuity 14651 2020-01-03 00:00:00 9 -0.0 -Drainage +0.913229 +LevelBoundary 16115 2020-01-03 00:00:00 9 -0.078971 -Tracer +0.002296 +Foo diff --git a/guide/examples_files/figure-html/cell-56-output-1.png b/guide/examples_files/figure-html/cell-56-output-1.png index 2d446817a..5e7a0774d 100644 Binary files a/guide/examples_files/figure-html/cell-56-output-1.png and b/guide/examples_files/figure-html/cell-56-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-57-output-2.png b/guide/examples_files/figure-html/cell-57-output-2.png index 961c6e295..f250831fe 100644 Binary files a/guide/examples_files/figure-html/cell-57-output-2.png and b/guide/examples_files/figure-html/cell-57-output-2.png differ diff --git a/guide/examples_files/figure-html/cell-68-output-1.png b/guide/examples_files/figure-html/cell-68-output-1.png index cca5f6384..f577a6d35 100644 Binary files a/guide/examples_files/figure-html/cell-68-output-1.png and b/guide/examples_files/figure-html/cell-68-output-1.png differ diff --git a/index.html b/index.html index fa2412763..236844864 100644 --- a/index.html +++ b/index.html @@ -171,8 +171,11 @@

+ +
diff --git a/install.html b/install.html index fdcd40210..e36832332 100644 --- a/install.html +++ b/install.html @@ -209,8 +209,11 @@ + + diff --git a/known_issues.html b/known_issues.html index c7f3ea4ff..3aa37d433 100644 --- a/known_issues.html +++ b/known_issues.html @@ -30,6 +30,7 @@ + @@ -171,8 +172,11 @@ + + @@ -649,6 +653,9 @@

1 QGIS Plugin Kno diff --git a/reference/node/basin.html b/reference/node/basin.html index 849cba656..f5a4cf695 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()

-