在文献中会经常看到各种不同形式的 Navier-Stokes 方程,本文梳理了一些文献中常见的不可压缩流体 Navier-Stoke 方程标记形式,希望能帮助各位 Foamer 加深对 Navier-Stokes 方程的理解。

预先知识

先来看看张量运算中的一些标记方法。

微分符号的欧拉表示法

欧拉表示法用下标表示偏微分符号,如

\[ \begin{equation} \partial_t \mathbf u \equiv \frac{\partial \mathbf u}{\partial t} \end{equation} \]

求和的下标表示法

下标表示法又称爱因斯坦标记法,同一个下标符号出现两次,则表示这项为求和,如:

\[ \begin{equation} a_i b_i \equiv \sum_{i=1}^{3}{a_i b_i} = a_1 b_1+a_2 b_2+a_3 b_3 \end{equation} \]

又如

\[ \begin{equation} \frac{\partial u_i}{\partial x_i} \equiv \sum_{i=1}^{3} \frac{\partial u_i}{\partial x_i} = \frac{\partial u_1}{\partial x_1}+\frac{\partial u_2}{\partial x_2}+\frac{\partial u_3}{\partial x_3} \end{equation} \]

再比如常见的动量方程中的对流项

\[ \begin{equation} \frac{\partial (u_i u_j)}{\partial x_j} \equiv \sum_{j=1}^{3} \frac{\partial (u_i u_j)}{\partial x_j} = \frac{\partial (u_i u_1)}{\partial x_1}+\frac{\partial (u_i u_2)}{\partial x_2}+\frac{\partial (u_i u_3)}{\partial x_3}, \qquad i=1,2,3 \end{equation} \]

对于不可压缩流体,根据连续性方程($\partial u_j / \partial x_j = 0$),则动量方程的对流项还可以写为

\[ \begin{equation} \frac{\partial (u_i u_j)}{\partial x_j} = u_j \frac{\partial u_i}{\partial x_j} \equiv u_1 \frac{\partial u_i}{\partial x_1}+u_2\frac{\partial u_i}{\partial x_2}+u_3\frac{\partial u_i}{\partial x_3} , \qquad i=1,2,3 \end{equation} \]

张量运算的矢量表示法

矢量表示法是张量运算中的标记方法,也是 OpenFOAM 用的表示方法,用粗体表示矢量。通常结合微分运算符号出现,如:

\[ \begin{equation} \nabla \cdot \mathbf u \equiv \frac{\partial u_1}{\partial x_1}+\frac{\partial u_2}{\partial x_2}+\frac{\partial u_3}{\partial x_3} \end{equation} \]

再如动量方程中的对流项,OpenFOAM 中常见的形式如下:

\[ \begin{equation} \nabla \cdot (\mathbf u \otimes \mathbf u) \equiv \left[ \begin{aligned} \sum_{j=1}^{3} \frac{\partial (u_1 u_j)}{\partial x_j} \\ \sum_{j=1}^{3} \frac{\partial (u_2 u_j)}{\partial x_j} \\ \sum_{j=1}^{3} \frac{\partial (u_3 u_j)}{\partial x_j} \end{aligned}\right] = \left[ \begin{aligned}\frac{\partial (u_1 u_1)}{\partial x_1}+\frac{\partial (u_1 u_2)}{\partial x_2}+\frac{\partial (u_1 u_3)}{\partial x_3} \\ \frac{\partial (u_2 u_1)}{\partial x_1}+\frac{\partial (u_2 u_2)}{\partial x_2}+\frac{\partial (u_2 u_3)}{\partial x_3} \\ \frac{\partial (u_3 u_1)}{\partial x_1}+\frac{\partial (u_3 u_2)}{\partial x_2}+\frac{\partial (u_3 u_3)}{\partial x_3} \end{aligned} \right] \end{equation} \]

上式中的 $\mathbf u \otimes \mathbf u$ 表示张量积,通常简写为 $\mathbf u \mathbf u$。

对不可压缩流体,对流项还可以表示为:

\[ \begin{equation} \nabla \cdot (\mathbf u \mathbf u) = (\mathbf u \cdot \nabla)\mathbf u \equiv \left[ \begin{aligned}u_1\frac{\partial u_1}{\partial x_1}+u_2\frac{\partial u_1}{\partial x_2}+u_3\frac{\partial u_1}{\partial x_3} \\ u_1\frac{\partial u_2}{\partial x_1}+u_2\frac{\partial u_2}{\partial x_2}+u_3\frac{\partial u_2}{\partial x_3} \\ u_1\frac{\partial u_3}{\partial x_1}+u_2\frac{\partial u_3}{\partial x_2}+u_3\frac{\partial u_3}{\partial x_3} \end{aligned} \right] \end{equation} \]

这种形式中,$(\mathbf u \cdot \nabla)$ 是一个微分算子,定义如下

\[ \begin{equation} (\mathbf u \cdot \nabla) \equiv \left( u_1\frac{\partial}{\partial x_1}+u_2\frac{\partial}{\partial x_2}+u_3\frac{\partial}{\partial x_3} \right) \end{equation} \]

Note

微分算子 $(\mathbf u \cdot \nabla)​$ 单独存在没有意义,必须作用在其他场量上才有意义。

张量运算符的缩写表示

张量运算符用其对应的英文单词缩写表示,如

\[ \begin{equation} \operatorname{grad}\phi \equiv \nabla \phi \end{equation} \]

\[ \begin{equation} \operatorname{div}\mathbf u \equiv \nabla \cdot \mathbf u \end{equation} \]

\[ \begin{equation} \operatorname{div}\operatorname{grad}\phi \equiv \nabla \cdot (\nabla \phi) = \nabla^2\phi = \Delta \phi \end{equation} \]

\[ \begin{equation} \operatorname{curl}\mathbf u \equiv \nabla \times \mathbf u \end{equation} \]

不可压缩 Navier-Stokes 方程

在了解一些微分及张量运算的表示方法后,我们再来看不可压缩流体中 Navier-Stokes 方程的几种形式。

下标表示

连续性方程

\[ \begin{equation} \frac{\partial u_i}{\partial x_i} = 0 \end{equation} \]

动量方程

\[ \begin{equation} \frac{\partial u_i}{\partial t} + \frac{\partial (u_i u_j)}{\partial x_j} = - \frac{1}{\rho} \frac{\partial p}{\partial x_i} + \frac{\partial}{\partial x_j}\left[\nu \left( \frac{\partial u_i}{\partial x_j} + \frac{\partial u_j}{\partial x_i}\right)\right] \end{equation} \]

\[ \begin{equation} \frac{\partial u_i}{\partial t} + u_j \frac{\partial u_i}{\partial x_j} = - \frac{1}{\rho} \frac{\partial p}{\partial x_i} + \frac{\partial}{\partial x_j}\left[\nu \left( \frac{\partial u_i}{\partial x_j} + \frac{\partial u_j}{\partial x_i}\right)\right] \end{equation} \]

矢量表示

连续性方程

\[ \begin{equation} \nabla \cdot \mathbf u = 0 \end{equation} \]

动量方程

\[ \begin{equation} \frac{\partial \mathbf u}{\partial t} + \nabla \cdot (\mathbf u \mathbf u) = -\frac{1}{\rho}\nabla p + \nabla \cdot \left\{\nu \left[ \nabla \mathbf u + (\nabla \mathbf u)^T \right] \right\} \end{equation} \]

\[ \begin{equation} \frac{\partial \mathbf u}{\partial t} + (\mathbf u \cdot \nabla) \mathbf u = -\frac{1}{\rho}\nabla p + \nabla \cdot \left\{\nu \left[ \nabla \mathbf u + (\nabla \mathbf u)^T \right] \right\} \end{equation} \]

缩写表示

连续性方程

\[ \begin{equation} \operatorname{div} \mathbf u = 0 \end{equation} \]

动量方程

\[ \begin{equation} \frac{\partial \mathbf u}{\partial t} + \operatorname{div} (\mathbf u \mathbf u) = -\frac{1}{\rho} \operatorname{grad} p + \operatorname{div} \left\{\nu\left[\operatorname{grad}\mathbf u + (\operatorname{grad}\mathbf u)^T\right]\right\} \end{equation} \]

\[ \begin{equation} \frac{\partial \mathbf u}{\partial t} + (\mathbf u \cdot \operatorname{grad} )\mathbf u = -\frac{1}{\rho} \operatorname{grad} p + \operatorname{div} \left\{\nu\left[\operatorname{grad}\mathbf u + (\operatorname{grad}\mathbf u)^T\right]\right\} \end{equation} \]

简化形式

若运动粘度 $\nu$ 为常量,则粘性项可以被简化,以矢量表示法为例

\[ \begin{equation} \nabla \cdot \left\{\nu \left[ \nabla \mathbf u + (\nabla \mathbf u)^T \right] \right\} = \nu \nabla \cdot \left[ \nabla \mathbf u + (\nabla \mathbf u)^T\right] \end{equation} \]

对于不可压流体,有

\[ \begin{equation} \nabla \cdot (\nabla \mathbf u)^T = \nabla (\nabla \cdot \mathbf u) = 0 \end{equation} \]

粘性项进一步简化为

\[ \begin{equation} \nu \nabla \cdot \left[ \nabla \mathbf u + (\nabla \mathbf u)^T\right] = \nu \nabla^2 \mathbf u \end{equation} \]

于是有另一种形式的 Navier-Stokes 方程

\[ \begin{equation} \frac{\partial \mathbf u}{\partial t} + (\mathbf u \cdot \nabla) \mathbf u = -\frac{1}{\rho}\nabla p + \nu \nabla^2 \mathbf u \end{equation} \]

注意

实际上对于高雷诺数问题,RANS 或 LES方程中 $\nu$ 应该为 $\nu_{\mathit{eff}} = \nu + \nu_t$ 。其中的 $\nu_t$ 不是常量,因此不能对粘性项做上述简化。OpenFOAM 将粘性项看作有效雷诺应力的散度($\nabla \cdot \mathbf R_{\mathit{eff}}$)求解,具体可参考这篇文章

其他

Navier-Stokes 方程更一般的形式为柯西动量方程,其形式如下:

\[ \begin{equation} \frac{D \mathbf{u}}{D t} = \frac{1}{\rho} \nabla \cdot \boldsymbol{\sigma} \end{equation} \]

其中左端项为速度的物质导数

\[ \begin{equation} \frac{D \mathbf u}{D t} = \frac{\partial \mathbf u}{\partial t} + (\mathbf u \cdot \nabla) \mathbf u \end{equation} \]

$\boldsymbol \sigma$ 为柯西张量,包含压力和剪切应力,可写作

\[ \boldsymbol \sigma = -p \mathbf I + \boldsymbol \tau \]

这里的 $\mathbf I$ 是单位张量,$\boldsymbol \tau$ 为剪切应力张量。

对于不同类型的流体, $\boldsymbol \tau$ 的表达形式不同,柯西动量方程可以化为其他的公式。如对不可压牛顿流体,其与速度的应变张量(strain rate tensor)成线性关系

\[ \begin{equation} \boldsymbol \tau = 2 \mu \mathbf S = \mu \left[\nabla \mathbf u + (\nabla \mathbf u)^T\right] \end{equation} \]

提示

$\mathbf S$ 为速度梯度分解出的对称张量,可参考这篇文章

代入柯西动量方程并展开,得到不可压缩流体的动量方程

\[ \begin{equation} \begin{aligned} \frac{\partial \mathbf u}{\partial t} + (\mathbf u \cdot \nabla) \mathbf u &= \frac{1}{\rho} \nabla \cdot \left\{-p \mathbf I + \mu \left[\nabla \mathbf u + (\nabla \mathbf u)^T\right]\right\} \\ & = - \frac{1}{\rho}\nabla p + \nabla \cdot \left\{\nu \left[\nabla \mathbf u + (\nabla \mathbf u)^T\right]\right\} \end{aligned} \end{equation} \]