How can I define an Atmospheric Boundary Layer in SimScale

Introduction

In many industries, but mainly in architectural or pedestrian comfort, an Atmospheric Boundary layer may be required. The following post combines resources, theories, and past discussions into one place to give a single resource. It can be used to create a profile in the correct format to be used on the SimScale platform for the two most common simulation types, the Incompressible flow type simulation, and the fast transient LBM Incompressible flow type.

Theory

Mean Velocity Profile

The velocity profile for an Atmospheric Boundary Layer can be written as U(z) = \frac{U_{ABL}}{k}*ln(\frac{Z+Z_0}{Z_0}) (Building and Construction Authority Singapore, 2015) where U(z) is velocity as a function of height and U_{ABL} is the atmospheric boundary layer friction velocity defined as U_{ABL} = \frac{U_{ref}.k}{ln(\frac{h+Z_0}{Z_0})} where h is the reference height, U_{ref} is the reference velocity at reference height h, k is the Von Karman Constant (0.42), Z_0 is the aerodynamic roughness and Z is the function height.

The above reference also provides some descriptions of aerodynamic roughness that can be used:

Z_0 = 0.0002 , Sea
Z_0 = 0.005 , Smooth, featureless land surface
Z_0 = 0.03 , Open, Level country with low vegetation
Z_0 = 0.1 , Roughly open, Cultivated area or occasional obstacles.
Z_0 = 0.25 , Rough, High crops or scattered obstacles
Z_0 = 0.5 , Very Rough, large obstacles (large farms, clumps of forest)
Z_0 = 1 , mature forest, homogeneneous cities and villages
Z_0 \geq 2 , Centres of large towns with mixed high and low rise buildings.

Turbulent Kinetic Energy Profile

Turbulent Kinetic Energy (TKE) can be similarly defined using a similar relation TKE(z) = \frac{U_{ABL}^2}{\sqrt{C_u}}[1 - \frac{Z}{Z_h}]^2 (Giorgio Crasto, 2007), where C_u is a model constant (0.09) and Z_h is the boundary layers height (usually defined at 99% U_{freestream} ).

Turbulent Intensity Profile

Turbulence needs to be defined with Turbulent Intensity for LBM Incompressible flow simulation types, however, this can be defined using the relation between TKE (calculated before) and the relation I = \frac{u'}{U} (n.d., 2018) where u' is the RMS of the velocity fluctuations, which can also be defined as u' = \sqrt{\frac{2}{3}TKE(z)} also found in the same resource. Therefore turbulent intensity can be defined using our previous calculations as I(z) = \frac{\sqrt{\frac{2}{3}TKE(z)}}{U(z)} (\%) , where intensity is defined as a function of height by using the turbulent kinetic energy and mean velocity, both as functions of height.

Turbulent intensity is calculated as a percentage (%) however, LBM required a decimalsed input therefor a conversion /100 is required giving the final profile as I(z) = \frac{\sqrt{\frac{2}{3}TKE(z)}}{U(z)}.\frac{1}{100} .

Profiles

With the above calculations profiles can be produced, an example is depicted below.

Velocity CSV for Incompressible Flow

For CSV input into the standard Incompressible flow simulations, the format of the CSV file needs to represent firstly a full coordinate followed by velocity in all of its components;
X, Y, Z, U, V, W,

between points defined as X, Y, Z the velocity will be linearly interpolated, so it is important that good resolution is given close to the 0 velocity edge, furthermore, several ‘poles’ of points are recommended. i.e. if the inlet boundary was in the YZ plane normal to X, and Z low was the floor, a CSV where Z varies for example [0.01, 0.02, 0.04, 0.08, 0.16, 0.32, 0.64, 1.28, 2.56…] and Y varies [-200, -100, 0, 100, 200] giving poles of points at -200m etc in the increasing distance from the ground if the ground was located at Z=0.

Example CSV:

Example Velocity Profile

x,y,z,Ux,Uy,Uz
-23.8,-24.2,0,0,0,0
-23.8,-24.2,0.01,0.278090037,0,0
-23.8,-24.2,0.02,0.543240874,0,0
-23.8,-24.2,0.04,1.039180936,0,0
-23.8,-24.2,0.08,1.917795899,0,0
-23.8,-24.2,0.16,3.350216549,0,0
-23.8,-24.2,0.32,5.446143044,0,0
-23.8,-24.2,0.64,8.179572987,0,0
-23.8,-24.2,1.28,11.40786585,0,0
-23.8,-24.2,2.56,14.9598633,0,0
-23.8,-24.2,5.12,18.70025931,0,0
-23.8,-24.2,10.24,22.54284355,0,0
-23.8,-24.2,20.48,26.4387269,0,0
-23.8,-20,0,0,0,0
-23.8,-20,0.01,0.086863249,0,0
-23.8,-20,0.02,0.169684854,0,0
-23.8,-20,0.04,0.324594989,0,0
-23.8,-20,0.08,0.599036142,0,0
-23.8,-20,0.16,1.046462137,0,0
-23.8,-20,0.32,1.70113854,0,0
-23.8,-20,0.64,2.554943331,0,0
-23.8,-20,1.28,3.563321803,0,0
-23.8,-20,2.56,4.672811529,0,0
-23.8,-20,5.12,5.841148783,0,0
-23.8,-20,10.24,7.041405202,0,0
-23.8,-20,20.48,8.258309947,0,0
-23.8,-15,0,0,0,0
-23.8,-15,0.01,0.086863249,0,0
-23.8,-15,0.02,0.169684854,0,0
-23.8,-15,0.04,0.324594989,0,0
-23.8,-15,0.08,0.599036142,0,0
-23.8,-15,0.16,1.046462137,0,0
-23.8,-15,0.32,1.70113854,0,0
-23.8,-15,0.64,2.554943331,0,0
-23.8,-15,1.28,3.563321803,0,0
-23.8,-15,2.56,4.672811529,0,0
-23.8,-15,5.12,5.841148783,0,0
-23.8,-15,10.24,7.041405202,0,0
-23.8,-15,20.48,8.258309947,0,0
-23.8,-10,0,0,0,0
-23.8,-10,0.01,0.086863249,0,0
-23.8,-10,0.02,0.169684854,0,0
-23.8,-10,0.04,0.324594989,0,0
-23.8,-10,0.08,0.599036142,0,0
-23.8,-10,0.16,1.046462137,0,0
-23.8,-10,0.32,1.70113854,0,0
-23.8,-10,0.64,2.554943331,0,0
-23.8,-10,1.28,3.563321803,0,0
-23.8,-10,2.56,4.672811529,0,0
-23.8,-10,5.12,5.841148783,0,0
-23.8,-10,10.24,7.041405202,0,0
-23.8,-10,20.48,8.258309947,0,0
-23.8,-5,0,0,0,0
-23.8,-5,0.01,0.086863249,0,0
-23.8,-5,0.02,0.169684854,0,0
-23.8,-5,0.04,0.324594989,0,0
-23.8,-5,0.08,0.599036142,0,0
-23.8,-5,0.16,1.046462137,0,0
-23.8,-5,0.32,1.70113854,0,0
-23.8,-5,0.64,2.554943331,0,0
-23.8,-5,1.28,3.563321803,0,0
-23.8,-5,2.56,4.672811529,0,0
-23.8,-5,5.12,5.841148783,0,0
-23.8,-5,10.24,7.041405202,0,0
-23.8,-5,20.48,8.258309947,0,0
-23.8,0,0,0,0,0
-23.8,0,0.01,0.086863249,0,0
-23.8,0,0.02,0.169684854,0,0
-23.8,0,0.04,0.324594989,0,0
-23.8,0,0.08,0.599036142,0,0
-23.8,0,0.16,1.046462137,0,0
-23.8,0,0.32,1.70113854,0,0
-23.8,0,0.64,2.554943331,0,0
-23.8,0,1.28,3.563321803,0,0
-23.8,0,2.56,4.672811529,0,0
-23.8,0,5.12,5.841148783,0,0
-23.8,0,10.24,7.041405202,0,0
-23.8,0,20.48,8.258309947,0,0
-23.8,5,0,0,0,0
-23.8,5,0.01,0.086863249,0,0
-23.8,5,0.02,0.169684854,0,0
-23.8,5,0.04,0.324594989,0,0
-23.8,5,0.08,0.599036142,0,0
-23.8,5,0.16,1.046462137,0,0
-23.8,5,0.32,1.70113854,0,0
-23.8,5,0.64,2.554943331,0,0
-23.8,5,1.28,3.563321803,0,0
-23.8,5,2.56,4.672811529,0,0
-23.8,5,5.12,5.841148783,0,0
-23.8,5,10.24,7.041405202,0,0
-23.8,5,20.48,8.258309947,0,0
-23.8,10,0,0,0,0
-23.8,10,0.01,0.086863249,0,0
-23.8,10,0.02,0.169684854,0,0
-23.8,10,0.04,0.324594989,0,0
-23.8,10,0.08,0.599036142,0,0
-23.8,10,0.16,1.046462137,0,0
-23.8,10,0.32,1.70113854,0,0
-23.8,10,0.64,2.554943331,0,0
-23.8,10,1.28,3.563321803,0,0
-23.8,10,2.56,4.672811529,0,0
-23.8,10,5.12,5.841148783,0,0
-23.8,10,10.24,7.041405202,0,0
-23.8,10,20.48,8.258309947,0,0
-23.8,15,0,0,0,0
-23.8,15,0.01,0.086863249,0,0
-23.8,15,0.02,0.169684854,0,0
-23.8,15,0.04,0.324594989,0,0
-23.8,15,0.08,0.599036142,0,0
-23.8,15,0.16,1.046462137,0,0
-23.8,15,0.32,1.70113854,0,0
-23.8,15,0.64,2.554943331,0,0
-23.8,15,1.28,3.563321803,0,0
-23.8,15,2.56,4.672811529,0,0
-23.8,15,5.12,5.841148783,0,0
-23.8,15,10.24,7.041405202,0,0
-23.8,15,20.48,8.258309947,0,0
-23.8,20,0,0,0,0
-23.8,20,0.01,0.086863249,0,0
-23.8,20,0.02,0.169684854,0,0
-23.8,20,0.04,0.324594989,0,0
-23.8,20,0.08,0.599036142,0,0
-23.8,20,0.16,1.046462137,0,0
-23.8,20,0.32,1.70113854,0,0
-23.8,20,0.64,2.554943331,0,0
-23.8,20,1.28,3.563321803,0,0
-23.8,20,2.56,4.672811529,0,0
-23.8,20,5.12,5.841148783,0,0
-23.8,20,10.24,7.041405202,0,0
-23.8,20,20.48,8.258309947,0,0
-23.8,25.8,0,0,0,0
-23.8,25.8,0.01,0.086863249,0,0
-23.8,25.8,0.02,0.169684854,0,0
-23.8,25.8,0.04,0.324594989,0,0
-23.8,25.8,0.08,0.599036142,0,0
-23.8,25.8,0.16,1.046462137,0,0
-23.8,25.8,0.32,1.70113854,0,0
-23.8,25.8,0.64,2.554943331,0,0
-23.8,25.8,1.28,3.563321803,0,0
-23.8,25.8,2.56,4.672811529,0,0
-23.8,25.8,5.12,5.841148783,0,0
-23.8,25.8,10.24,7.041405202,0,0
-23.8,25.8,20.48,8.258309947,0,0

Turbulent Kinetic Energy CSV for Incompressible Flow

Turbulent Kinetic Energy profiles for the standard incompressible solver is similar in it requiring a point cloud to interpolate values but instead of needing an array of values for components U, V, W, it simply needs a scalar input for TKE so the CSV format should be X, Y, Z, TKE, .

Example TKE Profile

-23.8,-24.2,0,8.009561337
-23.8,-24.2,0.01,8.009481241
-23.8,-24.2,0.02,8.009401146
-23.8,-24.2,0.04,8.009240958
-23.8,-24.2,0.08,8.008920585
-23.8,-24.2,0.16,8.008279858
-23.8,-24.2,0.32,8.006998482
-23.8,-24.2,0.64,8.004436038
-23.8,-24.2,1.28,7.999312379
-23.8,-24.2,2.56,7.989069983
-23.8,-24.2,5.12,7.968604874
-23.8,-24.2,10.24,7.927753395
-23.8,-24.2,20.48,7.846365384
-23.8,-20,0,8.009561337
-23.8,-20,0.01,8.009481241
-23.8,-20,0.02,8.009401146
-23.8,-20,0.04,8.009240958
-23.8,-20,0.08,8.008920585
-23.8,-20,0.16,8.008279858
-23.8,-20,0.32,8.006998482
-23.8,-20,0.64,8.004436038
-23.8,-20,1.28,7.999312379
-23.8,-20,2.56,7.989069983
-23.8,-20,5.12,7.968604874
-23.8,-20,10.24,7.927753395
-23.8,-20,20.48,7.846365384
-23.8,-15,0,8.009561337
-23.8,-15,0.01,8.009481241
-23.8,-15,0.02,8.009401146
-23.8,-15,0.04,8.009240958
-23.8,-15,0.08,8.008920585
-23.8,-15,0.16,8.008279858
-23.8,-15,0.32,8.006998482
-23.8,-15,0.64,8.004436038
-23.8,-15,1.28,7.999312379
-23.8,-15,2.56,7.989069983
-23.8,-15,5.12,7.968604874
-23.8,-15,10.24,7.927753395
-23.8,-15,20.48,7.846365384
-23.8,-10,0,8.009561337
-23.8,-10,0.01,8.009481241
-23.8,-10,0.02,8.009401146
-23.8,-10,0.04,8.009240958
-23.8,-10,0.08,8.008920585
-23.8,-10,0.16,8.008279858
-23.8,-10,0.32,8.006998482
-23.8,-10,0.64,8.004436038
-23.8,-10,1.28,7.999312379
-23.8,-10,2.56,7.989069983
-23.8,-10,5.12,7.968604874
-23.8,-10,10.24,7.927753395
-23.8,-10,20.48,7.846365384
-23.8,-5,0,8.009561337
-23.8,-5,0.01,8.009481241
-23.8,-5,0.02,8.009401146
-23.8,-5,0.04,8.009240958
-23.8,-5,0.08,8.008920585
-23.8,-5,0.16,8.008279858
-23.8,-5,0.32,8.006998482
-23.8,-5,0.64,8.004436038
-23.8,-5,1.28,7.999312379
-23.8,-5,2.56,7.989069983
-23.8,-5,5.12,7.968604874
-23.8,-5,10.24,7.927753395
-23.8,-5,20.48,7.846365384
-23.8,0,0,8.009561337
-23.8,0,0.01,8.009481241
-23.8,0,0.02,8.009401146
-23.8,0,0.04,8.009240958
-23.8,0,0.08,8.008920585
-23.8,0,0.16,8.008279858
-23.8,0,0.32,8.006998482
-23.8,0,0.64,8.004436038
-23.8,0,1.28,7.999312379
-23.8,0,2.56,7.989069983
-23.8,0,5.12,7.968604874
-23.8,0,10.24,7.927753395
-23.8,0,20.48,7.846365384
-23.8,5,0,8.009561337
-23.8,5,0.01,8.009481241
-23.8,5,0.02,8.009401146
-23.8,5,0.04,8.009240958
-23.8,5,0.08,8.008920585
-23.8,5,0.16,8.008279858
-23.8,5,0.32,8.006998482
-23.8,5,0.64,8.004436038
-23.8,5,1.28,7.999312379
-23.8,5,2.56,7.989069983
-23.8,5,5.12,7.968604874
-23.8,5,10.24,7.927753395
-23.8,5,20.48,7.846365384
-23.8,10,0,8.009561337
-23.8,10,0.01,8.009481241
-23.8,10,0.02,8.009401146
-23.8,10,0.04,8.009240958
-23.8,10,0.08,8.008920585
-23.8,10,0.16,8.008279858
-23.8,10,0.32,8.006998482
-23.8,10,0.64,8.004436038
-23.8,10,1.28,7.999312379
-23.8,10,2.56,7.989069983
-23.8,10,5.12,7.968604874
-23.8,10,10.24,7.927753395
-23.8,10,20.48,7.846365384
-23.8,15,0,8.009561337
-23.8,15,0.01,8.009481241
-23.8,15,0.02,8.009401146
-23.8,15,0.04,8.009240958
-23.8,15,0.08,8.008920585
-23.8,15,0.16,8.008279858
-23.8,15,0.32,8.006998482
-23.8,15,0.64,8.004436038
-23.8,15,1.28,7.999312379
-23.8,15,2.56,7.989069983
-23.8,15,5.12,7.968604874
-23.8,15,10.24,7.927753395
-23.8,15,20.48,7.846365384
-23.8,20,0,8.009561337
-23.8,20,0.01,8.009481241
-23.8,20,0.02,8.009401146
-23.8,20,0.04,8.009240958
-23.8,20,0.08,8.008920585
-23.8,20,0.16,8.008279858
-23.8,20,0.32,8.006998482
-23.8,20,0.64,8.004436038
-23.8,20,1.28,7.999312379
-23.8,20,2.56,7.989069983
-23.8,20,5.12,7.968604874
-23.8,20,10.24,7.927753395
-23.8,20,20.48,7.846365384
-23.8,25.8,0,8.009561337
-23.8,25.8,0.01,8.009481241
-23.8,25.8,0.02,8.009401146
-23.8,25.8,0.04,8.009240958
-23.8,25.8,0.08,8.008920585
-23.8,25.8,0.16,8.008279858
-23.8,25.8,0.32,8.006998482
-23.8,25.8,0.64,8.004436038
-23.8,25.8,1.28,7.999312379
-23.8,25.8,2.56,7.989069983
-23.8,25.8,5.12,7.968604874
-23.8,25.8,10.24,7.927753395
-23.8,25.8,20.48,7.846365384

Velocity CSV for LBM Incompressible Flow

CSV uploads for the LBM Incompressible flow varies a bit in the fact that only height and velocity need defining, it will use the floor to find the ‘0m/s’ edge and the normal into the domain to know its direction, therefore, the format for an LBM CSV upload will be Z, U, where Z is height from the floor (no-slip wall) and U is the velocity magnitude at that height. It should also be mentioned that you do not need to define many points at a set height like the standard incompressible flow simulation type.

Example Velocity Profile

0,0
0.01,0.545280522
0.02,1.043082637
0.04,1.924996441
0.08,3.362795247
0.16,5.466591091
0.32,8.210283949
0.64,11.45069773
1.28,15.01603148
2.56,18.77047116
5.12,22.62748274
10.24,26.53799354
20.48,30.47583637
40.96,34.42749466
81.92,38.38609854
163.84,42.34818474
327.68,46.31201449
655.36,50.27671662
1310.72,54.24185508

Velocity CSV for LBM Incompressible Flow

A similar input is required for LBM Turbulent Intensity, where the format is Z, I, where I is a decimal, i.e. 10% intensity is 0.1.

Example Intensity Profile

0,0.11764915
0.01,0.11764915
0.02,0.061500886
0.04,0.033323667
0.08,0.019074253
0.16,0.011731725
0.32,0.007808746
0.64,0.005595378
1.28,0.004261375
2.56,0.003400289
5.12,0.002806226
10.24,0.00236815
20.48,0.002019707
40.96,0.0017139
81.92,0.001408655
163.84,0.00105916
327.68,0.000626146
655.36,0.000151559
1310.72,0.000114188

References

Building and Construction Authority Singapore (2015) ‘BCA Green Mark for Non-Residential Buildings; 2015 Criteria’
Giorgio Crasto (2007) ‘Numerical Simulations on the Atmospheric Boundary Layer’.
n.d. (2018) ‘Turbulence intensity’, Available at: Turbulence intensity -- CFD-Wiki, the free CFD reference

7 Likes

Hi the profile works only for me when i have 0 zeros at all.

Hey David! :slight_smile:

I forwarded this to my team, thanks for letting me know!

All the best and take care!

Jousef

Some of the equation here have gone wrong here… so I cant read them.
image

I was trying to figure out what value of turbulence to use in the boundary layer - fixed value or profile?

Thanks Giles.

Hi Giles, yes, that’s a shame. I’ll ask our team to take a look.

Also, we largely consider this legacy in preference to this documentation page:Atmospheric boundary layer | Pedestrian Wind Comfort | SimScale

Best,
Darren

Hi Darren, thanks for your reply. I have already looked at that Reference which is useful, but the difficulty is that it refers to coefficients C1 and C2, without any details about what they are… apart from a link to another paper which I could not easily find. It would be useful to know if I want to specify fixed values for k,epsilon & omega, what values to use. Or is it essential to use a profile?
Thanks Giles

No, it’s pretty common to use fixed TKE, C1 and C2 fit coefficients, so you adjust them to conform to an experimental result set if necessary. To specify a uniform TKE, as mentioned, C1 can be 0 and C2 can be 1, however, if you actually want fixed values, you don’t need to worry about those equations at all for TKE, but use C2=1 to define omega or epsilon.

Best,
Darren