Documentation
This article provides a step-by-step tutorial for the full thermal comfort assessment in a meeting room using CFD simulation, including models for conjugate heat transfer, radiation/solar load heat transfer, and age of air.
This tutorial teaches how to:
The typical SimScale workflow will be followed:
First of all, click the button below. It will copy the tutorial project containing the geometry into your own Workbench.
The following picture demonstrates what should be visible after importing the tutorial project.
Please notice that the imported project contains two geometries: Meeting Room (Original), containing the solid parts of the domain but no flow region. The second volume, which will be used in the rest of this tutorial, named Meeting Room, contains the flow region that represents the volume of air inside of the room, which must be used in the setup of the simulation.
The flow region was already created with an Internal flow volume operation in the CAD editing environment. Note how this volume of air represents the negative of the room and everything inside. In SimScale, you may make changes to the CAD model from the CAD editing environment. To modify a CAD model, simply select the geometry from the list—the available CAD operations will then appear in the top toolbar. You can either work directly on the original model or create a duplicate and apply your changes to the copy.
Optional: Checking the flow volume extraction settings in the CAD editing tool
If you would like to see the internal flow volume operation settings in CAD mode, make sure to select the ‘Meeting Room’ geometry, and the geometry operations will appear under the geometry:

Important
From now on, make sure you are working on the geometry with the flow volume extraction operation named Meeting room, and not the original one presented for reference.
Saved selections are groups of faces created at this point to be used in assignments for boundary conditions and other concepts, during the simulation setup. While saved selections are not necessary for the setup of a simulation in SimScale, they can speed up the simulation setup at times. Saved selections can be found at the right-hand side panel:
A number of sets are already provided in the project, but one set for the window is still missing. The picture below shows how to add the missing saved selection:
In the pop-up dialog that appears, name the set “Window” and click ‘Create new selection‘.
Now we can start with the simulation setup. Follow the steps presented in the picture below to create a new simulation:
The simulation library window appears:
Here you can select the analysis type you need.
Do not forget to click the checkmark at the top to save the changes.
In order to have an overview, the following is a description of the simulation model and conditions:
You can explore the corresponding faces for each condition by clicking the saved selections at the right panel.
Note
The above situation has some convection induced by the ventilation system and the window is considered to be closed. You will also find a version without forced ventilation by the ducts and the window considered to be open later in the tutorial.
Select the Model tree element to specify the gravitational acceleration. In this tutorial, gravity will be ‘-9.81’ \(m/s^2\) in the z direction.
The solar calculator panel allows you to define the Sun direction and the direct and diffuse Solar load configuration. In this tutorial we will use custom definitions for both, as below:
The sun direction is:
Furthermore, the Direct solar load is ‘200’ \(W/m^2\) and the Diffuse solar load is ‘100’ \(W/m^2\).
To define and assign a material, please click on ‘+’ next to Materials. Doing so, the SimScale material library will pop up:
Now we need to set up the boundary conditions presented in Figure 10. Note that there are two versions of the setup:
We will start with the settings necessary for both scenarios, and then move to the scenario-specific settings.
Internal walls are assigned as a ‘Wall’ boundary condition, and as they are facing the inside of the building, they are considered adiabatic.
Create a ‘Wall’ boundary condition and assign the Internal Wall saved selection. Set up the parameters as shown in the reference picture:
For the occupants, a wall boundary condition is also used, this time with a heat flux power source to model the metabolic heat generation rate. Create a ‘Wall’ boundary condition and assign the Occupants set. Set up the parameters as shown in the picture:
For the furniture, a wall boundary condition is also used, with adiabatic thermal behavior. Create a ‘Wall’ boundary condition and assign the Furniture set. Set up the parameters as shown in the picture:
For the external wall, a wall boundary condition is also used, with a thermal wall model and convection to the exterior. Create a ‘Wall’ boundary condition and assign the External Wall saved selection. Set up the parameters as shown in the picture:
The following articles provide additional information about thermal wall modelling:
As far as inlet goes, this tutorial offers two options: you can add a natural convection setup to simulate a model without air conditioning where the window is open for natural cooling, or a forced convection setup to simulate the scenario when the window is closed and the air conditioning is on.
For the first version of the setup, involving forced convection, the inlet will receive a ‘Velocity inlet’ boundary condition.
Please modify the following:
For the flow outlet boundary condition, follow the same procedure, but select a ‘Pressure outlet’. Leave all values as default and assign the Outlet set, as shown in the image:
For the window, a wall boundary condition is also used, but this time with a layer wall thermal model, convection to the exterior temperature, and an external radiation source to model sunlight. Create a ‘Wall’ boundary condition and assign the Window set. Set up the parameters as shown in the image:
For the second version, instead of defining inlets, outlets, and the closed window as indicated in the previous section, all three saved selections will be assigned to a ‘Natural convection inlet/outlet’ boundary condition instead.
With a natural convection inlet/outlet boundary condition, fluid may go in or out through the boundary, which represents an open path.
Simulation control, will retain default settings. For Numerics, please adjust the relaxation factor of Age of fluid equation to ‘0.95’.

Result control items are used to retrieve specific computations from the numerical solver. By using them, we can have a look at specific variables at specific regions by querying the computation and output of our quantities of interest.
In order to measure the mean age of air in the domain, a Result control item is used. It is created as shown in the picture:

To monitor the age of fluid at the outlet, it is a good idea to create an ‘Area average’ result control within Surface data.
Thermal comfort parameters are also queried in the result control items, under Field calculations. Create the concept as shown in the picture:
Set up the parameters as shown in the picture:
A description of the computed quantities and resulting fields can be found on this SimScale documentation page: Thermal Comfort Parameters.
The mesh will stay with default settings for this tutorial. You do not need to click Generate, as the mesh will be computed as part of the simulation run.
Now that the simulation setup is complete, a new ‘Simulation Run’ can be created to perform the computation. In the following picture, the whole tree setup is shown, and the item to create the simulation run is highlighted:
In the pop-up window, press ‘Run anyway’ in case any warning messages appear. This will start the meshing operation and then the simulation immediately. If the software predicts a higher duration of simulation and exceeding maximum runtime you can choose to ignore it or go back to simulation control settings and increase the maximum runtime value.
The computation takes around one and a half hours to complete. If you can’t wait to see the results, at the end of the article there is a link to the completed version of the project.
We will use the integrated post-processor to visualize the temperature inside the meeting room, evaluate the thermal comfort of the room by visualizing the Percentage Mean Vote (PMV), and the local mean age of the air. You may access the post-processor by clicking on the ‘Solution Fields’ button.
Before starting to post-process the results, make sure that there are no predefined filters. You can delete existing filters at any time by clicking on the dustbin icon next to them. Furthermore, please ensure that you are at the last timestep of your simulation by sliding the Iterations selector all the way to the right.

Visualize the temperature by selecting ‘Temperature’ as the Coloring for your parts. Change the units of temperature to Celsius by clicking the units in the legend and selecting ‘°C’ and change the maximum temperature visualized to ’40’ \(°C\). Hide the walls of the room by selecting them and right-clicking on your mouse to select ‘Hide selection’. The temperature distribution inside the room can be seen in the figure below:

From the figure above, it’s possible to notice the effect of the solar load that goes through the window. The room is unevenly heated with the floor being slightly cool to neutral as we progress towards the ceiling where it is slightly warm.
Next, we will focus on visualizing the thermal comfort parameters, which are the predicted mean vote (PMV) and predicted percentage dissatisfied (PPD). The thermal comfort parameters will be visualized by using the cutting plane filter. Follow the steps below to create a cutting plane:

Using the same approach from above, create a second cutting plane normal to the ‘Y’ axis. The predicted mean vote (PMV) thermal comfort index distribution is displayed in the following picture:
The value of the index is clipped to the recommended range of [-2, 2]. This way, we can visualize the areas that are below and above them, with blue and red colored regions respectively.
You can access the age of air results in the post-processor by selecting Mean age of fluid for the filters. The Local Mean Age (LMA) was computed at around 330 seconds at the outlet for the forced convection scenario:

Blue regions show areas with fresh of air and red regions show areas with high age of air. Red areas represent stagnation regions, with poor ventilation.
Analyze and explore your results with the SimScale post-processor. Have a look at our post-processing guide to learn how to use the post-processor.
Congratulations! You finished the tutorial!
Last updated: July 14th, 2026
We appreciate and value your feedback.
Subscribe to our newsletter
By subscribing you agree to with our Privacy Policy
Product
Solutions
Resources
Sign up for SimScale
and start simulating now