Below is a collection of examples with descriptions to help you get started quickly.
- Example 01: A simple mechanically ventilated (mixing ventilation) room:
- Transient:
01a_simple_mech_vent_transient.gh - Steady-state:
01b_simple_mech_vent_steadystate.gh
- Transient:
- Example 02: A simple mechanically ventilated (mixing ventilation) room with a manikin (LOD 0):
- Transient:
02a_simple_mech_vent_human_lod0_transient.gh - Steady-state:
02b_simple_mech_vent_human_lod0_steadystate.gh
- Transient:
- Example 03: A simple naturally ventilated room with a manikin (LOD 0):
- Transient with dynamic window boundary condition:
03a_simple_nat_vent_human_lod0_transient.gh - Steady-state with simplified two patches window:
03b_simple_nat_vent_human_lod0_steadystate.gh - Single-side casement window with a bounding box:
03c_simple_nat_vent_human_lod0_boundingbox.gh
- Transient with dynamic window boundary condition:
- Example 04: A simple mechanically ventilated (mixing ventilation) room with two manikins (LOD 0) using Gagge two-node thermal comfort models
04_thermal_comfort_Gagge_two_node_model.gh
- Example 05: A simple mechanically ventilated (mixing ventilation) room with a manikin (LOD 0) using Dynamic Respiration
05_dynamic_respiration.gh
- Example 06: A simple room with split AC indoor unit and a manikin (LOD 0) using Dynamic Respiration
06_split_ac_recirc_transient.gh
- Example 07: Post-processing and visualization of the values of several points from Example 3a
07_postprocessing_points.gh
- Example 08: Post-processing and visualization of the values of a slice as a heatmap from Example 1a
08_postprocessing_heatmap.gh
A simple mechanically ventilated (mixing ventilation) room:
- White: Walls and floor
- T: 295.15 K
- Green: Air inlet
- U: 0.5 m/s
- T: 283.15 K
- CO2: 400 ppm
- Orange: Air outlet
- Blue: Ceiling (excluding air inlets and outlets)
- T: 295.15 K
- Dark gray: A solid body with a higher surface temperature
- T: 305 K
- Internal Fields
- T: 300 K
- CO2: 1000 ppm
Transient simulation (0 - 300 s). Results in ParaView:
time = 5 s |
time = 30 s |
time = 90 s |
time = 300 s |
Steady-state simulation (2000 iterations). Results in ParaView:
A simple mechanically ventilated (mixing ventilation) room with a manikin (LOD 0):
- White: Walls and floor
- T: 295.15 K
- Green: Air inlet
- U: 0.2 m/s
- T: 293.15 K
- CO2: 400 ppm
- Orange: Air outlet
- Blue: Ceiling (excluding air inlets and outlets)
- T: 295.15 K
- Black: A manikin with Level of Detail of 0
- T: 307.85 K
- Body Surface Area: 1.7 m2
- Red: Mouth of the manikin
- U: 7.2 L/min
- T: 309.15 K
- CO2: 46000 ppm (0.0055 L/s CO2)
- Internal Fields
- T: 300 K
- CO2: 1000 ppm
Transient simulation (0 - 300 s). Results in ParaView:
time = 5 s |
time = 30 s |
time = 90 s |
time = 300 s |
Steady-state simulation (2000 iterations). Results in ParaView:
A simple naturally ventilated room with a manikin (LOD 0):
- White: Walls & floor & ceiling
- T: 295.15 K
- Blue: Outer wall (excluding window)
- T: 295.15 K
- Black: A manikin with Level of Detail of 0
- T: 307.85 K
- Body Surface Area: 1.7 m2
- Red: Mouth of the manikin
- U: 7.2 L/min
- T: 309.15 K
- CO2: 46000 ppm (0.0055 L/s CO2)
- Internal Fields
- T: 300 K
- CO2: 1000 ppm
- p: 101325 Pa
For natural ventilation (through window), there are a few different ways to simulate it:
Note: The boundary conditions for the following three cases differ, so they cannot be directly compared.
- Option 1: For transient simulation, you can use Carbonfly Dynamic Window (pressure driven dynamic boundary condition:
pressureInletOutletVelocity) that has been validated in our previuos work- Green: Window
- U: 0.001 m/s
- T: 285.15 K
- CO2: 400 ppm
- p: 101325 Pa
- Green: Window
- Option 2: For simplified steady-state simulation, you may divide the window into two patches (e.g., window_top / window_bottom). Since buoyancy-driven air exchange correlates with temperature differences, when outdoor temperatures are lower, the lower half of the window draws in air while the upper half expels it; when outdoor temperatures are higher, the opposite occurs.
- Orange: window_top
- Outlet
- Green: window_bottom
- U: 0.01 m/s
- T: 285.15 K
- CO2: 400 ppm
- Orange: window_top
- Option 3: If you are focusing not only on the indoor distribution of CO2, but also on the window ventilation process, it is recommended that you use a sufficiently large bounding box for the simulation, as described in the paper by Wang et al. [10.1016/j.enbuild.2017.01.070]. This approach allows for a more precise analysis of how different window types affect ventilation.
- Orange: Bounding box outlet
- Outlet
- Green: Bounding box inlet
- U: 0.1 m/s
- T: 285.15 K
- CO2: 400 ppm
- White (room) & Blue (outer wall excluding window) & Purple (single-side casement window):
- T: 295.15 K
- White (bounding box):
- T: 285.15 K
- Orange: Bounding box outlet
Note: Option 3 will significantly increase the required simulation time, as the mesh size is much larger. Additionally, nearby buildings and vegetation will affect the external wind field.
Option 1: Carbonfly Dynamic Window boundary condition |
Option 2: Simplified two patches window |
Option 3: Bounding box |
Option 1: Carbonfly Dynamic Window boundary condition. Transient simulation (0 - 300 s). Results in ParaView:
Option 2: Simplified two patches window. Steady-state simulation (5000 iterations). Results in ParaView:
Option 3: Single-side casement window with a bounding box.
Steady-state simulation (5000 iterations). Results in ParaView:
Or transient (600 s):
A simple mechanically ventilated (mixing ventilation) room with two manikins (LOD 0) using Gagge two-node thermal comfort models:
- White: Walls and floor
- T: 295.15 K
- Green: Air inlet
- U: 0.05 m/s
- T: 293.15 K
- CO2: 400 ppm
- Dark orange: Air outlet
- Blue: Ceiling (excluding air inlets and outlets)
- T: 295.15 K
- Dark gray: A sleeping manikin with Level of Detail of 0
- T: 306.821345 K (skin temperature calculated from
Gagge two-node model (sleep))- Height: 175 cm
- Weight: 80 kg
- BSA: 1.95606 m2
- Thickness quilt: 3 cm
- Mouth of the sleeping manikin
- U: 7.2 L/min
- T: 310.182409 K (core temperature calculated from
Gagge two-node model (sleep)) - CO2: 46000 ppm (0.0055 L/s CO2)
- T: 306.821345 K (skin temperature calculated from
- Light gray: A sitting manikin with Level of Detail of 0
- T: 307.59 K (skin temperature calculated from
Gagge two-node model)- Height: 175 cm
- Weight: 75 kg
- BSA: 1.903137 m2
- Mouth of the sitting manikin
- U: 7.2 L/min
- T: 310.04 K (core temperature calculated from
Gagge two-node model) - CO2: 46000 ppm (0.0055 L/s CO2)
- T: 307.59 K (skin temperature calculated from
- Internal Fields
- T: 300 K
- CO2: 1000 ppm
Transient simulation (0 - 600 s). Results in ParaView:
A simple mechanically ventilated (mixing ventilation) room with a manikin (LOD 0) using Carbonfly Dynamic Respiration:
- CO2 generation rate:
- Age: 28
- Met: 1.4 (standing light work)
- Gender: male
- Breathing flow rate: 7.2 L/min
- Dynamic Respiration
- Frequency: 12 breaths per minute
- Breathing flow rate: 7.2 L/min
- Core temperature from Gagge's two-node model
Transient simulation (0 - 120 s). Results in ParaView:
A simple room with split AC indoor unit and a manikin (LOD 0) using Dynamic Respiration:
- Green: Recirculated supply to the room. The CO2 concentration of the supply air is equal to that of the return air.
- Yellow: Recirculated return from the room. Paired with recirculated supply.
- Orange: Door bottom gap. Small leakage opening to relieve pressure and avoid a perfectly airtight room
Transient simulation (0 - 180 s). Results in ParaView:
CO2 |
Air temperature |
Post-processing and visualization of the values of several points from Example 3a.
Transient simulation (0 - 300 s). Results in Rhino & Grasshopper:
Post-processing and visualization of the values of a slice as a heatmap from Example 1a.
Transient simulation (0 - 300 s). Results in Rhino & Grasshopper:
CO2 concentration in ppm |
IAQ evaluation based on EN 16798-1 (Category I - IV) |

































