From 0fc28f129bd263b51a4b42f640d5a2a5c52e57cc Mon Sep 17 00:00:00 2001
From: Luis Aleixo Opening distance: {{ form.opening_distance }} m Windows open:
{% if form.window_opening_regime == "windows_open_periodically" %}
- Periodically for {{ form.windows_duration | readable_minutes}}
- every {{ form.windows_frequency | readable_minutes}}
+ Periodically for {{ form.windows_duration | readable_minutes}} every 1 hour.
{% elif form.window_opening_regime == "windows_open_permanently" %}
Permanently
{% endif %}
diff --git a/cara/apps/templates/base/userguide.html.j2 b/cara/apps/templates/base/userguide.html.j2
index 893637c2..8c03120f 100644
--- a/cara/apps/templates/base/userguide.html.j2
+++ b/cara/apps/templates/base/userguide.html.j2
@@ -95,7 +95,7 @@ If there are multiple windows of different sizes, you should take an average. When using natural ventilation, the circulation of air is simulated as a function of the difference between the temperature inside the room and the outside air temperature. The average outdoor temperature for each hour of the day has been computed for every month of the year based on historical data for Geneva, Switzerland.
It is therefore very important to enter the correct time and date in the event data section.
-Finally, you must specify if the windows are open permanently (at all the times), or periodically (in intervals for a certain duration and frequency - both in minutes) - e.g. open the window for 10 minutes (duration) every 60 minutes (frequency).
Face masks:
From f5ef650cea8f5430c909cbea64e37613d6a8f101 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
-
-
+
+
No ventilation
diff --git a/cara/tests/apps/calculator/test_model_generator.py b/cara/tests/apps/calculator/test_model_generator.py
index cd7de105..a00bde34 100644
--- a/cara/tests/apps/calculator/test_model_generator.py
+++ b/cara/tests/apps/calculator/test_model_generator.py
@@ -45,8 +45,7 @@ def test_blend_expiration(mask_type):
def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 10
- baseline_form.windows_frequency = 120
+ baseline_form.windows_duration = 5
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.window_type = 'window_sliding'
baseline_form.event_month = 'December'
@@ -59,13 +58,13 @@ def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
assert isinstance(baseline_window, models.SlidingWindow)
window = models.SlidingWindow(
- active=models.PeriodicInterval(period=120, duration=10, start=9),
+ active=models.PeriodicInterval(period=60, duration=5, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, opening_length=0.6,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=120, duration=120),
+ active=models.PeriodicInterval(period=60, duration=60),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, ach))
@@ -75,8 +74,7 @@ def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
def test_ventilation_hingedwindow(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 10
- baseline_form.windows_frequency = 120
+ baseline_form.windows_duration = 5
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.window_type = 'window_hinged'
baseline_form.event_month = 'December'
@@ -90,12 +88,12 @@ def test_ventilation_hingedwindow(baseline_form: model_generator.FormData):
assert isinstance(baseline_window, models.HingedWindow)
window = models.HingedWindow(
- active=models.PeriodicInterval(period=120, duration=10, start=9),
+ active=models.PeriodicInterval(period=60, duration=5, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, window_width=1., opening_length=0.6,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=120, duration=120),
+ active=models.PeriodicInterval(period=60, duration=60),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, ach))
@@ -135,8 +133,7 @@ def test_ventilation_airchanges(baseline_form: model_generator.FormData):
def test_ventilation_window_hepa(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 10
- baseline_form.windows_frequency = 120
+ baseline_form.windows_duration = 5
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.event_month = 'December'
baseline_form.window_height = 1.6
@@ -150,16 +147,16 @@ def test_ventilation_window_hepa(baseline_form: model_generator.FormData):
# Now build the equivalent ventilation instance directly, and compare.
window = models.SlidingWindow(
- active=models.PeriodicInterval(period=120, duration=10, start=9),
+ active=models.PeriodicInterval(period=60, duration=5, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, opening_length=0.6,
)
hepa = models.HEPAFilter(
- active=models.PeriodicInterval(period=120, duration=120),
+ active=models.PeriodicInterval(period=60, duration=60),
q_air_mech=250.,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=120, duration=120),
+ active=models.PeriodicInterval(period=60, duration=60),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, hepa, ach))
From ee7e00c9a2de3bb1aab1c4a029bc6c41c89f67b5 Mon Sep 17 00:00:00 2001
From: Luis Aleixo
+
+
@@ -301,7 +301,7 @@
Opening distance: {{ form.opening_distance }} m
Windows open:
{% if form.window_opening_regime == "windows_open_periodically" %}
- Periodically for {{ form.windows_duration | readable_minutes}} every 1 hour.
+ Periodically for {{ form.windows_duration | readable_minutes}}
+ every {{ form.windows_frequency | readable_minutes}}
{% elif form.window_opening_regime == "windows_open_permanently" %}
Permanently
{% endif %}
diff --git a/cara/tests/apps/calculator/test_model_generator.py b/cara/tests/apps/calculator/test_model_generator.py
index a00bde34..cd7de105 100644
--- a/cara/tests/apps/calculator/test_model_generator.py
+++ b/cara/tests/apps/calculator/test_model_generator.py
@@ -45,7 +45,8 @@ def test_blend_expiration(mask_type):
def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 5
+ baseline_form.windows_duration = 10
+ baseline_form.windows_frequency = 120
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.window_type = 'window_sliding'
baseline_form.event_month = 'December'
@@ -58,13 +59,13 @@ def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
assert isinstance(baseline_window, models.SlidingWindow)
window = models.SlidingWindow(
- active=models.PeriodicInterval(period=60, duration=5, start=9),
+ active=models.PeriodicInterval(period=120, duration=10, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, opening_length=0.6,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=60, duration=60),
+ active=models.PeriodicInterval(period=120, duration=120),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, ach))
@@ -74,7 +75,8 @@ def test_ventilation_slidingwindow(baseline_form: model_generator.FormData):
def test_ventilation_hingedwindow(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 5
+ baseline_form.windows_duration = 10
+ baseline_form.windows_frequency = 120
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.window_type = 'window_hinged'
baseline_form.event_month = 'December'
@@ -88,12 +90,12 @@ def test_ventilation_hingedwindow(baseline_form: model_generator.FormData):
assert isinstance(baseline_window, models.HingedWindow)
window = models.HingedWindow(
- active=models.PeriodicInterval(period=60, duration=5, start=9),
+ active=models.PeriodicInterval(period=120, duration=10, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, window_width=1., opening_length=0.6,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=60, duration=60),
+ active=models.PeriodicInterval(period=120, duration=120),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, ach))
@@ -133,7 +135,8 @@ def test_ventilation_airchanges(baseline_form: model_generator.FormData):
def test_ventilation_window_hepa(baseline_form: model_generator.FormData):
baseline_form.ventilation_type = 'natural_ventilation'
- baseline_form.windows_duration = 5
+ baseline_form.windows_duration = 10
+ baseline_form.windows_frequency = 120
baseline_form.window_opening_regime = 'windows_open_periodically'
baseline_form.event_month = 'December'
baseline_form.window_height = 1.6
@@ -147,16 +150,16 @@ def test_ventilation_window_hepa(baseline_form: model_generator.FormData):
# Now build the equivalent ventilation instance directly, and compare.
window = models.SlidingWindow(
- active=models.PeriodicInterval(period=60, duration=5, start=9),
+ active=models.PeriodicInterval(period=120, duration=10, start=9),
outside_temp=baseline_window.outside_temp,
window_height=1.6, opening_length=0.6,
)
hepa = models.HEPAFilter(
- active=models.PeriodicInterval(period=60, duration=60),
+ active=models.PeriodicInterval(period=120, duration=120),
q_air_mech=250.,
)
ach = models.AirChange(
- active=models.PeriodicInterval(period=60, duration=60),
+ active=models.PeriodicInterval(period=120, duration=120),
air_exch=0.25,
)
ventilation = models.MultipleVentilation((window, hepa, ach))
From 0f5a38a4c1fe0bcfcd35af64477e73dca78e8845 Mon Sep 17 00:00:00 2001
From: Luis Aleixo