# Modeling Jet Fans, Part 1: Background and Convergence Study

This post discusses modeling jet fans using FDS/PyroSim, with the eventual goal of modeling parking garages. It starts with some background information that was useful to me in helping me understand the problem. In preparation for a parking garage simulation, we first focus on a free jet, comparing the results of a mesh convergence study with the experimentally derived correlations for centerline velocity decay. This and the future garage simulation should help you decide whether PyroSim is applicable to your jet fan application (see also Part 2: Validation using Experimental DataPart 3: Car Park Simulation).

First the basics. FDS (the Fire Dynamics Simulator developed at NIST) solves the Navier-Stokes equations using the Large Eddy Simulation (LES) method. In the LES approach, eddies on the scale of the cell size are resolved and the effect of smaller eddies are approximated. This means that the solution is transient and will vary with time at any point. In contrast, the Reynolds Averaged Navier-Stokes (RANS) approach provides a single time averaged solution.

As will be demonstrated, the mesh size required to accurately match the experimental data for a free jet from a duct are smaller than can be realistically incorporated in a typical design application, such as a parking garage. The question then becomes, “Are there approaches that allow us to reasonably simulate a jet fan in a design calculation, while still being able to solve the problem in realistic time frames?” In the next post we will attempt to provide some guidance to this issue.

In this post we simulate a free air jet with increasing mesh resolution to validate that the FDS solution does converge to the experimental data as mesh is refined.

## Jet Fan Background

Several papers have helped me begin to understand some of the issues in modeling jet fans. I am not an expert in jet fans, and this is far from an exhaustive list, but it at least provides a starting point for our discussion:

• “Modelling and simulation of a jet fan for controlled air flow in large enclosures,” (Giesen et al., 2011) describes both experiments and a RANS computational fluid dynamics (CFD) simulation. The goal is to model the experiments described in this paper.
• Hazim Awbi’s book on Ventilation of Buildings (Awbi, 2003) is one source for a background discussion of experimental data and equations that fit the data.
• Two papers, one by João Viegas (Viegas, 2010) and the other by João Aveiro & João Viegas (Aveiro and Viegas, 2010) demonstrate detailed simulation of ventilation for smoke control in underground car parks using FDS.
• The NIST verification manual for FDS includes a jet fan calculation and references correlations with experimental data (McGrattan, et al., 2013, Section 3.4 Jet Centerline Velocity Decay).

A typical jet fan installation in a parking facility is shown. Brochures from manufacturers, such as the FANTECH catalog “Impulse Ventilation for Car Parks,” provide possible arrangements of arrays of fans in application.

A free air jet flows into an air space where there are no solid boundaries to influence the flow pattern. As described by Awbi (2003) the flow from a free circular jet can be divided into two regions:

Potential core region is the region immediately downstream of the supply opening where mixing of the jet fluid with the surrounding fluid is not complete. The length of the core … usually extends to 5-10 equivalent opening diameters. In this region the centerline velocity is constant and equal to the supply velocity.

Axisymmetric decay region is a region dominated by a highly turbulent flow generated by viscous shear at the edge of the shear layer. For three-dimensional jets this is usually referred to as the ‘fully developed flow  region’ where the spread angle of the jet is a constant whose value depends on the geometry of the opening. It is the predominant region for a jet discharging from a low aspect ratio (square or circular) opening where it extends to about 100 equivalent diameters. Centerline velocity decreases inversely with the distance from the opening.

As described by Awbi (2003), Baturin (1972) provides the following fit to experimental data: where:  um is the centerline velocity, u0 is the supply velocity, x is distance from the supply, a is a constant (0.076 to 0.080 for cylindrical tubes), and d0 is the supply diameter.

Another representation of jet fan experimental data is provided by Kümmel (2007) and is described in the FDS Verification Guide (McGrattan, et al., 2013). For a square duct: where:  x0 is the length of the potential core, h is the side length of the square duct, and m is a constant that varies between 0.12 and 0.20.

The Baturin and Kümmel equations are displayed below for a square 0.25 m duct (equivalent diameter 0.2821 m) with an initial air velocity of 18 m/s (= 59.1 ft/s = 64.8 km/hr = 40.2 miles/hr), the outlet velocity of the jet fan in the Giesen et al., 2011 paper. The bounds of the Kümmel equation show a significant variation in the length of the potential core region. The Baturin correlation predicts centerline velocities that lie between the bounds of the Kümmel predictions. When comparing the PyroSim/FDS results with the correlations, the mean values of the Baturin and Kümmel equation parameters are used.

## FDS Simulation of Free Jet

Before proceeding to simulate the parking garage experiment, we simulated a free jet using varying mesh refinements. The model consisted of a 0.25 x 0.25 m vent with a supply velocity of 18 m/s, similar to the jet fan dimensions and performance that was tested by Giesen et al. (2011).

Figure 4 shows the free jet model. Five meshes were used, with the boundaries of each mesh being an X length of 2.5 m and a height and width of 1.25 m. Only a single mesh is used near the vent, but four meshes are used away from the vent, since the diameter of the jet increases with distance from the supply vent. The supply vent was square with each side length h=0.25 m and with a supply velocity of 18 m/s. The cell size (δx) was equal in X, Y, and Z and was varied as a fraction of the vent side dimension, as shown in the table. The number of cells in the models ranged from 10E3 to 10E6.

## Results of FDS Free Jet Simulations

Because FDS is a Large Eddy Simulation (LES) solution, the results vary with time. All models were run for 10 sec. The initial transient is complete by 2 sec and the primary turbulence frequencies are sufficiently high that averaging the results from 2 to 10 sec gives a value that represents a steady state measurement. The previous figure shows the locations of the Y=0 and X=4 m planes on which velocity contours will be presented.

To first visualize the effect of mesh size on the solution, we present two pairs of velocity contours on the Y=0 and X=4 m planes at 5 sec. These provide both a sense of how the mesh captures turbulence and a measure of the size of the downstream jet. Clearly, the fine mesh shows a much more realistic development of the shear layer, while the coarse mesh result shows minimal turbulence. Free jet velocity contours. The left column shows velocity on the Y = 0 plane (0<=X<=5 m). The right column shows the contours on the X = 4 m plane. The velocity color bars bounds are 0 and 15 m/s, with values above 15 m/s drawn in red.

A comparison of the calculated centerline velocities with the analytic correlations is shown below. Again we see that a fine mesh is required to capture the velocity decay within the 5 m of the outlet. The fine mesh where the grid size is 1/20 of the outlet vent side provides reasonable results.

## Summary

If a sufficiently refined mesh is used, FDS can accurately simulate a free jet. If the mesh refinement is too coarse, the solution will not capture the turbulence in the shear layer that entrains the surrounding fluid and the predicted centerline velocity will not decay as shown be experiment.

This is similar to the conclusion in the FDS Verification Manual, where a mesh of 1/16 the vent side was needed to obtain an reasonably accurate solution. The FDS Verification Manual free jet test problem has a Reynolds number of 1E5 (square duct side 0.8 m and a fluid velocity of 2 m/s). The parameters of the free jet in this post are more challenging and were chosen to approximate a commercial jet fan used for parking garages with a Reynolds number of 2.7E5 (square duct side 0.25 m and a fluid velocity of 18 m/s). So the duct size is significantly smaller and the fluid velocity is significantly higher.

In the next jet fan post we will explore ways to speed the solution while still obtaining reasonable results.

## References

Aveiro, João L. & Viegas, João C. (2010). “Smoke Control in an Underground Car Park with Impulse Ventilation,” V European Conference on Computational Fluid Dynamics, ECCOMAS CFD 2010, J. C. F. Pereira and A. Sequeira (Eds), Lisbon, Portugal, 14–17 June 2010.

Awbi, Hazim B., (2003). Ventilation of Buildings, Second edition, Spon Press, 2003.

Baturin, V. V., (1972). Fundamentals of Industrial Ventilation, Pergamon, Oxford.

Giesen, B.J.M. v.d., Penders, S.H.A. , Loomans, M.G.L.C., Rutten, P.G.S., & Hensen, J.L.M. (2011).  “Modelling and simulation of a jet fan for controlled air flow in large enclosures,” Environmental Modelling and Software, 26(2), 191-200.

Kümmel, (2007). Technische strömungsmechanik. Technical report, B.G. Teubner, 3. Auflage, 2007. 25

McGrattan, K., McDermott, R., Weinschenk, C., Overholt, K., Hostikka, S., Floyd, J., (2013). Fire Dynamics Simulator Technical Reference Guide, Volume 2: Verification, Sixth Edition, NIST Special Publication 1018, National Institute of Standards and Technology.

Viegas, João Carlos (2010). “The use of impulse ventilation for smoke control in underground car parks,” Tunnelling and Underground Space Technology, 25 (2010) 42–53.

## Acknowledgements

All calculations were performed using the FDS and Smokeview software. PyroSim was used to create and run the FDS models.

This post was written by Daniel Swenson. For comments or questions, send email to support@thunderheadeng.com.

## FDS Input File Listing

```&free jet 0_0125 for post.fds
&Generated by PyroSim - Version 2014.4.1208
&Feb 16, 2015 2:48:26 PM

&TIME T_END=10.0/
&DUMP RENDER_FILE='free_jet_0_0125_for_post.ge1', DT_RESTART=2.5/

&MESH ID='Mesh-a-e', IJK=200,100,100, XB=0.0,2.5,-0.625,0.625,-0.625,0.625/
&MESH ID='Mesh-b-a', IJK=200,100,100, XB=2.5,5.0,-1.25,-1.11022E-15,-1.25,-1.11022E-15/
&MESH ID='Mesh-b-b', IJK=200,100,100, XB=2.5,5.0,-1.25,-1.11022E-15,-1.11022E-15,1.25/
&MESH ID='Mesh-b-c', IJK=200,100,100, XB=2.5,5.0,-1.11022E-15,1.25,-1.25,-1.11022E-15/
&MESH ID='Mesh-b-d', IJK=200,100,100, XB=2.5,5.0,-1.11022E-15,1.25,-1.11022E-15,1.25/

&DEVC ID='Vel x0_0 z0_000', QUANTITY='VELOCITY', XYZ=0.0125,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x0_5 z0_000', QUANTITY='VELOCITY', XYZ=0.5,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x1_0 z0_000', QUANTITY='VELOCITY', XYZ=1.0,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x1_5 z0_000', QUANTITY='VELOCITY', XYZ=1.5,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x2_0 z0_000', QUANTITY='VELOCITY', XYZ=2.0,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x2_5 z0_000', QUANTITY='VELOCITY', XYZ=2.5,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x3_0 z0_000', QUANTITY='VELOCITY', XYZ=3.0,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x3_5 z0_000', QUANTITY='VELOCITY', XYZ=3.5,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x4_0 z0_000', QUANTITY='VELOCITY', XYZ=4.0,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x4_5 z0_000', QUANTITY='VELOCITY', XYZ=4.5,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&DEVC ID='Vel x5_0 z0_000', QUANTITY='VELOCITY', XYZ=5.0,0.0,0.0, ORIENTATION=1.0,0.0,0.0/
&SURF ID='Vent Supply',
RGB=26,204,26,
VEL=-18.0/

&VENT SURF_ID='OPEN', XB=0.0,0.0,0.125,0.625,-0.625,0.625/ Mesh Vent: Mesh-a-e [XMIN]
&VENT SURF_ID='OPEN', XB=0.0,2.5,0.625,0.625,-0.625,0.625/ Mesh Vent: Mesh-a-e [YMAX]
&VENT SURF_ID='OPEN', XB=0.0,2.5,-0.625,-0.625,-0.625,0.625/ Mesh Vent: Mesh-a-e [YMIN]
&VENT SURF_ID='OPEN', XB=0.0,2.5,-0.625,0.625,0.625,0.625/ Mesh Vent: Mesh-a-e [ZMAX]
&VENT SURF_ID='OPEN', XB=0.0,2.5,-0.625,0.625,-0.625,-0.625/ Mesh Vent: Mesh-a-e [ZMIN]
&VENT SURF_ID='OPEN', XB=0.0,0.0,-0.625,-0.125,-0.625,0.625/ Mesh Vent: Mesh-a-e [XMIN]01
&VENT SURF_ID='OPEN', XB=0.0,0.0,-0.125,0.125,0.125,0.625/ Mesh Vent: Mesh-a-e [XMIN]02
&VENT SURF_ID='OPEN', XB=0.0,0.0,-0.125,0.125,-0.625,-0.125/ Mesh Vent: Mesh-a-e [XMIN]03
&VENT SURF_ID='OPEN', XB=5.0,5.0,-1.25,-1.11022E-15,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-a [XMAX]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-0.625,-1.11022E-15,-1.25,-0.625/ Mesh Vent: Mesh-b-a [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-1.25,-0.625,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-a [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.25,-1.25,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-a [YMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.25,-1.11022E-15,-1.25,-1.25/ Mesh Vent: Mesh-b-a [ZMIN]
&VENT SURF_ID='OPEN', XB=5.0,5.0,-1.25,-1.11022E-15,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-b [XMAX]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-1.25,-0.625,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-b [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-0.625,-1.11022E-15,0.625,1.25/ Mesh Vent: Mesh-b-b [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.25,-1.25,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-b [YMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.25,-1.11022E-15,1.25,1.25/ Mesh Vent: Mesh-b-b [ZMAX]
&VENT SURF_ID='OPEN', XB=5.0,5.0,-1.11022E-15,1.25,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-c [XMAX]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-1.11022E-15,0.625,-1.25,-0.625/ Mesh Vent: Mesh-b-c [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,2.5,0.625,1.25,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-c [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,1.25,1.25,-1.25,-1.11022E-15/ Mesh Vent: Mesh-b-c [YMAX]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.11022E-15,1.25,-1.25,-1.25/ Mesh Vent: Mesh-b-c [ZMIN]
&VENT SURF_ID='OPEN', XB=5.0,5.0,-1.11022E-15,1.25,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-d [XMAX]
&VENT SURF_ID='OPEN', XB=2.5,2.5,-1.11022E-15,0.625,0.625,1.25/ Mesh Vent: Mesh-b-d [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,2.5,0.625,1.25,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-d [XMIN]
&VENT SURF_ID='OPEN', XB=2.5,5.0,1.25,1.25,-1.11022E-15,1.25/ Mesh Vent: Mesh-b-d [YMAX]
&VENT SURF_ID='OPEN', XB=2.5,5.0,-1.11022E-15,1.25,1.25,1.25/ Mesh Vent: Mesh-b-d [ZMAX]
&VENT SURF_ID='Vent Supply', XB=0.0,0.0,-0.125,0.125,-0.125,0.125/ Vent

&ISOF QUANTITY='VELOCITY', VALUE=1.0,2.0,5.0,10.0,15.0/

&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=0.25/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=0.5/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=1.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=1.5/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=2.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=3.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=4.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBX=5.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBY=0.0/
&SLCF QUANTITY='VELOCITY', VECTOR=.TRUE., PBZ=0.0/

&DEVC ID='[Species: AIR] Mass Flux X=1.0_AREA INTEGRAL', QUANTITY='MASS FLUX X', SPEC_ID='AIR', STATISTICS='AREA INTEGRAL', XB=1.0,1.0,-0.625,0.625,-0.625,0.625/
&DEVC ID='[Species: AIR] Mass Flux X=2.0_AREA INTEGRAL', QUANTITY='MASS FLUX X', SPEC_ID='AIR', STATISTICS='AREA INTEGRAL', XB=2.0,2.0,-0.625,0.625,-0.625,0.625/
&DEVC ID='[Species: AIR] Mass Flux X=3.0_AREA INTEGRAL', QUANTITY='MASS FLUX X', SPEC_ID='AIR', STATISTICS='AREA INTEGRAL', XB=3.0,3.0,0.0,1.25,0.0,1.25/
&DEVC ID='[Species: AIR] Mass Flux X=4.0_AREA INTEGRAL', QUANTITY='MASS FLUX X', SPEC_ID='AIR', STATISTICS='AREA INTEGRAL', XB=4.0,4.0,0.0,1.25,0.0,1.25/
&DEVC ID='[Species: AIR] Mass Flux X=5.0_AREA INTEGRAL', QUANTITY='MASS FLUX X', SPEC_ID='AIR', STATISTICS='AREA INTEGRAL', XB=5.0,5.0,0.0,1.25,0.0,1.25/

&TAIL /
```