2.1. CFD Equations and Numerical Methods
A steady-state numerical solution has been used in CFD modelling of the surface layer [
1,
2,
3,
4]. For this work, the OpenFOAM steady-state solver for turbulent compressible flows was adapted, which includes solution of the conservation, momentum, turbulence, and enthalpy equations respectively [
8]. Temperature is calculated from enthalpy using a numerical scheme [
9]. The momentum and turbulence equations are given below, in order to show the specific terms used here.
The momentum conservation equation is given by [
9]:
where
u is the velocity vector;
ρ is the density;
p is the pressure; and
μE is the sum of the molecular (
μl) and turbulent viscosities (
μt), respectively. The second term on the right-hand-side of Equation (1) is the buoyancy source term applied here, in which
g = [0, 0, −9.8 m s
−2];
ρ0 is the reference density at
θ0(
z), given by the lapse-rate of potential temperature. For neutral conditions,
θ0 is constant. The rate of strain tensor
D(
u) is defined as:
).
The standard
k-ε model was used to model turbulence [
10].
k is the turbulent kinetic energy and
ε is the turbulent dissipation rate:
where
Pk is the volumetric production rate of
k by shear forces;
Gb is the volumetric production rate of
k by buoyancy forces;
σt,h is the turbulent Prandtl number (
σt,h = 1.0, [
11]);
σk is the turbulent Prandtl number for
k (
σk = 1.0);
σε is the turbulent Prandtl number for
ε (
σε = 1.31). The constants are:
Cµ = 0.09,
C1 = 1.44,
C2 = 1.92.
Gb is negative for stably stratified flows, so that
k is reduced and turbulence is damped; while for unstably stratified flows,
Gb is positive and
k increases [
12]. The coefficient
C3 depends on the flow situation. In this work, a value of
C3 = −0.8 was used [
4].
OpenFoam uses the finite-volume method, whereby the terms in the conservation equations are discretized by integrating over the cell volume. The upwind-differencing scheme was used for the convective terms [
13]. The discretized equations were solved using standard linear solver methods in OpenFoam. Pressure and velocities were coupled in the solution process using the SIMPLE algorithm [
13]. The imbalances in the finite volume equation (the residuals) were used as a measure of the quality of the solution at each step in the iterative process. Iterations stop when the residual errors sum to less than user-set tolerances.
The key boundary conditions included: (i) upwind boundary: the appropriate vertical profiles of the relevant variables were set here, including velocity, potential temperature, k, and ε. (ii) downwind boundary: a fixed-pressure condition was applied, with an inlet-outlet condition for velocity. The inlet-outlet condition provides a zero-gradient condition for velocities, if outflow occurs, and fixed-value conditions on inflow. A fixed-pressure condition was applicable, since the variation of pressure due to hydrostatic effects was not included. (iii) ground surface: an atmospheric rough-wall function was applied. (iv) upper boundary: a fixed-pressure condition with an inlet-outlet condition for velocities was applied.
Simulations based on the finite volume method with flux defined boundary conditions (Neumann type) usually encounter numerical problems due to the backwards propagation of physical characteristics during the simulation procedure [
4]. Fixed-temperature values (Dirichlet type) on both boundaries have been suggested as a compromise solution [
4]. Fixed-temperature boundaries were used here at ground surface and at the upper-boundary, respectively. In a stably stratified condition, the heat flux is oriented downwards from upper to lower boundary and the value of the heat flux at the ground surface is negative.
2.2. CASES-99 Data
Near-surface profile data from CASES-99 [
14] were used in this work. Data were obtained in netCDF format from EOS/NCAR [
15]. The data were from the main CASES-99 60 m flux tower, and comprised 5-min averages of means, variances and covariances of the ISFF variables. Wind and temperature measurements on the 60 m tower were conducted by sonic anemometers at heights of 1.5, 5, 10, 20, 30, 40, 50, and 55 m [
6]. This provided 3-component wind and temperature data at a sampling rate of 20 Hz. A number of low surface wind-speed situations were examined, and the profile data selected for the present work were from 18/10/1999 0900-0930 UTC, using a 30 min average. Wind-speed at a height of 1.5 m was 1.3 m/s, and a distinct temperature inversion existed. Wind and temperature profiles were found to be relatively steady over the course of the selected period. The virtual temperature profile data were adjusted by the dry adiabatic lapse-rate, to obtain potential temperature (
θ) values. Dry air was assumed in the modelling. The roughness length used for the tower site was
z0 = 0.03 m [
16]. Wind vectors from the sonic anemometers were provided as rotated from instrument coordinates to normal meteorological coordinates. These data were converted to give the mean wind speed. Friction velocity (
= 0.12) and temperature scale (
= 0.07) were also needed for this work, and were obtained using the respective covariance values measured at the surface as follows [
7]:
Turbulent kinetic energy (
k) was obtained as:
2.3. MOS
It was attempted to reproduce the measured profiles of wind speed and
θ using MOS flux-profile relationships [
5]. The aim was to apply the MOS derived profiles as upwind boundary conditions. Flux-profile relationships relate the surface turbulent flux of momentum and heat to their respective profiles of mean wind speed and temperature [
6]. When the turbulence covariances are not available, then turbulent fluxes of momentum and heat can be estimated from vertical profiles of mean values of wind speed and
θ using MOS [
2,
17]. The MOS profiles of wind speed and
θ are, respectively [
5]:
where, Ψ
M = Ψ
T = 4.7 z/L; L is the Monin–Obukhov length;
κ = 0.41 is the von Karman constant;
u(
z) is wind speed;
θ(
z) is the potential temperature; and
θs is the surface temperature. For the case of neutral stability, only Equation (10) is relevant with Ψ
M = 0.
L is a measure of the height of the dynamical influence layer where surface properties are transmitted [
7]. The surface layer height of a stable stratification is the same order as L [
18]. For
z > L, thermal influences are the dominant factor. In the present case, the value of L obtained was 14 m. Thus, the CASES-99 measurements taken at 20 m and above were not in the immediate surface layer, so may have been decoupled from surface influences to some extent. MOS assumes that the shear stress and heat flux are constant in the surface layer [
2]. Reasonable agreements between MOS and the CASES-99 measurements were obtained, and this is presented below. The numerical simulations described next are an attempt to replicate the obtained MOS profiles of velocity and
θ.
2.4. Experimental Procedure
The simulations were carried out in 2-D since the flow properties were invariant in the y-direction, but results were also confirmed in 3-D for selected cases. The test domain size was based on a scale suitable for near-surface dispersion modelling being 3000 m in length and 100 m in height. For the 3-D cases, a 40 m wide domain was used. The number of grid cells was: x (200), y (10), z (50), with gradation in the z-direction used to give greater resolution near the ground surface. The first cell center was located at a height of 0.15 m.
For the neutral case, the whole 100 m depth of the domain was contained in the surface layer, and the shear stress was assumed constant through the layer, equaling the shear stress at the surface. The approach taken for the neutral atmosphere applies analytic solutions to the momentum and turbulence equations as the upwind boundary conditions; and maintains a horizontally homogeneous atmosphere through the use of sources of momentum and
ε applied at the upper boundary, and a rough wall function applied at the ground surface [
1]. In order to satisfy the analytic solution, a different value of
σε = 1.11 is used [
1]. This approach ideally results in a logarithmic wind profile, a zero-vertical velocity, and constant values of
k,
θ, and pressure, respectively, everywhere in the domain. For the neutral case, the value of
u* = 0.12 obtained above for the SBL, was used to provide the required value of
u*, which determines the upwind profiles of wind speed,
k, and epsilon [
1]. This allowed both neutral and stable cases to be put on a common reference scale. However,
u* reflects different relative magnitudes of mechanically- and buoyancy-driven turbulence in each atmosphere.
For the SBL case, the approach taken was similar, with the upwind boundary conditions given by MOS, and a rough wall function applied at the ground surface. However, two difficulties existed compared to the neutral case. First, with the surface layer depth of only 14 m, the way to model the situation was less clear. One possibility was to attempt to model only the lower 14 m or so in the SBL case. However, this would not be of much practical use in applications, where buildings are often higher than this, for example. The turbulent shear stress at the top of domain was not known, but the CASES-99 observation data indicated it may have been zero, since the observed shear stress fell from its surface value to zero at about 40 m. Thus, for the SBL, no source of momentum was applied at the upper boundary.
Second, known profiles for
k and
ε were not available for the SBL. If the measured profile of
k was used, it was not sustained by the current model configuration which included the
k-
ε model, the boundary conditions, and numerical methods used. Thus, a different approach was taken in order to estimate the upwind boundary conditions for
k and
ε. The most consistent boundary conditions with respect to the applied equation system are the numerical results [
4]. For a fixed bulk velocity, the turbulence characteristics can be obtained from the equilibrium state, as they result from the interaction of turbulent shear and inertial force [
4]. Equilibrium profiles for
k and
ε were obtained here by running simulations on a domain 10 km in length, that is, beyond the distance where profiles were changing downwind.