From 6ed1282b27c9d923972996c8d06f8fe3fa41009d Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Tue, 11 Oct 2022 12:07:23 +0200
Subject: [PATCH 1/7] Fixed typo in documentation
---
caimira/docs/full_diameter_dependence.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/caimira/docs/full_diameter_dependence.rst b/caimira/docs/full_diameter_dependence.rst
index 09461003..542c659d 100644
--- a/caimira/docs/full_diameter_dependence.rst
+++ b/caimira/docs/full_diameter_dependence.rst
@@ -144,7 +144,7 @@ The initial concentration of virions at the mouth/nose, :math:`C_{0, \mathrm{SR}
:math:`C_{0, \mathrm{SR}}(D) = N_p(D) \cdot V_p(D) \cdot \mathrm{vl_{in}} \cdot 10^{-6}`,
given by :meth:`caimira.models.Expiration.jet_origin_concentration`. It computes the same quantity as :meth:`caimira.models.Expiration.aerosols`, except for the mask inclusion. As previously mentioned, it is normalized by the **viral load**, which is a diameter-independent property.
-Note, the :math:`10^{-6}` factor corresponds to the conversion from :math:`\mathrm{ΞΌm}^{3} \cdot \mathrm{cm}^{-3}` to :math:`\mathrm{mL} \cdot m^{3}`.
+Note, the :math:`10^{-6}` factor corresponds to the conversion from :math:`\mathrm{ΞΌm}^{3} \cdot \mathrm{cm}^{-3}` to :math:`\mathrm{mL} \cdot m^{-3}`.
Note that similarly to the `long-range` approach, the MC integral over the diameters is not calculated at this stage.
From faf41bed4abe45a096de00c0681bddac0c4658ec Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Thu, 20 Oct 2022 18:17:55 +0200
Subject: [PATCH 2/7] removed error from disclaimer
---
caimira/apps/templates/common_text.md.j2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/caimira/apps/templates/common_text.md.j2 b/caimira/apps/templates/common_text.md.j2
index b35e0858..79648ed6 100644
--- a/caimira/apps/templates/common_text.md.j2
+++ b/caimira/apps/templates/common_text.md.j2
@@ -34,7 +34,7 @@ We wish to thank CERNβs HSE Unit, Beams Department, Experimental Physics Depar
The risk assessment tool simulates the airborne spread SARS-CoV-2 virus in a finite volume, assuming homogenous mixing for the long-range component and a two-stage jet model for short-range, and estimates the risk of COVID-19 airborne transmission therein.
- The results DO NOT include short-range airborne exposure (where the physical distance is a significant factor) nor the other known modes of SARS-CoV-2 transmission.
+ The results DO NOT include other known modes of SARS-CoV-2 transmission, such as contact or fomite.
Hence, the output from this model is only valid when the other recommended public health & safety instructions are observed, such as adequate physical distancing, good hand hygiene and other barrier measures.
From a32c4f1ae3f3d889b1563492f349214a258c858f Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Fri, 28 Oct 2022 12:17:12 +0200
Subject: [PATCH 3/7] update to documentation on dilution factor
---
caimira/docs/full_diameter_dependence.rst | 22 +++++++++++++++---
caimira/models.py | 28 +++++++++++------------
2 files changed, 32 insertions(+), 18 deletions(-)
diff --git a/caimira/docs/full_diameter_dependence.rst b/caimira/docs/full_diameter_dependence.rst
index 542c659d..04db938d 100644
--- a/caimira/docs/full_diameter_dependence.rst
+++ b/caimira/docs/full_diameter_dependence.rst
@@ -139,8 +139,24 @@ Very similar to what we did with the **emission rate**, we need to calculate the
During a given exposure time, multiple short-range interactions can be defined in the model.
In addition, for each individual interaction, the expiration type may be different.
-To calculate the short-range component, we first need to calculate what is the **concentration at the jet origin**, that depends on the diameter :math:`D`.
-The initial concentration of virions at the mouth/nose, :math:`C_{0, \mathrm{SR}}(D)` is calculated as follows:
+To calculate the short-range component, we first need to calculate what is the **dilution factor**, that depends on the distance :math:`x` as a random variable, from a log normal distribution in :meth:`caimira.monte_carlo.data.short_range_distances`.
+This factor is calculated in a two-stage model, based in a transition point, defined as follows:
+
+:math:`\mathrm{xstar}=π½_{\mathrm{x1}} \cdot (\mathrm{BR} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
+
+where :math:`\mathrm{BR}` is the expired flow rate during the expiration period, converted from :math:`m^{3} h^{-1}` to :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{\mathrm{BR}}{A_{m}}`, being :math:`A_{m}` the area of the mouth assuming a perfect circle (average mouth diameter :math:`D` of `0.02m`).
+The time of the transition point :math:`\mathrm{tstar}` is defined as 2s. The distance of virtual origin :math:`x_{0}` given by :math:`x_{0}=\frac{D}{2π½_{\mathrm{r1}}}` (in m), and the time of virtual origin on puff-like stage is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (\mathrm{BR} \cdot u_{0})^-\frac{1}{2}` (in s).
+Having the distance for the transition point, we can calculate the dilution factor at the transition point, defined as follows:
+
+:math:`\mathrm{Sxstar}=2π½_{\mathrm{r1}}\frac{(xstar + x_{0})}{D}`.
+
+The remaining dilution factors, either in the jet- or puff-like stages are calculated as follows:
+
+:math:`\mathrm{factors}(x)=\begin{cases}\hfil 2π½_{\mathrm{r1}}\frac{(x + x_{0})}{D} & \textrm{if } x < \mathrm{xstar},\\\hfil \mathrm{Sxstar} \cdot \biggl(1 + \frac{π½_{\mathrm{r2}}(x - xstar)}{π½_{\mathrm{r1}}(xstar + x_{0})}\biggl)^3 & \textrm{if } x > \mathrm{xstar}.\end{cases}`
+
+The variables :math:`π½_{\mathrm{r1}}`, :math:`π½_{\mathrm{r2}}` and :math:`π½_{\mathrm{x1}}` are defined as `0.18`, `0.2`, and `2.4` respectively. The dilution factor for each distance `x` is then stored in the :math:`\mathrm{factors}` array that is returned by the method.
+
+Having the dilution factors, the **initial concentration of virions at the mouth/nose**, :math:`C_{0, \mathrm{SR}}(D)`, is calculated as follows:
:math:`C_{0, \mathrm{SR}}(D) = N_p(D) \cdot V_p(D) \cdot \mathrm{vl_{in}} \cdot 10^{-6}`,
given by :meth:`caimira.models.Expiration.jet_origin_concentration`. It computes the same quantity as :meth:`caimira.models.Expiration.aerosols`, except for the mask inclusion. As previously mentioned, it is normalized by the **viral load**, which is a diameter-independent property.
@@ -155,7 +171,7 @@ The former operation is given in method :meth:`caimira.models.ShortRangeModel._l
one solution would be to recompute the values a second time using :math:`D_{\mathrm{max}} = 100\mathrm{ΞΌm}`;
or perform a approximation using linear interpolation, which is possible and more effective in terms of performance. We decided to adopt the interpolation solution.
The set of points with a known value are given by the default expiration particle diameters for long-range, i.e. from 0 to 30 :math:`\mathrm{ΞΌm}`.
-The set of points we want the interpolated values are given by the short-range expiration particle diameters, i.e. from 0 to 100:math:`\mathrm{ΞΌm}`.
+The set of points we want the interpolated values are given by the short-range expiration particle diameters, i.e. from 0 to 100 :math:`\mathrm{ΞΌm}`.
To summarize, in the code, :math:`C_{\mathrm{SR}}(t, D)` is computed as follows:
diff --git a/caimira/models.py b/caimira/models.py
index 4a96be97..f2b104a3 100644
--- a/caimira/models.py
+++ b/caimira/models.py
@@ -1156,7 +1156,7 @@ class ShortRangeModel:
'''
# Average mouth diameter
D = 0.02
- # Convert Breathing rate from m3/h to m3/s
+ # The expired flow rate during the expiration period, converted from m3/h to m3/s
BR = np.array(self.activity.exhalation_rate/3600.)
# Area of the mouth assuming a perfect circle
Am = np.pi*(D**2)/4
@@ -1164,30 +1164,28 @@ class ShortRangeModel:
u0 = np.array(BR/Am)
tstar = 2.0
- Cr1 = 0.18
- Cr2 = 0.2
- Cx1 = 2.4
+ π½r1 = 0.18
+ π½r2 = 0.2
+ π½x1 = 2.4
- # The expired flow rate during the expiration period, m^3/s
- Q0 = u0 * np.pi/4*D**2
# Parameters in the jet-like stage
- x01 = D/2/Cr1
+ x0 = D/2/π½r1
# Time of virtual origin
- t01 = (x01/Cx1)**2 * (Q0*u0)**(-0.5)
+ t0 = (x0/π½x1)**2 * (BR*u0)**(-0.5)
# The transition point, m
- xstar = np.array(Cx1*(Q0*u0)**0.25*(tstar + t01)**0.5 - x01)
+ xstar = np.array(π½x1*(BR*u0)**0.25*(tstar + t0)**0.5 - x0)
# Dilution factor at the transition point xstar
- Sxstar = np.array(2*Cr1*(xstar+x01)/D)
+ Sxstar = np.array(2*π½r1*(xstar+x0)/D)
distances = np.array(self.distance)
factors = np.empty(distances.shape, dtype=np.float64)
- factors[distances < xstar] = 2*Cr1*(distances[distances < xstar]
- + x01)/D
+ factors[distances < xstar] = 2*π½r1*(distances[distances < xstar]
+ + x0)/D
factors[distances >= xstar] = Sxstar[distances >= xstar]*(1 +
- Cr2*(distances[distances >= xstar] -
- xstar[distances >= xstar])/Cr1/(xstar[distances >= xstar]
- + x01))**3
+ π½r2*(distances[distances >= xstar] -
+ xstar[distances >= xstar])/π½r1/(xstar[distances >= xstar]
+ + x0))**3
return factors
def _long_range_normed_concentration(self, concentration_model: ConcentrationModel, time: float) -> _VectorisedFloat:
From a898e72bd54fc8ad93b63fe0a5fae5b41c0b6261 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Wed, 2 Nov 2022 15:40:40 +0100
Subject: [PATCH 4/7] =?UTF-8?q?Q0=CF=86=20with=20instead=20of=20BR=20direc?=
=?UTF-8?q?tly?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
caimira/models.py | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/caimira/models.py b/caimira/models.py
index f2b104a3..1efde56d 100644
--- a/caimira/models.py
+++ b/caimira/models.py
@@ -1155,11 +1155,11 @@ class ShortRangeModel:
The dilution factor for the respective expiratory activity type.
'''
# Average mouth diameter
- D = 0.02
- # The expired flow rate during the expiration period, converted from m3/h to m3/s
+ mouth_diameter = 0.02
+ # Convert Breathing rate from m3/h to m3/s
BR = np.array(self.activity.exhalation_rate/3600.)
# Area of the mouth assuming a perfect circle
- Am = np.pi*(D**2)/4
+ Am = np.pi*(mouth_diameter**2)/4
# Initial velocity from the division of the Breathing rate with the area
u0 = np.array(BR/Am)
@@ -1168,20 +1168,22 @@ class ShortRangeModel:
π½r2 = 0.2
π½x1 = 2.4
+ # The expired flow rate during the expiration period, m^3/s
+ Q0 = u0 * np.pi/4*mouth_diameter**2
# Parameters in the jet-like stage
- x0 = D/2/π½r1
+ x0 = mouth_diameter/2/π½r1
# Time of virtual origin
- t0 = (x0/π½x1)**2 * (BR*u0)**(-0.5)
+ t0 = (x0/π½x1)**2 * (Q0*u0)**(-0.5)
# The transition point, m
- xstar = np.array(π½x1*(BR*u0)**0.25*(tstar + t0)**0.5 - x0)
+ xstar = np.array(π½x1*(Q0*u0)**0.25*(tstar + t0)**0.5 - x0)
# Dilution factor at the transition point xstar
- Sxstar = np.array(2*π½r1*(xstar+x0)/D)
+ Sxstar = np.array(2*π½r1*(xstar+x0)/mouth_diameter)
distances = np.array(self.distance)
factors = np.empty(distances.shape, dtype=np.float64)
factors[distances < xstar] = 2*π½r1*(distances[distances < xstar]
- + x0)/D
+ + x0)/mouth_diameter
factors[distances >= xstar] = Sxstar[distances >= xstar]*(1 +
π½r2*(distances[distances >= xstar] -
xstar[distances >= xstar])/π½r1/(xstar[distances >= xstar]
From 4f091946ca8fa102c031719b35b755fa9f15cfcd Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Wed, 2 Nov 2022 15:41:20 +0100
Subject: [PATCH 5/7] Updated documentation
---
caimira/docs/full_diameter_dependence.rst | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/caimira/docs/full_diameter_dependence.rst b/caimira/docs/full_diameter_dependence.rst
index 04db938d..3e30599d 100644
--- a/caimira/docs/full_diameter_dependence.rst
+++ b/caimira/docs/full_diameter_dependence.rst
@@ -142,19 +142,19 @@ In addition, for each individual interaction, the expiration type may be differe
To calculate the short-range component, we first need to calculate what is the **dilution factor**, that depends on the distance :math:`x` as a random variable, from a log normal distribution in :meth:`caimira.monte_carlo.data.short_range_distances`.
This factor is calculated in a two-stage model, based in a transition point, defined as follows:
-:math:`\mathrm{xstar}=π½_{\mathrm{x1}} \cdot (\mathrm{BR} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
+:math:`\mathrm{xstar}=π½_{\mathrm{x1}} \cdot (ΟQ_{0} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
-where :math:`\mathrm{BR}` is the expired flow rate during the expiration period, converted from :math:`m^{3} h^{-1}` to :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{\mathrm{BR}}{A_{m}}`, being :math:`A_{m}` the area of the mouth assuming a perfect circle (average mouth diameter :math:`D` of `0.02m`).
-The time of the transition point :math:`\mathrm{tstar}` is defined as 2s. The distance of virtual origin :math:`x_{0}` given by :math:`x_{0}=\frac{D}{2π½_{\mathrm{r1}}}` (in m), and the time of virtual origin on puff-like stage is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (\mathrm{BR} \cdot u_{0})^-\frac{1}{2}` (in s).
+where Ο is a coefficient of 1, the :math:`Q_{0}` is the expired flow rate during the expiration period, converted from :math:`m^{3} h^{-1}` to :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{Q_{0}}{A_{m}}`, :math:`A_{m}` being the area of the mouth assuming a perfect circle (average `mouth_diameter` of `0.02m`).
+The time of the transition point :math:`\mathrm{tstar}` is defined as 2s. The distance of the virtual origin of the puff-like stage is defined by :math:`x_{0}=\frac{\textrm{mouth_diameter}}{2π½_{\mathrm{r1}}}` (in m), and the corresponding time is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (Q_{0} \cdot u_{0})^{-\frac{1}{2}}` (in s).
Having the distance for the transition point, we can calculate the dilution factor at the transition point, defined as follows:
-:math:`\mathrm{Sxstar}=2π½_{\mathrm{r1}}\frac{(xstar + x_{0})}{D}`.
+:math:`\mathrm{Sxstar}=2π½_{\mathrm{r1}}\frac{(xstar + x_{0})}{\textrm{mouth_diameter}}`.
The remaining dilution factors, either in the jet- or puff-like stages are calculated as follows:
-:math:`\mathrm{factors}(x)=\begin{cases}\hfil 2π½_{\mathrm{r1}}\frac{(x + x_{0})}{D} & \textrm{if } x < \mathrm{xstar},\\\hfil \mathrm{Sxstar} \cdot \biggl(1 + \frac{π½_{\mathrm{r2}}(x - xstar)}{π½_{\mathrm{r1}}(xstar + x_{0})}\biggl)^3 & \textrm{if } x > \mathrm{xstar}.\end{cases}`
+:math:`\mathrm{factors}(x)=\begin{cases}\hfil 2π½_{\mathrm{r1}}\frac{(x + x_{0})}{\textrm{mouth_diameter}} & \textrm{if } x < \mathrm{xstar},\\\hfil \mathrm{Sxstar} \cdot \biggl(1 + \frac{π½_{\mathrm{r2}}(x - xstar)}{π½_{\mathrm{r1}}(xstar + x_{0})}\biggl)^3 & \textrm{if } x > \mathrm{xstar}.\end{cases}`
-The variables :math:`π½_{\mathrm{r1}}`, :math:`π½_{\mathrm{r2}}` and :math:`π½_{\mathrm{x1}}` are defined as `0.18`, `0.2`, and `2.4` respectively. The dilution factor for each distance `x` is then stored in the :math:`\mathrm{factors}` array that is returned by the method.
+The parameters :math:`π½_{\mathrm{r1}}`, :math:`π½_{\mathrm{r2}}` and :math:`π½_{\mathrm{x1}}` are defined as `0.18`, `0.2`, and `2.4` respectively. The dilution factor for each distance `x` is then stored in the :math:`\mathrm{factors}` array that is returned by the method.
Having the dilution factors, the **initial concentration of virions at the mouth/nose**, :math:`C_{0, \mathrm{SR}}(D)`, is calculated as follows:
From eb87574634584995a67d4d8524b0c5dc9575d1a0 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Wed, 2 Nov 2022 16:53:19 +0100
Subject: [PATCH 6/7] Updated docs text
---
caimira/docs/full_diameter_dependence.rst | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/caimira/docs/full_diameter_dependence.rst b/caimira/docs/full_diameter_dependence.rst
index 3e30599d..40dfdf84 100644
--- a/caimira/docs/full_diameter_dependence.rst
+++ b/caimira/docs/full_diameter_dependence.rst
@@ -140,12 +140,12 @@ During a given exposure time, multiple short-range interactions can be defined i
In addition, for each individual interaction, the expiration type may be different.
To calculate the short-range component, we first need to calculate what is the **dilution factor**, that depends on the distance :math:`x` as a random variable, from a log normal distribution in :meth:`caimira.monte_carlo.data.short_range_distances`.
-This factor is calculated in a two-stage model, based in a transition point, defined as follows:
+This factor is calculated in a two-stage expiratory jet model, with its transition point defined as follows:
-:math:`\mathrm{xstar}=π½_{\mathrm{x1}} \cdot (ΟQ_{0} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
+:math:`\mathrm{xstar}=π½_{\mathrm{x1}} (Q_{0} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
-where Ο is a coefficient of 1, the :math:`Q_{0}` is the expired flow rate during the expiration period, converted from :math:`m^{3} h^{-1}` to :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{Q_{0}}{A_{m}}`, :math:`A_{m}` being the area of the mouth assuming a perfect circle (average `mouth_diameter` of `0.02m`).
-The time of the transition point :math:`\mathrm{tstar}` is defined as 2s. The distance of the virtual origin of the puff-like stage is defined by :math:`x_{0}=\frac{\textrm{mouth_diameter}}{2π½_{\mathrm{r1}}}` (in m), and the corresponding time is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (Q_{0} \cdot u_{0})^{-\frac{1}{2}}` (in s).
+where the :math:`Q_{0}` is the expired flow rate during the expiration period, in :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{Q_{0}}{A_{m}}`, :math:`A_{m}` being the area of the mouth assuming a perfect circle (average `mouth_diameter` of `0.02m`).
+The time of the transition point :math:`\mathrm{tstar}` is defined as `2s` and corresponds to the end of the exhalation period, i.e. when the jet is interrupted. The distance of the virtual origin of the puff-like stage is defined by :math:`x_{0}=\frac{\textrm{mouth_diameter}}{2π½_{\mathrm{r1}}}` (in m), and the corresponding time is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (Q_{0} \cdot u_{0})^{-\frac{1}{2}}` (in s).
Having the distance for the transition point, we can calculate the dilution factor at the transition point, defined as follows:
:math:`\mathrm{Sxstar}=2π½_{\mathrm{r1}}\frac{(xstar + x_{0})}{\textrm{mouth_diameter}}`.
@@ -154,7 +154,7 @@ The remaining dilution factors, either in the jet- or puff-like stages are calcu
:math:`\mathrm{factors}(x)=\begin{cases}\hfil 2π½_{\mathrm{r1}}\frac{(x + x_{0})}{\textrm{mouth_diameter}} & \textrm{if } x < \mathrm{xstar},\\\hfil \mathrm{Sxstar} \cdot \biggl(1 + \frac{π½_{\mathrm{r2}}(x - xstar)}{π½_{\mathrm{r1}}(xstar + x_{0})}\biggl)^3 & \textrm{if } x > \mathrm{xstar}.\end{cases}`
-The parameters :math:`π½_{\mathrm{r1}}`, :math:`π½_{\mathrm{r2}}` and :math:`π½_{\mathrm{x1}}` are defined as `0.18`, `0.2`, and `2.4` respectively. The dilution factor for each distance `x` is then stored in the :math:`\mathrm{factors}` array that is returned by the method.
+The penetration coefficients in the jet-like stage :math:`π½_{\mathrm{r1}}`, :math:`π½_{\mathrm{r2}}` and :math:`π½_{\mathrm{x1}}` are defined by the following empirical values `0.18`, `0.2`, and `2.4` respectively. The dilution factor for each distance :math:`x` is then stored in the :math:`\mathrm{factors}` array that is returned by the method.
Having the dilution factors, the **initial concentration of virions at the mouth/nose**, :math:`C_{0, \mathrm{SR}}(D)`, is calculated as follows:
From cf330ab9af43d4e0a0b343dac20504978faa2a8a Mon Sep 17 00:00:00 2001
From: Luis Aleixo
Date: Thu, 3 Nov 2022 09:15:05 +0100
Subject: [PATCH 7/7] updated t0 formula according to published paper
---
caimira/docs/full_diameter_dependence.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/caimira/docs/full_diameter_dependence.rst b/caimira/docs/full_diameter_dependence.rst
index 40dfdf84..d4a3b628 100644
--- a/caimira/docs/full_diameter_dependence.rst
+++ b/caimira/docs/full_diameter_dependence.rst
@@ -145,7 +145,7 @@ This factor is calculated in a two-stage expiratory jet model, with its transiti
:math:`\mathrm{xstar}=π½_{\mathrm{x1}} (Q_{0} \cdot u_{0})^\frac{1}{4} \cdot (\mathrm{tstar} + t_{0})^\frac{1}{2} - x_{0}`,
where the :math:`Q_{0}` is the expired flow rate during the expiration period, in :math:`m^{3} s^{-1}`, :math:`u_{0}` is the expired jet speed (in :math:`m s^{-1}`) given by :math:`u_{0}=\frac{Q_{0}}{A_{m}}`, :math:`A_{m}` being the area of the mouth assuming a perfect circle (average `mouth_diameter` of `0.02m`).
-The time of the transition point :math:`\mathrm{tstar}` is defined as `2s` and corresponds to the end of the exhalation period, i.e. when the jet is interrupted. The distance of the virtual origin of the puff-like stage is defined by :math:`x_{0}=\frac{\textrm{mouth_diameter}}{2π½_{\mathrm{r1}}}` (in m), and the corresponding time is given by :math:`t_{0}=(\frac{x_{0}}{π½_{\mathrm{x1}}})^2 \cdot (Q_{0} \cdot u_{0})^{-\frac{1}{2}}` (in s).
+The time of the transition point :math:`\mathrm{tstar}` is defined as `2s` and corresponds to the end of the exhalation period, i.e. when the jet is interrupted. The distance of the virtual origin of the puff-like stage is defined by :math:`x_{0}=\frac{\textrm{mouth_diameter}}{2π½_{\mathrm{r1}}}` (in m), and the corresponding time is given by :math:`t_{0} = \frac{\sqrt{\pi}D^3}{8π½_{\mathrm{r1}}^2π½_{\mathrm{x1}}^2Q_{0}}` (in s).
Having the distance for the transition point, we can calculate the dilution factor at the transition point, defined as follows:
:math:`\mathrm{Sxstar}=2π½_{\mathrm{r1}}\frac{(xstar + x_{0})}{\textrm{mouth_diameter}}`.