diff --git a/cara/models.py b/cara/models.py index 65f820e9..f2ac2500 100644 --- a/cara/models.py +++ b/cara/models.py @@ -459,10 +459,13 @@ class SARSCoV2(Virus): piecewise constant model (for more details see A. Henriques et al, CERN-OPEN-2021-004, DOI: 10.17181/CERN.1GDQ.5Y75) """ - # Updated to use the formula from Dabish et al. https://doi.org/10.1080/02786826.2020.1829536 + # Updated to use the formula from Dabish et al. with correction https://doi.org/10.1080/02786826.2020.1829536 # with a minimum at hl = 1.1 temperature: _VectorisedFloat = inside_temp.value(time) - return np.maximum(1.1, (0.693/(0.16030 + 0.04018*(((temperature-273.15)-20.615)/10.585)+0.02176*((humidity-45.235)/28.665)+0.1))) + return np.maximum(1.1, (0.693/((0.16030 + 0.04018*(((temperature-273.15)-20.615)/10.585) + +0.02176*((humidity-45.235)/28.665) + -0.14369 + -0.2636*((temperature-273.15)-20.615)/10.585)))) Virus.types = { diff --git a/cara/tests/test_full_algorithm.py b/cara/tests/test_full_algorithm.py index 71f10f05..8a07321c 100644 --- a/cara/tests/test_full_algorithm.py +++ b/cara/tests/test_full_algorithm.py @@ -89,9 +89,10 @@ class SimpleConcentrationModel: """ return (self.lambda_ventilation - + ln2/(max(1.1, (0.693 / (0.16030 + 0.04018 * (((22) - 20.615) / 10.585) + 0.02176 * ( - (self.humidity - 45.235) / 28.665) + 0.1))))) - #6.43 if self.humidity<=0.4 else 1.1) ) + + ln2/(max(1.1, (0.693 / ((0.16030 + 0.04018 * (((22) - 20.615) / 10.585) + + 0.02176 * ((self.humidity - 45.235) / 28.665) + - 0.14369 + - 0.2636((22-20.615)/10.585))))))) @method_cache def deposition_removal_coefficient(self) -> float: