1 Introduction

The Lattice Boltzmann method (LBM) has been developed in recent years as an effective computational fluid dynamics (CFD) tool for fluid flow modeling. Unlike traditional CFD methods, such as finite-volume or finite-element methods, which discretize the Navier–Stokes (NS) equations in a macroscopic continuum, the LBM is a mesoscopic kinetic method based on statistical mechanics [14]. The LBM solves the Boltzmann equation for a particle at each grid point by performing collision and propagation calculations of the particle’s probability distribution function (PDF) over a discrete lattice mesh with certain fixed directions. Using the principles of statistical mechanics, the macroscopic flow properties such as mass, velocity, and momentum fluxes are computed from the statistical moments of the particle’s PDF. There are several advantages of the LBM over traditional CFD (finite-volume and finite-difference) methods that solve NS equations, including the simplicities in code development, in implementation of complex boundary conditions, and intrinsic parallelism [14]. The simplest LBM was originated from lattice gas automata (LGA) [5] to remedy shortcomings of the LGA. The usage of the Bhatnagar-Cross-Krook (BGK) [6] relaxation in the collision term makes the transition from LGA to LBM possible. Further development of the LBM using BGK (LBGK) single relaxation [79] eliminated statistical noise, and created a viable method for simulating fluid flow. Soon after, the LBM was directly derived from the Boltzmann equation by discretization in both time and phase space [10]. There are many publications that detail further developments of LBM such as the reduction of compressibility effects [11,12,13,14], the implementation of boundary conditions [15,16,17,18], turbulent flow simulations [19,20,21,22], energy and mass transport, multiphase flow [23,24,25,26], and in parallel computation using graphical processing unit (GPU) [27, 28]. The potential for drastic speed up using GPU is a very attractive point for the large-eddy simulation of a large domain [29] with a huge number of grid points. A detailed review of the literature, including historical and recent developments in LBM, can be found in [14], with abundant citations.

In spite of many successful simulations of laminar flow problems using LBGK, there are two inherent defects in the LBGK method: the numerical instability in high Reynold number flows and inaccurate boundary conditions [30]. The problem is rooted in the single relaxation time of LBGK. To remedy this shortcoming, d’Humières developed the multiple-relaxation-time (MRT) LBM [31] which has been demonstrated [30, 3234] to be superior over LBGK in numerical stability and accuracy. The MRT-LBM is more stable than the LBGK because different relaxation times can be individually tuned to achieve ‘optimal’ numerical stability [30, 32]. There are many successful simulations using the MRT-LBM, such as turbulent flows [3538] and thermal driven convective flows [3740]. The apparent advantages of the MRT-LBM provided an incentive for the exploratory simulation study of this paper.

In this study, we investigate the suitability of thermal LBM (TLBM) using the MRT method for modeling stratified flow in complex terrain, using a simple flow configuration. Specifically, we focus on stratified flow past a long ridge, with approaching flow perpendicular to it. To our knowledge, MRT-LBM numerical modeling of atmospheric lee-waves has not been conducted. In this study several aspects of the implementation of MRT-LBM for the problem in hand require careful attention, such as the coupling of momentum with temperature stratification, buoyancy wave generation, treatments of arbitrary curved 3D boundaries, and a turbulent flow parametrization.

Atmospheric lee-waves and rotors over a long mountain ridge have been active research topics for many decades. The first analytical study using linear solutions was derived for a bell-shaped ridge by Queney [41]. Numerous studies on this problem have been carried out in analytical solutions [4246], both based on linear small-amplitude [41] and nonlinear finite-amplitude formulations of NS equations [43]. The numerical models based on NS equations, including non-linear effects were carried out in computer simulations [47,48,49,50]. Laboratory experiments are also abound [5153]. The mountain waves and associated phenomena, such as rotors, are challenging research problems because of the complexity of its dynamics and problem configurations. Buoyancy waves, rotors, and hydraulic jumps are not only dependent on large scale weather, but also on the characteristics of the topography. Stratified flow over a realistic mountain ridge was selected for this preliminary study hoping that the TLBM technique, a novel tool in atmospheric flow research, will garner increased popularity within the community. In this study, we simulated stratified flow over a bell-shaped hill where the stratification is neutral in the boundary layer, topped with a stable cap and stably stratification aloft. This case has been the subject of numerical simulations [48] and laboratory modeling [53].

Organization of this paper is as follows: The second section describes the thermal MRT-LBM in detail, various boundary conditions of MRT-LBM, and the turbulent parameterization used in this study. The third section presents results of the MRT-LBM simulations of stratified flow over a simple idealized ridge/hill. The last section includes a summary and conclusions.

2 Lattice Boltzmann model—the MRT method

Before description of the LBM modeling, it is worthwhile to discuss the scaling non-dimensional form NS equations because it is related to our flow variable transformation, and thermal force coupling in the LBM framework. For laboratory and numerical simulations of fluid flows, a set of similarity parameters must be satisfied to represent the real flow conditions. The following normalization can be applied [54] to the thermally coupled incompressible NS equations in Cartesian coordinate with Boussinesq approximation for atmospheric flow, without radiative and latent heat flux terms. Taken the original Boussinesq approximation of the NS equations, the velocity (Ui), length (Xi), time (\(\tau\)), pressure (P), and temperature (θ) can be normalized by a set of corresponding reference scales \(\left( {u_{0} , l_{0} , t_{0} = l_{0} /u_{0} ,\theta_{1} - \theta_{0} } \right)\) as

$$u_{i} = \frac{{U_{i} }}{{u_{0} }},\quad x_{i} = \frac{{X_{i} }}{{l_{0} }},\quad t = \frac{\tau }{{t_{0} }},\quad p = \frac{P}{{\rho_{0} u_{0}^{ 2} }},\quad \theta^{'} = \frac{{\theta - \theta_{0} }}{{\theta_{1} - \theta_{0} }}.$$
(1)

The resulting non-dimensional NS system is written in tensor form

$$\frac{{\partial u_{i} }}{{\partial x_{i} }} = 0,$$
(2)
$$St\frac{{\partial u_{i} }}{\partial t} + \frac{{\partial u_{j} u_{i} }}{{\partial x_{j} }} = - \frac{\partial p}{{\partial x_{i} }} + \frac{1}{{R_{e} }}\frac{{\partial^{2} u_{i} }}{{\partial x_{i}^{2} }} - \frac{{R_{a} }}{{R_{e}^{2} P_{r} }} \theta^{\prime}\delta_{i3} ,$$
(3)
$$St\frac{{\partial \theta^{\prime}}}{\partial t} + \frac{{\partial u_{j} \theta^{\prime}}}{{\partial x_{j} }} = \frac{1}{{P_{r} R_{e} }}\frac{{\partial^{2} \theta^{\prime}}}{{\partial x_{i}^{2} }}.$$
(4)

where \(\delta_{i3}\) is the Kronecher delta, St, Re, Ra, and Pr are the dimensionless parameters which are defined as the Strouhal, Reynolds, Rayleigh, and Prandtl numbers respectively:

$$St = \frac{{l_{0} }}{{u_{0} t_{0} }},\quad R_{e} = \frac{{u_{0} l_{0} }}{\nu },\quad R_{a} = \frac{{g\beta \left( {\theta_{1} - \theta_{0} } \right)l_{0}^{3} P_{r} }}{{\nu^{2} }},\quad P_{r} = \frac{\nu }{\kappa },$$
(5)

where \(\rho_{0}\) is the reference air density; \(p\) and \(\theta^{\prime}\) are the pressure and potential temperature deviations from the reference state; and, \(\begin{array}{*{20}l} {g,} \hfill & {\nu ,} \hfill & {\kappa ,} \hfill & \beta \hfill \\ \end{array}\) are the gravitational acceleration, kinematic molecular viscosity and thermal diffusivity, and the atmospheric expansion coefficient. In our study of the atmospheric boundary layer, the St number is not important because it is a dimensionless number for the oscillating of the flow. The other similarity numbers \(R_{e} , R_{a} , P_{r}\) must be the same in the simulations as in the real atmospheric boundary layer flows. In this simulation study, the reference scale parameters for velocity (u0), time (t0), and length (l0) are used to transform the model simulated flow variables to the atmospheric wind variables. We focus on 3D atmospheric flows in which the following descriptions of MRT-LBM are 3D in a Cartesian coordinate frame. It should be noted that original LBM is weakly compressible [9, 11, 12]. However, the compressibility is reduced when using the MRT-LBM [33], therefore the Boussinesq approximation is valid.

2.1 Coupled MRT-LBM for stratified flow

In this simulation, we used a 3D thermal MRT model with nineteen lattice directions (D3Q19). The discrete velocity is that of D3Q19 model as follows [31] (Fig. 1):

Fig. 1
figure 1

The geometry of the D3Q19 lattice with lattice vector cα defined in Eqs. (6) and (7). The lattice is 3D and has 19 discrete collision directions

$$\varvec{c}_{\alpha } = \left\{ {\begin{array}{*{20}l} {\left( {0,0,0} \right)} \hfill & {} \hfill & {} \hfill & {\alpha = 0} \hfill \\ {\left( { \pm 1,0,0} \right)} \hfill & {\left( {0, \pm 1,0} \right)} \hfill & {\left( {0,0, \pm 1} \right)} \hfill & {\alpha = 1, \ldots , 6} \hfill \\ {\left( { \pm 1, \pm 1,,0} \right)} \hfill & {\left( { \pm 1,0, \pm 1} \right)} \hfill & {\left( {0, \pm 1, \pm 1} \right)} \hfill & {\alpha = 7, \ldots ,18} \hfill \\ \end{array} .} \right.$$
(6)

The MRT-TLBM equation with α discrete velocities in 19 directions that is equivalent to NS Eq. (2) and (3) can be written as follows with the following equations with MRT equations [31, 32]:

$$\varvec{f}\left( {\vec{x} + \varvec{c}_{\alpha } dt, t + dt} \right) - \varvec{f}\left( {\vec{x}, t} \right) = - M^{ - 1} S\left[ {\varvec{m}\left( {\vec{x},t} \right) - \varvec{m}^{eq} \left( {\vec{x},t} \right)} \right] + M^{ - 1} \varvec{F}\left( {\vec{x},t} \right)dt.$$
(7)

The symbol in bold-face is defined as a column vector with a number of components in lattice direction α. \(\varvec{f}\left( {\vec{x}, t} \right)\) is the particle velocity PDF vector at a spatial location \(\vec{x}\) at a time t; and m and \(\varvec{m}^{eq}\) are the velocity moment vector and its equilibrium function vector, respectively. F is an external force vector in which the buoyancy force is coupled. All column vectors in Eq. (7) are expressed as follows, in which superscript T represents the transpose of a vector:

$$\begin{array}{*{20}l} {{\mathbf{f}}\left( {\vec{x} + c_{\alpha } dt, t + dt} \right) \equiv (f_{0} \left( {\vec{x},t + dt} \right), f_{1} \left( {\vec{x} + c_{1} dt,t + dt} \right), \ldots , f_{18} \left( {\vec{x} + c_{b} dt,t + dt} \right))^{T} ,} \hfill \\ {{\mathbf{f}}\left( {\vec{x}, t} \right) \equiv (f_{0} \left( {\vec{x},t} \right),f_{1} \left( {\vec{x},t} \right), \ldots , f_{18} \left( {\vec{x},t} \right))^{T} ,} \hfill \\ {{\mathbf{m}}\left( {\vec{x}, t} \right) \equiv (m_{0} \left( {\vec{x},t} \right),m_{1} \left( {\vec{x},t} \right), \ldots , m_{18} \left( {\vec{x},t} \right))^{T} ,} \hfill \\ {{\mathbf{m}}^{eq} \left( {\vec{x}, t} \right) \equiv (m_{0}^{eq} \left( {\vec{x},t} \right),m_{1}^{eq} \left( {\vec{x},t} \right), \ldots ,m_{18}^{eq} \left( {\vec{x},t} \right))^{T} ,} \hfill \\ {{\mathbf{F}}\left( {\vec{x}, t} \right) \equiv \left( {{\mathbf{I}} - \frac{S}{2}} \right)M(F_{0} \left( {\vec{x},t} \right),F_{1} \left( {\vec{x},t} \right), \ldots ,F_{18} \left( {\vec{x},t} \right))^{T} .} \hfill \\ \end{array}$$
(8)

M is the transformation matrix that maps the PDF vector f in the velocity space to the vector m in the moment space (see “Appendix” for the matrix). i.e. \(\varvec{m} = M\varvec{f}, \varvec{f} = M^{ - 1} \varvec{m}\). S is a diagonal relaxation matrix, and I is an identity matrix. It is noted here that coupling of the buoyancy force follows Guo et al. [4, 55] scheme which satisfies the mass and momentum conservation constraints. The moment vector components can be interpreted as the hydrodynamic quantities and their fluxes [31, 32]. The moment vector is arranged in the following order and each component is related to a physical property of the fluid:

$$\varvec{m} = \left( {\rho ',e, \varepsilon , j_{x} ,q_{x} ,j_{y} , q_{y} ,j_{z} ,q_{z} ,3p_{xx} , 3\pi_{xx} , p_{ww} ,\pi_{ww} ,p_{xy} , p_{yz} ,p_{xz} ,m_{x} ,m_{y} , m_{z} } \right)^{T} ,$$
(9)

where \(\rho '\) is the density fluctuation, e is related to energy,\(\varepsilon\) is related to energy squared, jx, jy, and jz are the components of flow momentum, \(\left( {\begin{array}{*{20}l} {j_{x} ,} \hfill & {j_{y} ,} \hfill & {j_{z} } \hfill \\ \end{array} } \right) = \rho_{0} \vec{u}\), qx, qy, qz are the third order moments corresponding to energy fluxes in x, y and z directions respectively, pxy, pyz and pzx are related to the components of the symmetric and traceless strain rate tensor, \(\pi_{xx} \;and\;\pi_{ww}\) are fourth order moments, \(m_{x} ,m_{y} , m_{z}\) are the third order moment [32]. The orthogonal transformation matrix M is derived using the Gram-Schmidt orthogonalization procedure [31, 32] and listed in the Appendix. Since M is an orthogonal matrix, its inverse M1 can be easily determined by multiplying by its transpose.

There are four conserved quantities in this MRT model–the density \(\rho '\), and three components of momentum jx, jy and jz. By using the following decomposition of density, the compressibility effect of the model [33, 38] and round-off error is reduced,

$$\rho = \rho_{0} + \rho^{\prime},\quad \rho_{0} = 1.$$
(10)

The equilibrium functions for the other non-conserved moments are given as follows [31, 32]:

$$\begin{array}{*{20}l} {m_{1}^{eq} = - 11\rho ' + \frac{19}{{\rho_{0} }}\left( {j_{x}^{2} + j_{x}^{2} + j_{x}^{2} } \right),\;m_{2}^{eq} = \omega_{\varepsilon } \rho ' + \frac{{\omega_{ej} }}{{\rho_{0} }},\;m_{4,6,8}^{eq} = \frac{{\omega_{ej} }}{{\rho_{0} }},} \hfill \\ {m_{9}^{eq} = \frac{1}{{\rho_{0} }}\left( {2j_{x}^{2} - j_{y}^{2} - j_{z}^{2} } \right), \;m_{10}^{eq} = \omega_{xx} m_{9}^{eq} , \;m_{11}^{eq} = \frac{1}{{\rho_{0} }}\left( {j_{x}^{2} - j_{z}^{2} } \right), \;m_{12}^{eq} = \omega_{xx} m_{11}^{eq} ,} \hfill \\ { m_{13}^{eq} = \frac{1}{{\rho_{0} }}j_{x} j_{y} ,\;m_{14}^{eq} = \frac{1}{{\rho_{0} }}j_{y} j_{z} ,\;m_{15}^{eq} = \frac{1}{{\rho_{0} }}j_{x} j_{z} ,\;m_{16}^{eq} = m_{17}^{eq} = m_{18}^{eq} = 0.} \hfill \\ \end{array}$$
(11)

The parameters in the Eq. (11) are chosen to optimize the linear stability of the MRT model [30]: \(\omega_{\varepsilon } = \omega_{xx} = 0\;{\text{and}}\;\omega_{\varepsilon j} = - \frac{475}{63}\). With the equilibrium moments above, the speed of sound cs, in the unit of lattice speed, \(c \equiv \frac{dx}{dt} = 1\), is

$$c_{s} = 1/\sqrt {3 } .$$
(12)

The diagonal relaxation matrix S for the collision process in the moment space is

$$S = diag\left( {0,s_{1,} s_{2,} 0,s_{4,} 0,s_{4,} 0,s_{4,} s_{9,} s_{10,} s_{9,} s_{10,} s_{13,} s_{13,} s_{13,} s_{16,} s_{16,} s_{16} } \right),$$
(13)

where the relaxation rates of the non-conserved moments are in the range of (0, 2) and are specifically related to the shear viscosity (\(\nu\)) and bulk viscosity (ζ) [30, 32] as,

$$s_{1} = 2/\left( {9\zeta + 1} \right)\quad {\text{and}}\quad s_{9} = s_{13} = 2/\left( {6\nu + 1} \right)$$
(14)

In this simulation, we use the following relaxation parameters for optimized stability [30, 32]:

$$s_{1} = 1.19,\;s_{2} = s_{10} = 1.4,\;s_{4} = 1.2,\;s_{16} = 1.98.$$
(15)

As before in (3), the thermal and momentum equation coupling in the NS equations is carried out using a buoyancy forcing term. In the MRT-LBM system, the coupling of the thermal and momentum equation uses an external buoyancy force F as in Eq. (7). The buoyancy force Fb has to be computed as a non-dimensional force term in Eq. (7). The similarity numbers, Ra, Re, and Pr, computed from the real atmospheric conditions, are used for the buoyancy force Fb.

$$\varvec{F}_{b} = \frac{{R_{a} }}{{R_{e}^{2} P_{r} }} \theta^{\prime},$$
(16)

Fb is then transformed to \(\varvec{F}_{\alpha }\). using the following relationship [4, 56, 57] to satisfy the hydrodynamic mass and momentum conservation:

$$\varvec{F}_{\alpha } = \omega_{\alpha } \left[ {\frac{{c_{\alpha } \cdot \varvec{F}_{b} }}{{c_{s}^{2} }} + \frac{{\vec{u}\varvec{F}_{b} :(c_{\alpha } c_{\alpha } - c_{s}^{2} \varvec{I})}}{{c_{s}^{4} }}} \right],$$
(17)
$${\text{where}}\quad \omega_{\alpha } = \left\{ {\begin{array}{*{20}l} {1/3,} \hfill & {\alpha = 0} \hfill \\ {1/18,} \hfill & {\alpha = 1, \ldots , 6} \hfill \\ {1/36,} \hfill & {\alpha = 7, \ldots , 18} \hfill \\ \end{array} .} \right.$$
(18)

Consequently, this term is added when computing the wind velocity [4, 56, 57]:

$$\rho^{\prime} = \mathop \sum \limits_{\alpha = 0}^{18} f_{a} ,\quad \rho^{\prime}\vec{u} = \mathop \sum \limits_{\alpha = 0}^{18} c_{\alpha } f_{a} + \frac{dt}{2}\varvec{F}_{\alpha } .$$
(19)

The temperature deviation \(\theta^{\prime}\) was comped with a MRT model using D3Q7 lattice (see Fig. 1 for α = 0,…,6 lattice setup). The evolution of the probability distribution function h for temperature in the MRT method is [58, 59]

$$\varvec{h}\left( {\vec{x} + c_{\alpha } dt, t + dt} \right) - \varvec{h}\left( {\vec{x}, t} \right) = - N_{T}^{ - 1} R\left[ {\varvec{n}\left( {\vec{x},t} \right) - \varvec{n}^{eq} \left( {\vec{x},t} \right)} \right],$$
(20)

where \(c_{\alpha }\) has only seven discrete velocities. The transformation matrix NT is defined by [58] and listed in the “Appendix”.

The n and neq are the thermal moment vector and its equilibrium vector, respectively. The equilibrium moments for temperature are [58, 59]:

$$\varvec{n}^{eq} = \left( {\theta^{\prime},u\theta^{\prime},v\theta^{\prime},w\theta^{\prime},a\theta^{\prime},0,0} \right)^{T} ,$$
(21)

where \(a\) is a constant related to thermal diffusivity \(\kappa = \sqrt 3 (4 + a)/60\). To avoid numerical instability of the D3Q7 model, \(a < 1\) must be maintained [37, 39], where u, v, and w are the flow velocity components in Eq. (19). The diagonal relaxation matrix R is expressed as [58, 60]

$$R = diag\left( {0,\sigma_{k} ,\sigma_{k} ,\sigma_{k} ,\sigma_{e} ,\sigma_{\nu ,} \sigma_{\nu } } \right),$$
(22)

where relaxation rate \(\sigma_{k}\) is determined by the heat diffusivity [37, 39], \(\kappa\), and the

$$\sigma_{k} = \frac{1}{5\kappa + 0.5} ,\quad \sigma_{e} = \sigma_{\nu } = \frac{1}{{\frac{\sqrt 3 }{3} - 0.5}},$$
(23)

Once the shear viscosity is determined, the heat diffusivity is determined by the Prandtl number. In this study, Pr was set to 0.7. The above values for relaxation rates were adopted from previous studies [37, 39]. The temperature \(\theta '\) is computed by [37, 39, 60]

$$\theta^{\prime } = \sum\limits_{\alpha = 0}^{6} {h_{\alpha } }$$
(24)

2.2 Boundary conditions

Since the model’s accuracy is dependent on the boundary conditions (BC), they are a critical component of numerical modeling. The BCs of the PDF in TLBM are specified to correspond to the macroscopic BC of the fluid, i.e.\(\begin{array}{*{20}l} {\vec{u},} \hfill & {p^{\prime },} \hfill & {\theta^{\prime }} \hfill \\ \end{array}.\) We applied four types of boundary conditions, (i) the macroscopic no-slip BC, which is equivalent to bounce back BC in the LBM; (ii) the velocity inflow BC; (iii) outflow BC; and (iv) free-slip BC at the top of the domain. The implementation of the boundary conditions is shown in Fig. 2. The prescribed inflow boundary condition uses observed values of wind profiles and in this case is a constant wind velocity. Details on the open boundary condition and free-slip boundary conditions are discussed in the literature [1, 4, 13,14,17, 25]. Here we list the free-slip, periodic, and open boundary conditions used in this study for the velocity MRT model, the boundary condition are in similar form for the temperature component MRT (see Fig. 1 for reference of lattice directions).

Fig. 2
figure 2

Schematic illustration of the computational domain and boundary conditions for the simulations. The inflow boundary conditions are prescribed according to the flow and temperature profiles, outflow boundary conditions for wind and temperature are open, and the surface boundary conditions are no-slip for velocity and adiabatic for temperature. The top boundary conditions are free-slip for wind and adiabatic for temperature

$${\text{Top}}\,{\text{free-slip boundary conditions}},\,\left\{ {\begin{array}{*{20}c} {f_{6}= f_{5} } \\ {\begin{array}{*{20}c} {f_{13}= f_{11} } \\ {f_{14}= f_{12} } \\ \end{array} } \\ {\begin{array}{*{20}c} {f_{17}= f_{15} } \\ {f_{18}= f_{16} } \\ \end{array} } \\ \end{array} } \right.,$$
(25)
$${\text{North}}\,\left( N \right)\,{\text{and}}\,{\text{south}}\,\left( {\text{S}} \right)\,{\text{periodic}}\,{\text{boundary}}\,{\text{conditions}},\,\left\{ {\begin{array}{*{20}c} {f_{4,N}= f_{4,S} } \\ {\begin{array}{*{20}c} {f_{9,N}= f_{9,S} } \\ {f_{10,N}= f_{10,S} } \\ \end{array} } \\ {\begin{array}{*{20}c} {f_{16,N}= f_{16,S} } \\ {f_{18,N}= f_{16,S} } \\ \end{array} } \\ \end{array} } \right. ,$$
(26)
$${\text{Prescribed}}\,{\text{boundary}}\,f_{\alpha } = \rho_{0} \omega_{\alpha } \left[ {1 + \frac{{c_{\alpha } .\vec{u}}}{{c_{s}^{2} }} + \frac{{(c_{\alpha } .\vec{u})^{2} }}{{2c_{4}^{2} }} + \frac{{\vec{u}^{2} }}{{2c_{s}^{2} }}} \right],\,\alpha = 0, \ldots ,18$$
(27)

where \(\vec{u}\) are the known wind velocity at west and east boundaries.

The arbitrary curved boundary condition will be described in detail since it is critical for this study due to the complexity of the ground surface in atmospheric flows. We have extended Guo’s [17] curved boundary condition to arbitrary 3D terrain. First the three dimensional terrain surface is triangulated into many small triangles by drawing southwest to northeast diagonal lines for each ground surface square. Each triangle is an approximation of the ground surface. The terrain surface is preprocessed and all the spatial coordinates for all the triangles are stored, and the intersection point coordinates for each lattice lines are also stored. At this point, all the lattice line intersections with the ground surface is treated as the same in Guo’s curved boundary algorithm [17].

The viscous no-slip surface BC is realized by a simple bouncing back of the PDF in the lattice directions. On a flat surface, the second order accuracy of the no-slip BC is achieved by arranging the physical boundary at the half height of the first computation grid. The specification of an arbitrary curved no-slip boundary condition is much more complex, which, for solid surfaces, has been developed by several researchers [17, 61, 62, 18]. In this research, we use the Guo et al. [17] BC for a curved boundary due to its more robust features that can be applied in both velocity and temperature. Yan and Zu [25] applied this curved BC for a coupled flow and heat transfer problem that obtained good results. The Guo et al. [17] curved BC is based on an extrapolation method and is of second order accuracy. In this method, the PDF for velocity or temperature is divided into equilibrium and non-equilibrium parts. The equilibrium PDF at the solid node (Fig. 3, w node) right below the corresponding boundary node is approximated by extrapolation of the corresponding fluid nodes (f, and ff nodes) with a known boundary point (Fig. 3, b node) wind velocity (\(\vec{u}_{b}\) = 0 non-moving boundary). The non-equilibrium PDFs are extrapolated using the non-equilibrium PDF from the corresponding neighbor nodes in the fluid (Fig. 3, f, and ff nodes). The final assembled PDF for the boundary wall node (w) uses the LBM Eqs. (5) and (15) for wind and temperature respectively.

Fig. 3
figure 3

A schematic diagram showing physical boundary (curve) and different grid nodes, where the triangles are boundary points in the collision process, open circles are for fluid points, and solid circles (boundary nodes) are the nodes below the physical boundary

The above description is put into mathematical equations using Fig. 3 as a reference. The fraction of intersected distance \(\delta\) is defined by

$$\delta = \left| {\frac{{\vec{x}_{f } - \vec{x}_{b} }}{{\vec{x}_{f} - \vec{x}_{w} }}} \right|.$$
(28)

The extrapolation of the wind speed and temperature at the boundary node (w) are determined by

$$\left\{ {\begin{array}{*{20}l} {\vec{u}_{w} = \vec{u}_{b} + \left( {\delta - 1} \right)\vec{u}_{f} /\delta } \hfill & {\delta \ge 0.75} \hfill \\ {\vec{u}_{w} = 2\vec{u}_{b} + \left( {\delta - 1} \right)\vec{u}_{ff} /\left( {1 + \delta } \right) } \hfill & {\delta \ge 0.75} \hfill \\ \end{array} } \right.$$
(29)

and

$$\left\{ {\begin{array}{*{20}l} {\theta_{w}^{'} = \theta_{b}^{'} + \left( {\delta - 1} \right)\theta_{f}^{'} /\delta } \hfill & {\delta \ge 0.75} \hfill \\ {\theta_{w}^{'} = 2\theta_{b}^{'} + \left( {\delta - 1} \right)\theta_{ff}^{'} /\left( {1 + \delta } \right)} \hfill & {\delta \ge 0.75} \hfill \\ \end{array} } \right..$$
(30)

The equilibrium PDFs for the boundary node (w) can then be computed using the following equations, for velocity (29) and temperature (30), respectively,

$$f_{\alpha }^{eq} = \rho_{0} \omega_{\alpha } \left[ {1 + \frac{{c_{\alpha } .\vec{u}_{w} }}{{c_{s}^{2} }} + \frac{{(c_{\alpha } .\vec{u}_{w} )^{2} }}{{2c_{4}^{2} }} + \frac{{\vec{u}_{w}^{2} }}{{2c_{s}^{2} }}} \right],$$
(31)
$$h_{\alpha }^{eq} = \omega_{\alpha } \theta^{\prime}\left[ {1 + \frac{{c_{\alpha } .\vec{u}_{w} }}{{c_{s}^{2} }}} \right],$$
(32)

where \(c_{\alpha }\) is the lattice vector defined in (4) and \(\omega_{\alpha }\) is the weight factors in all lattice directions defined in (16).

The non-equilibrium part of the PDFs for velocity and temperature at the boundary nodes are extrapolated by

$$f_{\alpha } \left( {\vec{x}_{w} ,t} \right) = \left\{ {\begin{array}{*{20}l} {f_{\alpha } \left( {\vec{x}_{f} ,t} \right)} \hfill & {\delta \ge 0.75} \hfill \\ {\delta f_{\alpha } \left( {\vec{x}_{f} ,t} \right) + \left( {1 - \delta } \right) f_{\alpha } \left( {\vec{x}_{ff} ,t} \right)} \hfill & {\delta \ge 0.75} \hfill \\ \end{array} } \right.$$
(33)

It should be noted that the formulations for different \(\delta\) are used to avoid numerical instability. Finally the equilibrium and non-equilibrium part of PDFs at the boundary node are used for BCs for the PDF, \(f_{\alpha }^{ + } \left( {\vec{x}_{w} ,t} \right)\) for the post-collision step, i.e.,

$$f_{\alpha }^{ + } \left( {\vec{x}_{w} ,t} \right) = f_{\alpha }^{eq} \left( {\vec{x}_{w} ,t} \right) + \left( {1 - \frac{1}{\tau }} \right)f_{\alpha } \left( {\vec{x}_{w} ,t} \right).$$
(34)

2.3 Subgrid turbulence parameterization

In this research, the Lilly-Smagorinsky [63, 65] turbulence model is used. It uses the eddy viscosity, which is related to the local strain rate tensor, in analogy to the molecular momentum diffusion determined by molecular viscosity. The equation for total momentum diffusion at subgrid scales is determined by a total effective viscosity (\(\nu_{total}\)) that includes molecular viscosity (\(\nu\)) and turbulent viscosity (\(\nu_{t}\)):

$$\nu_{total} = \nu + \nu_{t} = \left( {C\Delta } \right)^{2} \bar{S},$$
(35)

where C is the Smagorinsky constant, which is taken as 0.1, Δ the filter size that is taken as grid size, and \(\bar{S}\) is the magnitude of the filtered strain rate tensor

$$\bar{S} = \sqrt {2S_{ij} S_{ij} } ,$$
(36)

where \(S_{ij} = \frac{1}{2}\left( {\frac{{\partial u_{i} }}{{\partial u_{j} }} + \frac{{\partial u_{j} }}{{\partial u_{i} )}} } \right)\). The strain rate tensor components can be computed directly from the non-equilibrium moments [28]:

$$\begin{array}{*{20}l} {S_{xx} = - \frac{1}{{38\rho_{0} dt}}\left( {s_{1} m_{1} + 19s_{9} m_{9} } \right),} \hfill \\ {S_{yy,zz} = - \frac{1}{{76\rho_{0} dt}}\left( {2s_{1} m_{1} - 19s_{9} (m_{9} \mp 3m_{11} } \right),} \hfill \\ {S_{xy,yz,zx} = - \frac{{3s_{9} }}{{2\rho_{0} dt}}m_{13,14,15} .} \hfill \\ \end{array}$$
(37)

Note that in implementing the Smagorinsky subgrid model in LBM, the strain rate tensor is computed from the moments directly, instead of from the flow velocities which saves computational time. For the subgrid heat fluxes, we use the turbulent Prandtl number (Pr = 0.7) to compute the turbulent heat diffusivity (κt)

$$\kappa_{t} = \frac{{\nu_{t} }}{{P_{r} }}.$$
(38)

The relaxation time for the thermal LBM Eq. (11) is adjusted to account for the subgrid turbulence.

3 Results

As in any other atmospheric numerical model, the TLBM simulation results and the actual flow have to go through a scale transformation. In addition to the domain of the real flow, which has to be scaled to the model, the initial and boundary conditions also have to be scaled accordingly. After the model simulation, the results are converted back to the real atmospheric flow domains using the scaling relationships in Eq. (1). It should be noted that we have tested different physical grid sizes in the range of 1–50 m for various flows such as 2 m resolution in urban and 50 m in a larger complex terrain domains. The results (not shown here) of varied grid resolutions from 1 to 50 m (much smaller than molecular speed of atmosphere) does not affect the results.

3.1 Lee flow regimes with an inversion cap and neutral boundary layer

The simple ridge set-up is shown in Fig. 2 (300 m height) with a horizontal half-width of 1.5 km. The boundary conditions are also shown in the Fig. 2. A neutrally stratified layer is setup between the ground and inversion layer, and an inversion cap is located between the boundary layer and the stably stratified upper layer. This is a more realistic condition for smaller scale lee-wave development that often happens in nature, where a neutral boundary layer develops due to surface layer mixing.

Using the laboratory experiments of Knigge et al. [53] as guidance, the following parameters were used for the simulation. The first non-dimensional parameter is the obstacle height, defined by H/Zi, where H is the ridge height and the Zi is the neutral layer height. The second non-dimensional parameter is the inversion Froude number, defined by

$$F_{i} = \frac{U}{{\sqrt {\frac{{gz_{i } \Delta \theta }}{{\theta_{1} - \theta_{0} }}} }},$$
(39)

where U is mean wind speed, \(\Delta \theta\) is the potential temperature jump at the inversion cap at the top of the neutral layer of height Zi, and \(\theta_{0}\) is a background temperature taken as zero. The reference temperature is taken as 290 K. The third non-dimensional parameter is the ridge Froude number defined by

$$F_{H} = \frac{U}{NH} ,$$
(40)

where H is the ridge height, and N is the Brunt Väisälä frequency defined as follows:

$$N = \left[ {\frac{g}{{\left( {\theta_{1} - \theta_{0} } \right)}}\frac{d\theta }{dz}} \right]^{1/2}$$
(41)

The domain setup for this simulation is as follows: 501, 21, and 101 grid points in x, y, and z, respectively, and dx = dy = dz = 20 m, and H = 300 m. In this setup, the scaling parameters are l0 = 20, t0 = 0.2 and u0 = 100. The inflow wind speed was scaled with the same ratio of 100, providing a model inflow velocity of u = 0.1c, where c is the lattice velocity. The Mach numbers are 0.03 for the physical flow and 0.173 for the numerical model. This value of Mach number has been tested by Wang et al. [39] in their study and produced correct results. In order to compare with previous numerical modeling [48] and laboratory results [53], we use a similar idealized ridge height h(x) of cosine shape:

$$h\left( x \right) = H\left[ {1 + \cos \left( {Kx} \right)} \right]/2,$$
(42)

where K = 2π/L, and L = 3 km is the width of the ridge (Fig. 2).

To demonstrate the capability of the model in simulating flow regimes under different atmospheric stability parameters and inversion heights, we first show three representative simulations with varied physical parameters that resulted in three different flow regimes. The physical similarity parameters were defined for the three cases of simulations as listed in Table 1 and were selected based on the numerical simulations of Vosper [48] and laboratory water channel experiments of Knigge et al. [53]. These three cases are for different flow phenomena, including the appearance of lee-waves in which no reversal u component is observed in the wake area, rotors in which reversal u component is observed in the wake area, and hydraulic jumps in which there is a steep gradient of u velocity (10 ms−1per 100 m increments) at the temperature cap and large turbulent intensity (> 1) in the wake area. The three flow regimes are presented in Fig. 4. The top panel xz cross section (Fig. 4a) showed that transient, low amplitude lee-waves developed in the simulation. However, there was no reversal of flow under the wave train. The rotor case is shown in the middle panel (Fig. 4b), in which there are greater wave amplitudes than the top panel. Also, a rotor and near-ground recirculation is developed at the lee side of the ridge. The hydraulic jump case is shown in the bottom panel (Fig. 4c). In this case there is much greater wave amplitude than in the top and middle panels, and upper level flows of high velocity penetrated the wake region near the ground surface. The vortices elongated in the vertical direction, and a vortex was present near the ridge peak. In all cases, the nonlinear lee-flow phenomena were frequently transient. For the xy cross sections, the flow fields are consistent to their flow regimes with very small turbulence variations in y direction because the terrain are a 2D ridge without variation in y direction. However, the 3D dimension simulation is critically necessary for producing turbulent flow field simulation since the turbulent vorticity transform is a 3D process.

Table 1 Similarity parameters for two lee flow cases shown in Fig. 4
Fig. 4
figure 4

The TLBM results for the parameters shown in Table 1. The x–z cross sections are at y = 0.2 km, and x–y cross sections are at z = 0.2 km. The top panel (a) shows that the lee-waves are generated for Fi = 0.6 and H/zi = 0.5. The middle panel (b) shows rotors generated for Fi = 0.4 and H/zi = 0.7, and lower panel (c) shows that hydraulic jumps are generated for Fi = 0.3 and H/zi = 0.6

The flow regimes were also established in a range of physical similarity parameters as other researchers have done [48, 53]. In this analysis, we fixed Fr, U/NL, and H/L, to values similar to those used by Vosper [53]. By doing simulations with varying Fi and H/zi, an array of flow patterns were derived (Fig. 5). Our TLBM simulations produced flow patterns of lee-waves, rotors, and hydraulic jumps, similar to those observed by Vosper [48] and Knigge et al. [53] over an equivalent range of Fi and H/Zi. The results indicated that a high inversion height Zi with moderate Fi promote the generation of lee-waves, while a medium to low inversion height zi with medium to high Fi promote rotors, and a moderate to low inversion height coupled with low Fi were derived (Fig. 5). Some differences in the flow patterns were observed in the region of Fi > 0.8 and H/zi > 0.5 compared to the results of [48], in that our simulation always produced some lee-waves vis-à-vis no lee-waves in [48]. The TLBM simulations are closer to the results observed in the water channel by Knigge et al. [53], wherein the laboratory results also show lee-waves in the same physical parameter range.

Fig. 5
figure 5

Lee side flow regime generated by TLBM simulations. The following physical parameters were fixed in these simulation: H/L = 0.04; U/NL = 0.08; and Fr = U/NH = 1.2. The green colored symbols represent the results from laboratory experiments by Knigge et al. [53]. The red colored symbols represent the results from Vosper’s numerical simulation [48]

In this simulation study, we kept the Reynolds number in the range of 15,000 to 24,000 in concurrence with the laboratory study of Knigge et al. [53]. It is important to point out the differences in the laboratory setup [53] and in this numerical simulation. The laboratory test [53] used a towing ridge model, in which only the model surface is a no-slip boundary condition, and other the channel flow is at rest before the towing model reaches the location. On the contrary, in this numerical simulation the entire ground surface in the domain is a no-slip boundary. The consequence is that the laboratory flows at Re = 20,000 were mostly laminar, except for sporadic turbulence at the immediate lee side of the ridge. The literature indicated [66], for this type of the towing model laboratory setup, the critical Re for the transition from laminar to turbulence is 50,000. Observations [67] and numerical simulations [68] indicated that boundary layer separation and turbulence play very important roles in the formation of lee-wave and rotors. The 2D version of our model simulations (not shown here) did not produce much turbulence except in the wake region because the 2D model suppressed turbulence production. Obviously, a detailed 3D simulation study is needed for investigating complexities such as the interaction of boundary layer turbulence and lee-waves. The waves and rotors produced by buoyancy acted as a transport mechanism which increased the dimensions of the turbulent wake region in which it was taller and longer at the lee side. The wave and turbulence interaction also probably enhanced the turbulent region in the lee side boundary layer.

To compare our simulations to the laboratory results of [53], we have ran our 3D model simulation in the laminar regime by setting the Re = 2000 while preserving keeping the other parameters constant. The results are shown in Fig. 6. For the large lee side flow structures, the laminar simulation results are in better agreement with the laboratory test which is not surprising as the numerical simulation is in a laminar flow regime. In this laminar regime, only shallow laminar boundary layers are developed at the frontal and lee sides of the ridge. The features of the lee waves, rotors and hydraulic jump structures are stronger than those for the turbulent regime. This can be explained by the vigorous turbulent diffusion process in the turbulent boundary layer developed in the large Reynold number.

Fig. 6
figure 6

The stratified flow in the laminar regime. The Re = 2000 for all three flow regimes, other parameters are all the same as in Fig. 4. The xy planes are not shown because the terrain is same in y direction

One point should be noted here that a damping layer near the top boundary was not used. The damping layer is often used in lee wave numerical modeling using NS equations to avoid wave reflection by the top boundary which does not appear to be a problem in this MRT based LBM modeling simulation.

3.2 Turbulent characteristic of the simulation results

Turbulent flows in the atmosphere are always an important subject to discuss since the turbulence dominates the momentum, heat, and scalar transport in the atmospheric boundary layer. In this simulation, we used the Lily-Smagorinsky turbulence model for the subgrid scale. To evaluate the performance of the turbulence model, we plot the power spectra of a specific location in the simulation domain. The point coordinates are [x, y, z] = [4.5, 0.2, 0.3 km], where the turbulence produced by waves, rotors, or hydraulic jumpss are vigorous. In this analysis, a time series of winds is transformed into a spectral representation using the Fourier transform:

$$S\left( f \right) = \mathop \smallint \limits_{0}^{\infty } R_{a} \left( t \right)\exp \left( { - ift} \right)dt,$$
(43)

where \(R_{a} (t)\) is the auto-correlation function of the wind component a, f the cyclic frequency, t the time. Figure 7 shows an un-smoothed power spectra for the u, v, w wind components for different flow simulations as depicted in Fig. 4. The power spectra for all the wind components show an inertial subrange as has been observed in most atmospheric turbulent flows [59], indicating a TKE cascading process from large scale eddies to small scale eddies. The turbulence power spectra for the u component is greater than those for the v and w component which indicates greater turbulent kinetic energy (TKE). The lower frequency range length of the simulation.

Fig. 7
figure 7

The power spectra of u, v, and w for simulated time series at coordinate [4.5, 0.2, 0.3 km], where black color for wave only case, green for rotor case, and red for hydraulic jump case corresponding to Fig. 4. The xy planes are not shown because the terrain is same in y direction

In order to compare the turbulent flows at the lee-side of the ridge, we have computed averaged turbulent intensities for entire flow fields. First the TKE for each computation grid was computed using the fluctuation part of the time series. i.e.:

$$u_{i} = \bar{u}_{i} + u_{i}^{'} , \quad i = 1,2,3\quad {\text{for}}\;\begin{array}{*{20}l} {u,} \hfill & {v,} \hfill & w \hfill \\ \end{array} ,$$
(44)

Then the turbulent intensity (TI) is computed as follows:

$$TI = \frac{2 \cdot TKE}{mean\,wind\,speed} = \frac{{\sqrt {\left( {u^{\prime}} \right)^{2} + \left( {v^{\prime}} \right)^{2} + \left( {w^{\prime}} \right)^{2} } }}{{\sqrt {\left( {\bar{w}} \right)^{2} + \left( {\bar{w}} \right)^{2} + \left( {\bar{w}} \right)^{2} } }}.$$
(45)

The TI is plotted in Fig. 8 for the xz cross section at y = 0.2 km. Since the TI in the y direction had very little changes, the xy cross section is not plotted. Comparing with three different flow regimes, the turbulent intensity is much higher for the wave and rotor cases. This indicated that the hydraulic jump case is the most effective in terms of kinetic energy dissipation for the stratified flow cases. It is also interesting to point out the TI above the ridges also displayed different values. This indicated that the stratification also affects the entire computation domain, not only at the lee side of the ridge.

Fig. 8
figure 8

Average turbulent intensities corresponding to simulations delayed in Fig. 4. a For wave only case, b for rotor case, and c for hydraulic jump case. The xy planes are not shown because the terrain is same in y direction

It is should be noted that the fully three-dimensional model is important for turbulent boundary layer simulation. In our previous 2D MRTLBM simulations (not shown here), the model captured the basic structure of lee-side flow, but the turbulence was very week for the 2D simulation. The turbulent boundary layer flow is a three-dimensional process, two-dimensional will restrict the turbulent vortex stretching in one y direction (north–south) so that the turbulent is reduced unrealistically.

4 Summary and Conclusions

A novel large-eddy simulation model is being developed at the Army Research Laboratory for simulating atmospheric flows based on the lattice Boltzmann method. To our knowledge this is the first application of a LBM model for simulating stratified atmospheric flow over a hill. The waves, rotors, and hydraulic jumps at the lee side were successfully simulated with the model. The results compared well the results of previous laboratory experiments as well as a traditional atmospheric numerical model based on finite-difference formulations, terrain following vertical coordinate systems and incompressible NS equations. Various flow regimes at the lee side of the hill including, lee-waves, rotors, and hydraulic jump, were reproduced in multiple runs of the LBM model in the physical parameter ranges used for previous laboratory and numerical experiments.

The LBM model was described in detail in the paper, including the basic formulation based on statistical principles and associated boundary conditions for simulating atmospheric stratified flow problems. The subgrid turbulence parameterization was also described. The LBM model offers simplicity in development, simplified treatment of complex boundaries, and intrinsic massive parallelism. We believe this method will be useful for many atmospheric applications, especially when very complex boundary effects have to be resolved. We are in the process of extending LBM to three-dimensional, more realistic atmospheric flows in complex terrain, and urban environments.

It should be cautioned that this model currently does not include variation of ground surface temperature, and a radiative transfer model. For a longer period of simulation, the radiative transfer process and associated land surface model is definitely required. We are in the process of developing those model components for more realistic atmospheric boundary layer simulations.