Session 4: Contamination control of a Clean room


Air Conditioning and Ventilation Webinar

Contamination control design of a Clean room

Session-4 Learning Assignment: Ventilation Exhaust Analysis

Description: The assignment will be to simulate a Ventilation Exhaust setup for a Clean Room with a gas leak from a container. The sketch below shows the setup with ‘Flow Inlets’ along the floor and central circular ‘Outlet’ in the ceiling. The ceiling has 6 open rectangular sections from which the flow exits the room and is exhausted out through the central outlet.

Import the project by clicking the link below (Ctrl+click to open in new tab).

Project Link:

Once the project is imported, the workbench is automatically opened. Then follow the steps below for setting up a convective heat transfer simulation.



  • In the ‘Mesh Creator’ tab, click on the geometry ‘Clean room’
  • Then, click on ‘New mesh’ button in the options panel.

  • Select the mesh type to be Hex-dominant parametric (only CFD), select the number of cores as 8 and click the Save button.

  • The number of cells across directions should automatically update as shown below.

  • Click on Material point from the sub-tree and enter the coordinates (0, 0, 2.5). Click the Save button.

  • Click on Mesh refinements and select New button.

  • Create a surface refinement with level 1 to 3 for solid_0, solid_1, solid_2 and solid_4. This can be done as shown in the following image and then Save.

  • Now create a surface refinement of level 4 for solid_3. Click the save button.

  • Now click on Operation 1 and select Start to begin the mesh operation.

  • A message that the mesh operation is finished is seen in the left tab when the mesh generation is complete. It takes approximately 15 minutes for the mesh operation to complete.


  • For setting up the simulation switch to the Simulation Designer tab and select New simulation.

  • Change the analysis type to Passive scalar transport under Fluid dynamics. Select Laminar steady-state type with 1 passive species and click Save button.

  • The simulation tree now looks as shown below.

Selecting domain

  • Click ‘Domain’ from the tree and select the mesh created from the previous task. Click the Save button.

Topological Entity Sets

  • Click ‘Topological Entity Sets’ to name the different boundary conditions. For better and quick viewing switch the viewer display option to Surfaces. Select the faces as shown below, which can be used to give a velocity inlet in positive x-direction and name it Inlet-PosX.

  • Click on the 3 faces on the other side of the geometry, allowing us to give a velocity in the negative x-direction. Name it Inlet-NegX.

  • Select the top face to be the Outlet.

  • Select a side face and click Hide selection. This is done in order to name an inner face for the smoke inlet condition.

  • Select the face as shown below and name it as Smoke Inlet.

  • Now to display all the faces again click on Show all option from the selection list.

  • Click on each of the named entity and select the Hide selection option to hide the faces which has been named.

  • After all the assignments are hidden select Select all from the selection list and name it to be Walls.

  • The final topological entity set looks as follows.

  • Click on ‘Model’ and enter Diffusion coefficient value as 0.00002 sq.m/s.

Selecting fluid material

  • Select ‘Material’ from the sub-tree and click New.

  • Select Import from material library.

  • Click Air and select the Save button.

  • Select region0 from Topological Mapping and click the Save button.

Boundary conditions

  • The initial conditions can be left with the default values. Click on ‘Boundary condition’ and select New.

  • The Inlet-PositiveX condition is given a velocity 0.1 m/s for x value. Select the entity ‘Inlet-PosX’ from Topological Mapping and click Save option.

  • The Inlet-NegativeX condition is given a velocity -0.1 m/s for x value. Select the entity ‘Inlet-NegX’ from Topological Mapping and click Save option.

  • A pressure Outlet boundary condition is defined as follows.

  • The Smoke Inlet is given a passive scalar value 1 in the positive y direction with velocity 0.2 m/s. This is assigned to the ‘Smoke Inlet’ entity.

  • A no-slip Wall condition is defined for the other walls.


  • Select ‘Numerics’ from the sub-tree and enter the following values, click the Save button. This enhances us to get the appropriate results.

Simulation control

  • Click on ‘Simulation control’ and setup the simulation run for 2000s time with a time step of 1.

  • Select ‘Simulation runs’ and click Create new run. Press Start button.

  • The simulation run takes approximately 80 minutes to complete.


  • Once the simulation is over switch to obtain the results by clicking on Post-process results under Results.

  • Click on the solution field (‘Run 1’ in this case) and create a slice by clicking Add filter and selecting Slice.

  • Enter the values as shown below. Change the data to passive scalar variable by selecting T1 [point-data].
    Slice type - Plane
    Origin - (-2.5, 0, 2.616)
    Normal - (1, 0, 0)

  • It might be interesting to display the domain as well for better visualization. This can be done by changing the opacity to 0.25 and then changing the view property to ‘Solid color’. Select the button next to ‘Run 1’ to display it.

  • Click on the ‘Run1 1’ and create another slice by clicking Add filter and selecting Slice.

  • Enter the values as shown below. Change the data to passive scalar variable by selecting T1 [point-data] and switch results to the last time step.
    Slice type - Plane
    Origin - (0, 0, 2.616)
    Normal - (0, 1, 0)

  • Click the color bar next to filters to show the scale for the value range, and then rescale it between the auto ranges of passive scalar variable in the new plane.

  • A stream tracer is created to visualize the flow by adding another filter. Enter the values as shown below to see the flow of passive scalar variable.
    Maximum streamline length - 10
    Seed type - Point source
    Center - (-2.5, 0.7, 1.3)
    Number of points - 100
    Radius - 0.15

  • New Streamlines can also be added for visualizing external air flow in the room. Add 2 more streamline filters with the following properties.
    Maximum streamline length - 15
    Seed type - High resolution line source
    Point1 - (-3.75, -4.5, 0.5)
    Point2 - (-3.75, 4.5, 0.5)
    Resolution - 75
    Maximum streamline length - 15
    Seed type - High resolution line source
    Point1 - (3.75, -4.5, 0.5)
    Point2 - (3.75, 4.5, 0.5)
    Resolution - 75

Community Digest July 2016



Hi @sjesu_rajendra!

I’ve been trying to simulate this case since the last week but unfortunately I haven’t succeed - link to my project.

The problem is that the case is just not converging. I thought the problem is in the mesh (it’s usually the mesh to blame). I did’t get the same mesh as in your tutorial from the beginning though I did meshing exactly as you described, but the difference was small (a couple of hundreds of elements) and I thought it would be OK - but no luck. Then I’ve tried to create a couple of more refined meshes, but the result is the same - it just not converges.

I’ve tried the several Numerics settings as well - more linear based configuration and the second order numerics schemes after that with non-orthogonal corrections - it didn’t work ether.

And after short search though the public projects I see the same problem appears for other users as well.

So can you please compare your smoothly working case and mine and maybe point out what I did wrong? I spent quite some time on this and really want to understand the problem.

PS I haven’t created topological sets as in your tutorial and haven’t created sip-wall BC, to save sometime. Those are main differences from your tutorial and I believe they are not the root of the problem.

Thank you in advance.


Hello @varsey,

I had a look to your project and I believe all your simulation runs are converging. The computation time seems to be very long due to the reasons that the mesh size is larger and the number of computational cores used for the larger mesh is less. I had a 1.2 million mesh, which took approximately 80 minutes for computation with 16 cores.

I also made some post-processing from your simulation runs and it doesn’t seem to diverge.

Please point to me the simulation run with which you need clarification.

Kind regards,


Thank you @sjesu_rajendra!

I was wrong cuz I could’t get the same pictures u did in your tutorial, but now everything is fine.

Thank you for your time and sorry for bothering you :slight_smile: