From 8fcb5b9f98b89cd6cee026c6c80e3e426134d77f Mon Sep 17 00:00:00 2001 From: "nicolette.volp" Date: Wed, 16 Oct 2024 18:35:41 +0200 Subject: [PATCH 1/3] Decay terms explanation --- source/h_water_quality.rst | 59 ++++++++++++++++++++++++++++----- source/image/h_decay_terms.png | Bin 0 -> 46991 bytes 2 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 source/image/h_decay_terms.png diff --git a/source/h_water_quality.rst b/source/h_water_quality.rst index bbc6e78d..c5c01367 100644 --- a/source/h_water_quality.rst +++ b/source/h_water_quality.rst @@ -3,7 +3,7 @@ Water quality ------------- -3Di has a module that can be used for water quality calculations. More specifically, you can introduce concentrations of substances to the simulation, and compute how these substances spread through the water system due to advective forces and (numerical) diffusion. +3Di has a module that can be used for water quality calculations. More specifically, you can introduce substances to the simulation, and compute how these substances spread through the water system due to advective forces and diffusion. - Substances can enter the model domain as concentrations in initial water, boundary conditions, laterals, rain, leakage, surface sources and sinks. This applies to the entire model domain (1D, 2D, and groundwater). @@ -11,19 +11,62 @@ Water quality - Units can be defined for each substance -- A decay coefficient (s\ :sup:`-1`) can be defined for each substance. If the decay coefficient is specified, the substance decreases at a rate that is proportional to the current concentration; the substance will decay exponentially in time. The decay coefficient is inversely proportional to a so-called mean lifetime (T). The decay coefficient is defined as +- The water quality module can also be used to trace water throughout the system. Water can then be labelled as a fraction or a percentage. + +- The :ref:`output of water quality simulations` is in NetCDF format; the file has the same structure as hydrodynamic results (results_3di.nc). + +- Some characteristics can be set per substance, these are introduced in the sections below. + +Decay rate constant +~~~~~~~~~~~~~~~~~~~~ +.. _adding_decay_term: + +Modelling accurately the decay of a substance is highly complex. This is mainly due to the dependence on environmental conditions that are often unknown, interact with each other, and rely strongly on empirical relations. To keep it simple, 3Di supports only a constant decay rate. Results can be refined through external scripting to meet specific needs. + +.. figure:: image/h_decay_terms.png + :scale: 55% + :align: center + + Decay of a substance fraction over time for different decay rate constants, and where :math:`A_i=100`. Dotted lines indicate the concept of half life periods. + +To introduce the concept of a constant decay rate, an idealised case is considered. Assume a basin without any spatial flow and no source or sink terms, in such case the transport equation reduces to: .. math:: - :label: Decay coefficient - C_{decay} = \frac{1}{T} + \frac{\partial c}{\partial t} = -\mu c -| where: -| :math:`T`: mean lifetime in seconds +where :math:`\mu \, [s^{-1}]` is the decay rate constant, :math:`c` is the concentration and :math:`t` is the time. In case there is an initial amount of a substance, it will decay exponentially over time. The solution for such a system is: + +.. math:: + + c(t) = A_i e^{\mu t} + +In which :math:`A_i` depends on the initial conditions. +Figure :numref:`fig:decay_term` shows the results for various decay rate constants (:math:`\mu \, [s^{-1}]`). The dotted lines indicate the half-life period (:math:`t_{1/2}`) for :math:`\mu = 0.001 \, s^{-1}`. This is time it takes to reduce the amount of substance with a factor two. The half-life periods of the other decay rate constants are listed in :numref:`tab:mu`. The decay rate constant and half-life period can be converted: + +.. math:: + + t_{1/2} = \frac{\ln(2)}{\mu} + + +.. table:: Overview of decay rate constants and their half-life periods. + :name: tab:mu + :align: center + :widths: auto + + ==================== =================== + :math:`\mu [s^{-1}]` :math:`t_{1/2} [s]` + ==================== =================== + 0.000001 693147.18 + 0.00001 69314.718 + 0.0001 6931.4718 + **0.001** **693.14718** + 0.01 69.314718 + 0.1 6.9314718 + ==================== =================== -- The :ref:`output of water quality simulations` is in NetCDF format; the file has the same structure as hydrodynamic results (results_3di.nc). .. warning:: - You cannot add multiple laterals to a single node or cell if they have different substance concentrations + You cannot add multiple laterals to a single node or cell if they have different substance concentrations. This will be resolved in the near future. diff --git a/source/image/h_decay_terms.png b/source/image/h_decay_terms.png new file mode 100644 index 0000000000000000000000000000000000000000..14e3ada7e57178276b4e22c61af4175a8dc683d1 GIT binary patch literal 46991 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 Date: Thu, 17 Oct 2024 11:05:29 +0200 Subject: [PATCH 2/3] Update h_water_quality.rst --- source/h_water_quality.rst | 51 ++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/source/h_water_quality.rst b/source/h_water_quality.rst index c5c01367..12f5cd11 100644 --- a/source/h_water_quality.rst +++ b/source/h_water_quality.rst @@ -17,19 +17,18 @@ Water quality - Some characteristics can be set per substance, these are introduced in the sections below. -Decay rate constant -~~~~~~~~~~~~~~~~~~~~ -.. _adding_decay_term: +.. warning:: -Modelling accurately the decay of a substance is highly complex. This is mainly due to the dependence on environmental conditions that are often unknown, interact with each other, and rely strongly on empirical relations. To keep it simple, 3Di supports only a constant decay rate. Results can be refined through external scripting to meet specific needs. + You cannot add multiple laterals to a single node or cell if they have different substance concentrations. This will be resolved in the near future. -.. figure:: image/h_decay_terms.png - :scale: 55% - :align: center +.. _decay_coefficient: - Decay of a substance fraction over time for different decay rate constants, and where :math:`A_i=100`. Dotted lines indicate the concept of half life periods. +Decay coefficient +^^^^^^^^^^^^^^^^^ -To introduce the concept of a constant decay rate, an idealised case is considered. Assume a basin without any spatial flow and no source or sink terms, in such case the transport equation reduces to: +In 3Di, substances can decay by a constant decay rate. This constant decay rate is defined by the substance property *Decay coefficient* . + +To introduce the concept of a constant decay rate, an idealised case is considered. Assume a basin without any spatial flow and no source or sink terms. In such case the transport equation reduces to: .. math:: @@ -41,32 +40,26 @@ where :math:`\mu \, [s^{-1}]` is the decay rate constant, :math:`c` is the conce c(t) = A_i e^{\mu t} -In which :math:`A_i` depends on the initial conditions. -Figure :numref:`fig:decay_term` shows the results for various decay rate constants (:math:`\mu \, [s^{-1}]`). The dotted lines indicate the half-life period (:math:`t_{1/2}`) for :math:`\mu = 0.001 \, s^{-1}`. This is time it takes to reduce the amount of substance with a factor two. The half-life periods of the other decay rate constants are listed in :numref:`tab:mu`. The decay rate constant and half-life period can be converted: +In which :math:`A_i` depends on the initial conditions. -.. math:: +The figure below illustrates the effect of the decay coefficient on the concentration over time. - t_{1/2} = \frac{\ln(2)}{\mu} +.. figure:: image/h_decay_terms.png + :scale: 55% + Decay of a substance concentration over time for different decay coefficients, and where :math:`A_i=100`. Dotted lines indicate the half-life. -.. table:: Overview of decay rate constants and their half-life periods. - :name: tab:mu - :align: center - :widths: auto +.. note:: + Decay of substances is a complex biochemical process, governed by interactions between substances, and environmental conditions. If your aim is to model the full complexity of these processes, a constant decay rate may not be sufficient. 3Di results can be used as input for aquatic ecology or chemistry models that do include such complexity. In this way, you can combine the hydrodynamic accuracy of 3Di with a detailed handling of the processes specific to your application domain. - ==================== =================== - :math:`\mu [s^{-1}]` :math:`t_{1/2} [s]` - ==================== =================== - 0.000001 693147.18 - 0.00001 69314.718 - 0.0001 6931.4718 - **0.001** **693.14718** - 0.01 69.314718 - 0.1 6.9314718 - ==================== =================== +Half-life and decay rate +"""""""""""""""""""""""" +Substance property databases often define the half-life of substances in water. The concept of half-life is related to constant decay rate and can be converted to it by a simple formula. -.. warning:: +Figure :numref:`fig:decay_term` shows the results for various decay rate constants (:math:`\mu \, [s^{-1}]`). The dotted lines indicate the half-life period (:math:`t_{1/2}`) for :math:`\mu = 0.001 \, s^{-1}`. This is the time it takes to reduce the amount of substance to half. To convert the half-life to a decay coefficient, the following equation can be used: - You cannot add multiple laterals to a single node or cell if they have different substance concentrations. This will be resolved in the near future. +.. math:: + + t_{1/2} = \frac{\ln(2)}{\mu} From 8f5f41467bf786138904a11401c5dd20921f1b57 Mon Sep 17 00:00:00 2001 From: nvolp Date: Fri, 18 Oct 2024 15:01:15 +0200 Subject: [PATCH 3/3] Update h_water_quality.rst --- source/h_water_quality.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/h_water_quality.rst b/source/h_water_quality.rst index 12f5cd11..bb1088ca 100644 --- a/source/h_water_quality.rst +++ b/source/h_water_quality.rst @@ -57,7 +57,7 @@ Half-life and decay rate Substance property databases often define the half-life of substances in water. The concept of half-life is related to constant decay rate and can be converted to it by a simple formula. -Figure :numref:`fig:decay_term` shows the results for various decay rate constants (:math:`\mu \, [s^{-1}]`). The dotted lines indicate the half-life period (:math:`t_{1/2}`) for :math:`\mu = 0.001 \, s^{-1}`. This is the time it takes to reduce the amount of substance to half. To convert the half-life to a decay coefficient, the following equation can be used: +Figure :numref:`fig:decay_term` shows the results for various decay rate constants (:math:`\mu \, [s^{-1}]`). The dotted lines indicate the half-life period (:math:`t_{1/2}`) for :math:`\mu = 0.001 \, s^{-1}`. This is the time it takes to reduce the amount of substance to half. To determine a decay rate constant based on the half-life period, one can use: .. math::