diff --git a/changelog.html b/changelog.html index 83f185195..4b7436af6 100644 --- a/changelog.html +++ b/changelog.html @@ -183,25 +183,26 @@

On this page

  • 1.2 [v2024.10.0] - 2024-07-23
  • 1.3 [v2024.9.0] - 2024-06-20
  • 1.4 [v2024.8.0] - 2024-05-14
  • @@ -220,9 +221,48 @@

    1 Changelog

    1.1 [Unreleased]

    1.1.1 Added

    +

    1.1.2 Changed

    + +
    +
    +

    1.1.3 Fixed

    +
    @@ -248,8 +288,8 @@

    Require QGIS 3.34 (LTR) or newer for Ribasim QGIS plugin.

    -
    -

    1.2.3 Fixed

    +
    +

    1.2.3 Fixed

    -
    -

    1.3.3 Fixed

    +
    +

    1.3.3 Fixed

    • Don’t require unique node IDs. #1513
    • Fix QGIS crash on plugin initialization. #1580
    • @@ -307,8 +347,8 @@

      Users of the QGIS plugin need to remove the old version to avoid two copies due to #1453.

    -
    -

    1.4.3 Fixed

    +
    +

    1.4.3 Fixed

    • Performance improvements have been a focus of this release, giving up to 10x faster runs. #1433, #1436, #1438, #1448, #1457
    • The CLI exe is now always in the root of the zip and makes use of the libribasim shared library. #1415
    • diff --git a/concept/allocation.html b/concept/allocation.html index 5d0596daa..8b4ef3118 100644 --- a/concept/allocation.html +++ b/concept/allocation.html @@ -574,7 +574,7 @@

      4.4 Example

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

      -
      +
      Code
      using Ribasim
      @@ -597,27 +597,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[Terminal #8] : F[(TabulatedRatingCurve #7, Terminal #8)] = 0
      - flow_conservation[Basin #2] : F[(FlowBoundary #1, Basin #2)] - F[(Basin #2, UserDemand #3)] + F[(UserDemand #3, Basin #2)] - 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[Basin #5] : -F[(Basin #5, UserDemand #6)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] - F[(Basin #5, TabulatedRatingCurve #7)] + F[(UserDemand #6, Basin #5)] = 0
      + flow_conservation[Basin #5] : F[(UserDemand #6, Basin #5)] - F[(Basin #5, UserDemand #6)] - F[(Basin #5, TabulatedRatingCurve #7)] + F[(LinearResistance #4, Basin #5)] - F[(Basin #5, LinearResistance #4)] = 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 #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[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 #3] : F[(UserDemand #3, Basin #2)] ≤ 0
        source_user[UserDemand #6] : F[(UserDemand #6, Basin #5)] ≤ 0
      - F[(Basin #5, UserDemand #6)] ≥ 0
      + source_user[UserDemand #3] : F[(UserDemand #3, Basin #2)] ≤ 0
      + F[(UserDemand #6, Basin #5)] ≥ 0
      + F[(UserDemand #3, Basin #2)] ≥ 0
        F[(FlowBoundary #1, Basin #2)] ≥ 0
        F[(Basin #2, UserDemand #3)] ≥ 0
      - F[(UserDemand #3, Basin #2)] ≥ 0
      - F[(Basin #2, LinearResistance #4)] ≥ 0
      - F[(LinearResistance #4, Basin #2)] ≥ 0
      - F[(LinearResistance #4, Basin #5)] ≥ 0
      - F[(Basin #5, LinearResistance #4)] ≥ 0
      + F[(Basin #5, UserDemand #6)] ≥ 0
        F[(Basin #5, TabulatedRatingCurve #7)] ≥ 0
        F[(TabulatedRatingCurve #7, Terminal #8)] ≥ 0
      - F[(UserDemand #6, Basin #5)] ≥ 0
      + F[(LinearResistance #4, Basin #5)] ≥ 0
      + F[(Basin #5, LinearResistance #4)] ≥ 0
      + F[(Basin #2, LinearResistance #4)] ≥ 0
      + F[(LinearResistance #4, Basin #2)] ≥ 0
       
      diff --git a/guide/examples_files/figure-html/cell-18-output-1.png b/guide/examples_files/figure-html/cell-18-output-1.png index 2b59f6906..a0ed9ec18 100644 Binary files a/guide/examples_files/figure-html/cell-18-output-1.png and b/guide/examples_files/figure-html/cell-18-output-1.png differ diff --git a/guide/examples_files/figure-html/cell-19-output-1.png b/guide/examples_files/figure-html/cell-19-output-1.png index 8072ffdc2..e14be5e62 100644 Binary files a/guide/examples_files/figure-html/cell-19-output-1.png and b/guide/examples_files/figure-html/cell-19-output-1.png differ diff --git a/reference/node/basin.html b/reference/node/basin.html index 77e6c237c..cbc214fd6 100644 --- a/reference/node/basin.html +++ b/reference/node/basin.html @@ -472,7 +472,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
      @@ -671,7 +671,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()
      @@ -754,7 +754,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)
      @@ -799,7 +799,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
      @@ -914,9 +914,9 @@ 

      fig.show()

      -