From 179e8d878e36e5806078b82f515e5d86bc13e981 Mon Sep 17 00:00:00 2001 From: Martijn Visser Date: Mon, 19 Aug 2024 15:51:21 +0200 Subject: [PATCH] Use ribasim.org domain name --- README.md | 2 +- docs/concept/concept.qmd | 2 +- docs/dev/allocation.qmd | 38 ++++++++++++------------ docs/dev/release.qmd | 4 +-- pixi.toml | 4 +-- python/ribasim/README.md | 4 +-- python/ribasim/pyproject.toml | 2 +- python/ribasim_api/README.md | 2 +- python/ribasim_api/pyproject.toml | 2 +- python/ribasim_testmodels/README.md | 2 +- python/ribasim_testmodels/pyproject.toml | 2 +- ribasim_qgis/metadata.txt | 7 ++--- 12 files changed, 35 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index f717493a1..bf61c6f62 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![QGIS Tests](https://github.com/Deltares/Ribasim/actions/workflows/qgis.yml/badge.svg)](https://github.com/Deltares/Ribasim/actions/workflows/qgis.yml) [![codecov](https://codecov.io/gh/Deltares/Ribasim/branch/main/graph/badge.svg)](https://codecov.io/gh/Deltares/Ribasim) -**Documentation: https://deltares.github.io/Ribasim/** +**Documentation: https://ribasim.org/** Ribasim is a water resources model, designed to be the replacement of the regional surface water modules Mozart and SIMRES in the Netherlands Hydrological Instrument (NHI). Ribasim is diff --git a/docs/concept/concept.qmd b/docs/concept/concept.qmd index 59eff17ce..fd89d3ef8 100644 --- a/docs/concept/concept.qmd +++ b/docs/concept/concept.qmd @@ -26,7 +26,7 @@ This version of Ribasim is the follow up of the legacy Fortran kernel of Ribasim ## Physical layer {#sec-physical} -To represent the physical characteristics of the water system in an area, Ribasim allows you to divide the area into a network of connected representative elementary watersheds ([Reggiani, Sivapalan, and Majid Hassanizadeh 1998](https://deltares.github.io/Ribasim/#ref-REGGIANI1998367)). +To represent the physical characteristics of the water system in an area, Ribasim allows you to divide the area into a network of connected representative elementary watersheds [@REGGIANI1998367]. Within Ribasim, these elements are called basins, which are essentially buckets or reservoirs holding an aggregated volume of water bodies in an area. Basins are chained in a graph with connector nodes determining the exchange of water between the basins. These connector nodes can represent open water connections (e.g. bifurcations or resistance in a free flowing open water channel) or infrastructure elements such as pumps, gates or weirs. diff --git a/docs/dev/allocation.qmd b/docs/dev/allocation.qmd index 411ea1f83..35331d997 100644 --- a/docs/dev/allocation.qmd +++ b/docs/dev/allocation.qmd @@ -1,7 +1,7 @@ --- title: "Allocation" --- -# Overview of allocation implementation +# Overview of allocation implementation [#sec-allocation-overview] In this document, the allocation workflow is explained. Below is an overview of it. ```{mermaid} flowchart TD @@ -17,13 +17,13 @@ flowchart TD H --> |Yes| D(End) ``` -If allocation is used in a model, [Allocation structs](https://deltares.github.io/Ribasim/dev/allocation.html#the-allocation-struct) are created. +If allocation is used in a model, [Allocation structs](#sec-allocation-struct) are created. The allocation struct stores the data that is needed for the calculations and stores also the results of the calculation. In allocation, optimization is an essential part. `JuMP.jl` is used to model and solve the optimization problems that are defined by allocation. -The [AllocationModel struct](https://deltares.github.io/Ribasim/dev/allocation.html#the-allocation-struct) is used for constructing the JuMP model. +The [AllocationModel struct](#sec-allocation-model-struct) is used for constructing the JuMP model. When an instance of `AllocationModel` is created, a JuMP optimization model is defined and initialized in the instance. -More details on how allocation interacts with `JuMP.jl` is explained [here](https://deltares.github.io/Ribasim/dev/allocation.html#jump.jl-problem-interaction). +More details on how allocation interacts with `JuMP.jl` is explained [here](#sec-jump-problem). After initialization, as the simulation starts, the allocation problem is solved and updated after every allocation timestep (which is specified in the TOML). With every allocation timestep a new optimization problem is formulated and solved, using the latest available (simulation) model conditions and forcing and demand predictions. @@ -31,14 +31,14 @@ With every allocation timestep a new optimization problem is formulated and solv The update of allocation (`update_allocation`) is repeating and spread into three parts: - Updating the mean flows. The mean flow data is only used only for output, not used by any internal functions. -- ["Collect demand"](https://deltares.github.io/Ribasim/concept/allocation.html#the-high-level-algorithm). This step initialize and solve the optimization problems that collects the demand from the subnetworks. -- ["Allocate"](https://deltares.github.io/Ribasim/concept/allocation.html#the-high-level-algorithm). This step solves the optimization problems that allocates the demand. For the main network this step allocates to the subnetworks and demand nodes that are in the main network. For the subnetwork this step allocates to the demand nodes. +- ["Collect demand"](#sec-allocation-overview). This step initialize and solve the optimization problems that collects the demand from the subnetworks. +- ["Allocate"](#sec-allocation-overview). This step solves the optimization problems that allocates the demand. For the main network this step allocates to the subnetworks and demand nodes that are in the main network. For the subnetwork this step allocates to the demand nodes. The steps "collect demand" and "allocate" correspond to the function `collect_demand` and `allocate_demand` in the code. The iteration stops when it reaches the end time step. -## The `Allocation` struct +## The `Allocation` struct [#sec-allocation-struct] The `Allocation` struct stores necessary data and calculation results. @@ -55,7 +55,7 @@ The `Allocation` struct stores necessary data and calculation results. |record_demand | | A record of demands and allocated flows for nodes that have these| |record_flow | | A record of all flows computed by allocation optimization, eventually saved to output file| -## The `AllocationModel` struct +## The `AllocationModel` struct [#sec-allocation-model-struct] The `AllocationModel` struct has all the data that is needed for the JuMP optimization problem. @@ -66,7 +66,7 @@ The `AllocationModel` struct has all the data that is needed for the JuMP optimi |problem | JuMP.Model | The JuMP.jl model for solving the allocation problem| |Δt_allocation | Float64 | The time interval between consecutive allocation solves | -## `JuMP.jl` problem interaction +## JuMP problem interaction [#sec-jump-problem] When working with optimization problems using JuMP, there are three fundamental components that need to be defined: - Optimization variables: These are the [variables](https://jump.dev/JuMP.jl/stable/api/JuMP/#@constraints) that are optimized in the allocation problem formulation. @@ -77,15 +77,15 @@ For example, to specify the flow rates in all the edges in the allocation networ problem[:F] = JuMP.@variable(problem, F[edge = edges] >= 0.0) ``` -More details about setting up variables in allocation can be found in the section [below](https://deltares.github.io/Ribasim/dev/allocation.html#optimization-problem). +More details about setting up variables in allocation can be found in the section [below](#sec-optimization-problem). - Constraints: These are the constraints that the optimization variables must satisfy. -They are defined using the [`@constraint`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@constraints) macro. -The definition of the edge capacity constraints is shown in section [below](https://deltares.github.io/Ribasim/dev/allocation.html#setting-the-constraints-and-capacities). -`add_constraints_...` functions are used to [add constraints](https://deltares.github.io/Ribasim/dev/allocation.html#setting-up-initial-optimization-constraints) to the optimization problem. -The [initial value of the constraints](https://deltares.github.io/Ribasim/dev/allocation.html#setting-the-constraints-and-capacities) is set in the function `set_initial_values_...`. +They are defined using the [`@constraint`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@constraint) macro. +The definition of the edge capacity constraints is shown in section [below](#sec-constraints-and-capacities). +`add_constraints_...` functions are used to [add constraints](#sec-initial-constraints) to the optimization problem. +The [initial value of the constraints](#sec-constraints-and-capacities) is set in the function `set_initial_values_...`. During the iteration, the constraints are updated based on the current state of the allocation network. -When [looping over priorities](https://deltares.github.io/Ribasim/dev/allocation.html#updating-capacities), the constraints are updated by the function `adjust_...`. +When [looping over priorities](#updating-capacities), the constraints are updated by the function `adjust_...`. - Objective function: This is the function that sets the objective of the optimization problem. It is defined using the [`@objective`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@objective) macro. @@ -117,7 +117,7 @@ The function `get_capacity` obtains the capacities of the edges within a subnetw The function `find_subnetwork_connetions` finds the edges that connected the main network to a subnetwork. `subnetwork_demands` and `subnetwork_allocateds` will be created, which stores demands and allocated values for subnetworks as a whole. `main_network_connections` is a vector of edges that connect a subnetwork with the main network. -## The optimization problem +## The optimization problem [#sec-optimization-problem] ### Setting up the optimization variables There are three types of variables in the optimization problems: @@ -152,7 +152,7 @@ problem[:F_basin_out] = The last set of optimization variables is the flow edges in and out of the buffer of nodes with a flow demand. It is defined in a similar way to the second set of variables. -### Setting up initial optimization constraints +### Setting up initial optimization constraints [#sec-initial-constraints] All the variables are greater and equal to 0. This is set when the variables are added to the optimization problem. Other constraints are `capacity`, `source_user`, `source`, `flow_conservation`, `fractional_flow`, `basin_outflow`, `flow_buffer_outflow` and `flow_demand_outflow`. @@ -237,7 +237,7 @@ Source constraints will be adapted based on the optimization type. This function is called separately and thus not part of the `set_initial_values`. ## Looping over priorities -### Updating capacities +### Updating capacities [#sec-updating-capacities] While optimizing a given priority, the function `set_capacities_flow_demand_outflow` updates the constraints `flow_demand_outflow`. If the current priority is the same as the priority of the flow demand, constraints will be infinite, otherwise 0. At priorities where there is no flow demand, flow can go freely trough the node. When there is flow demand, flow is directed into the buffer. This is to make sure that flow can go to the node with the flow demand, even though the flow might have nowhere to go after that node. @@ -274,7 +274,7 @@ Afterwards, it writes the resulting flow to the `Allocation` object. ### `UserDemand` abstraction When allocation is active, the amount each `UserDemand` node is allowed to extract from its upstream basin is determined by the allocation algorithm. -See [here](https://deltares.github.io/Ribasim/reference/node/user-demand.html) for more details on how allocation updates the `UserDemand` node. +See [here](/reference/node/user-demand.qmd) for more details on how allocation updates the `UserDemand` node. ### Controlling pumps/weirs based on allocation results N/A and TODO in [this task](https://github.com/Deltares/Ribasim/issues/714). diff --git a/docs/dev/release.qmd b/docs/dev/release.qmd index 45db98426..d1544dbbb 100644 --- a/docs/dev/release.qmd +++ b/docs/dev/release.qmd @@ -33,7 +33,7 @@ Don't change the old version numbers in `changelog.qmd`. ## Update the changelog -The `docs/changelog.qmd` file, hosted on https://deltares.github.io/Ribasim/changelog, records the most important changes for users. +The `docs/changelog.qmd` file, hosted on https://ribasim.org/changelog, records the most important changes for users. Review the commits since the [latest Ribasim release](https://github.com/Deltares/Ribasim/releases/latest) to make sure these are listed. Change the "Unreleased" section to the new version number and date, and create a new empty "Unreleased" section at the top. @@ -102,4 +102,4 @@ It is a good idea to load new test models if there are any, or test any other ch Announce the release in appropriate channels. Include a link to the release notes and assets, which is whatever [this](https://github.com/Deltares/Ribasim/releases/latest) resolves to at that time. -Also include a link to the [documentation](https://deltares.github.io/Ribasim/). +Also include a link to the [documentation](https://ribasim.org/). diff --git a/pixi.toml b/pixi.toml index cbe81415d..e8be9c112 100644 --- a/pixi.toml +++ b/pixi.toml @@ -8,8 +8,8 @@ platforms = ["win-64", "linux-64", "osx-arm64", "osx-64"] readme = "README.md" license = "MIT" license-file = "LICENSE" -homepage = "https://deltares.github.io/Ribasim/" -documentation = "https://deltares.github.io/Ribasim/" +homepage = "https://ribasim.org/" +documentation = "https://ribasim.org/" repository = "https://github.com/Deltares/Ribasim" [tasks] diff --git a/python/ribasim/README.md b/python/ribasim/README.md index f424089ac..3d6da08a3 100644 --- a/python/ribasim/README.md +++ b/python/ribasim/README.md @@ -13,8 +13,8 @@ setup is fully reproducible. The package is [registered in PyPI](https://pypi.org/project/ribasim/) and can therefore be installed with `pip install ribasim`. -For documentation please see the https://deltares.github.io/Ribasim/ and [API reference](https://deltares.github.io/Ribasim/reference/python/) +For documentation please see the https://ribasim.org/ and [API reference](https://ribasim.org/reference/python/) # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/dev/. +For the developer docs please have a look at https://ribasim.org/dev/. diff --git a/python/ribasim/pyproject.toml b/python/ribasim/pyproject.toml index 045aeae38..290d7d2db 100644 --- a/python/ribasim/pyproject.toml +++ b/python/ribasim/pyproject.toml @@ -37,7 +37,7 @@ delwaq = ["jinja2", "networkx", "ribasim[netcdf]"] all = ["ribasim[tests]", "ribasim[netcdf]", "ribasim[delwaq]"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] diff --git a/python/ribasim_api/README.md b/python/ribasim_api/README.md index f18cc6f81..ccc281a21 100644 --- a/python/ribasim_api/README.md +++ b/python/ribasim_api/README.md @@ -20,4 +20,4 @@ conda install -c conda-forge ribasim-api # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/dev/. +For the developer docs please have a look at https://ribasim.org/dev/. diff --git a/python/ribasim_api/pyproject.toml b/python/ribasim_api/pyproject.toml index 31ac385a6..b88e0aaa1 100644 --- a/python/ribasim_api/pyproject.toml +++ b/python/ribasim_api/pyproject.toml @@ -22,7 +22,7 @@ dynamic = ["version"] tests = ["pytest", "ribasim", "ribasim_testmodels"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] diff --git a/python/ribasim_testmodels/README.md b/python/ribasim_testmodels/README.md index f6d88c8fd..93df80bb5 100644 --- a/python/ribasim_testmodels/README.md +++ b/python/ribasim_testmodels/README.md @@ -5,4 +5,4 @@ The test models are used for internal testing of Ribasim. # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/contribute/ +For the developer docs please have a look at https://ribasim.org/dev/ diff --git a/python/ribasim_testmodels/pyproject.toml b/python/ribasim_testmodels/pyproject.toml index 857bba0e0..c25df495d 100644 --- a/python/ribasim_testmodels/pyproject.toml +++ b/python/ribasim_testmodels/pyproject.toml @@ -20,7 +20,7 @@ dynamic = ["version"] tests = ["pytest"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] diff --git a/ribasim_qgis/metadata.txt b/ribasim_qgis/metadata.txt index 6a6eab981..d015be2c4 100644 --- a/ribasim_qgis/metadata.txt +++ b/ribasim_qgis/metadata.txt @@ -20,13 +20,12 @@ repository=https://github.com/Deltares/Ribasim # Recommended items: hasProcessingProvider=no -# Uncomment the following line and add your changelog: -# changelog=https://deltares.github.io/Ribasim/changelog.html +changelog=https://ribasim.org/changelog # Tags are comma separated with spaces allowed -tags=julia, hydrology, water allocation +tags=hydrology, water, water resources, model, julia -homepage=https://github.com/Deltares/Ribasim +homepage=https://ribasim.org/ category=Plugins icon=icon.png # experimental flag