Wall function

Wall function#

The wall function models the velocity profile between two points of computational domain. The coupling with LES is then performed through velocity adjustments near wall boundaries.

Log Law#

Following the log wall of the wall, the average velocity profile for a determined terrain category, give its roughness can be written as (Davidson[1]):

(1)#\[u\left(z\right)=\frac{u^{*}}{\kappa} \mathrm{ln}\left(\frac{z}{z_{0}}\right)\]

where \(\kappa=0.41\) is the Von Kármán constant and \(z_{0}\) the roughness length. In a numerical simulation, the friction velocity \(u^{*}\) can be calculated from the tangential velocity at the reference point estabilished \(\mathrm{P_{N}}\):

(2)#\[u^{*} = \kappa u_{t,\mathrm{P_{N}}} \left[\mathrm{ln}\left(\frac{z_{\mathrm{P_{N}}}}{z_{0}}\right)\right]^{-1}\]

Note

One great use case for this approach is terrain category or roughness models. Because the roughness of the terrain can be modeled by varying the \(z_{0}\) value. Further details regarding how \(z_{0}\) models the terrain profile can be found in Atmospheric Boundary Layer

Thin boundary layer (TBL)#

A different approach used for a smooth wall representation consists on modeling the region between \(\mathrm{P_{0}}\) and \(\mathrm{P_{N}}\) through the thin boundary layer equation (TBL) for normal \(n\) and tangential \(t\) directions (Suga et al.[2]):

(3)#\[\frac{\partial}{\partial x_{n}}\left(\left(\nu+\nu_{\mathrm{e}}\right)\frac{\partial u_{t}}{\partial x_{n}}\right)=\frac{\partial u_{t}}{\partial t}+\frac{\partial}{\partial x_{n}}\left(u_{n} u_{t}\right)+\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}\]

where \(\nu_{\mathrm{e}}\) is the eddy-viscosity, which we assume to follow the Johnson-King mixing-length model with Van Driest damping function (Johnson and King[3]):

(4)#\[\nu_{\mathrm{e}}=\nu\kappa y^{+}\left(1 - e^{-\frac{y^{+}}{A^{+}}}\right)^{2}\]

where \(\kappa=0.41\) is the von Karman constant, and \(A^{+}=17\). For the implemented models, the TBL is simplified to:

(5)#\[\frac{\partial}{\partial x_{n}}\left(\left(\nu+\nu_{\mathrm{e}}\right)\frac{\partial u_{t}}{\partial x_{n}}\right)=+\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}\]

then:

(6)#\[\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\frac{\partial u_{t}}{\partial x_{n}}+\nu_{\mathrm{T}}\frac{\partial^{2}u_{t}}{\partial x_{n}^{2}} = +\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}\]

The distance \(h_{\mathrm{wm}}\) between \(\mathrm{P_{0}}\) and \(\mathrm{P_{N}}\) is divided in \(N\) points to which the EDP above is solved through a finite difference scheme:

(7)#\[\left[\nu_{\mathrm{T}}-\frac{h_{\mathrm{wm}}}{2N}\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\right]^{\left(i\right)}u_{t}^{\left(i-1\right)} - 2\nu_{\mathrm{T}}^{\left(i\right)}u_{t}^{\left(i\right)}+\left[\nu_{\mathrm{T}}+\frac{h_{\mathrm{wm}}}{2N}\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\right]^{\left(i\right)}u_{t}^{\left(i+1\right)} = \left(\frac{h_{\mathrm{wm}}}{N}\right)^{2}\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}^{(i)}\]

where \(\nu_{\mathrm{T}}=\nu+\nu_{\mathrm{e}}\)

(8)#\[\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}=\kappa u^{*}\left[1-\frac{2\left(A^{+}-x_{n}^{+}\right)}{A^{+}}e^{-\frac{x_{n}^{+}}{A^{+}}}+\frac{\left(A^{+}-2x_{n}^{+}\right)}{A^{+}}e^{-\frac{2x_{n}^{+}}{A^{+}}}\right]\]

The value for \(x_{n}^{+}\) in a \(i\) point is then \(x_{n}^{+}=\left(h_{\mathrm{wm}}i/N\right)\left(u^{*}/\nu\right)\).

Important

For equilibrium models, \(\partial p / \partial x_{t}\) is simply set to zero, while non-equilibrium models consider this on the equation.

Equilibrium models are suited for cases where the pressure’s gradients is small. For cases and places where this gradient is not negligible, a non-equilibrium model is advised.

The set of velocity equations generated can be solved with a TDMA (tridiagonal matrix algorithm) to which the velocity equation may be written as:

(9)#\[a_{\left(i\right)}u^{\left(i-1\right)} + b_{\left(i\right)}u^{\left(i\right)} + c_{\left(i\right)}u^{\left(i+1\right)} = d_{\left(i\right)}\]

since \(u^{\left(0\right)}=0\), \(a_{1}=0\) and:

(10)#\[a_{\left(i\right)} = \left[\nu_{\mathrm{T}}-\frac{h_{\mathrm{wm}}}{2N}\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\right]^{\left(i\right)}\]
(11)#\[b_{\left(i\right)} = -2\nu_{\mathrm{T}}^{\left(i\right)}\]
(12)#\[c_{\left(i\right)} = \left[\nu_{\mathrm{T}}+\frac{h_{\mathrm{wm}}}{2N}\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\right]^{\left(i\right)}\]
(13)#\[d_{\left(i\right)} = \left(\frac{h_{\mathrm{wm}}}{N}\right)^{2}\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}^{(i)}\]

For \(2\leq i \leq N-2\). We consider that \(u^{\left(N\right)}=u_{t,\mathrm{P_{N}}}\) and \(c_{\left(N-1\right)}=0\), hence:

(14)#\[d_{\left(N-1\right)} = \left(\frac{h_{\mathrm{wm}}}{N}\right)^{2}\frac{1}{\rho}\frac{\partial p}{\partial x_{t}}^{\left(N-1\right)} - \left[\nu_{\mathrm{T}}+\frac{h_{\mathrm{wm}}}{2N}\frac{\partial \nu_{\mathrm{T}}}{\partial x_{n}}\right]^{\left(N-1\right)}u_{t,\mathrm{P_{N}}}\]

The matrix of of a linear system is then written as:

\[ \left[ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } b_{\left(1\right)} & c_{\left(1\right)} & 0 & 0 & ... & 0 & 0 \\ a_{\left(2\right)} & b_{\left(2\right)} & c_{\left(2\right)} & 0 & ... & 0 & 0 \\ 0 & a_{\left(3\right)} & b_{\left(3\right)} & c_{\left(3\right)} & ... & 0 & 0 \\ 0 & 0 & a_{\left(4\right)} & b_{\left(4\right)} & ... & 0 & 0 \\ 0 & 0 & 0 & ... & a_{\left(N-2\right)} & b_{\left(N-2\right)} & c_{\left(N-2\right)} \\ 0 & 0 & 0 & ... & 0 & a_{\left(N-1\right)} & b_{\left(N-1\right)} \end{array} \right] \left[ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } u^{\left(1\right)} \\ u^{\left(2\right)} \\ u^{\left(3\right)} \\ u^{\left(4\right)} \\ u^{\left(N-2\right)} \\ u^{\left(N-1\right)} \end{array} \right] = \left[ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } d_{\left(1\right)} \\ d_{\left(2\right)} \\ d_{\left(3\right)} \\ d_{\left(4\right)} \\ d_{\left(N-2\right)} \\ d_{\left(N-1\right)} \end{array} \right] \]

For the first term, \(i=1\):

(15)#\[c_{\left(1\right)}^{'}=\frac{c_{\left(1\right)}}{b_{\left(1\right)}}\]
(16)#\[d_{\left(1\right)}^{'}=\frac{d_{\left(1\right)}}{b_{\left(1\right)}}\]

After which, the following coefficients up to \(N-1\) are calculated:

(17)#\[c_{\left(i\right)}^{'}=\frac{c_{\left(i\right)}}{b_{\left(i\right)}-a_{\left(i\right)}c_{\left(i-1\right)}^{'}}\]
(18)#\[d_{\left(i\right)}^{'}=\frac{d_{\left(i\right)}-a_{\left(i\right)}d_{\left(i-1\right)}^{'}}{b_{\left(i\right)}-a_{\left(i\right)}c_{\left(i-1\right)}^{'}}\]

Knowing that \(u_{t}^{\left(N\right)}=u_{t,\mathrm{P_{N}}}\), the remaining velocities are calculated backwards by:

\[u_{t}^{\left(i\right)}=d_{\left(i\right)}^{'}-c_{\left(i\right)}^{'}u_{t}^{\left(i+1\right)}\]

Along these lines, the friction velocity can be calculated with a second-order finnite difference scheme:

(19)#\[u^{*}=\sqrt{\nu \frac{\left(-3u_{t}^{(0)}+4 u_{t}^{(1)}-u_{t}^{(2)}\right)}{2\rho_{\mathrm{w}}h_{\mathrm{wm}}/N}}\]

Important

The implementation of wall models within IBM is directed on correcting the the near-wall regions velocities as described in IBM Wall Model.