第 2 章:流体力学控制方程
流动模型
| 控制体 |
空间固定 |
随流体运动 |
| 有限 |
积分守恒 |
积分非守恒 |
| 微元 |
微分守恒 |
微分非守恒 |
这里所谓“守恒型”和“非守恒型”是指同一个物理守恒定律采用了不同的数学表达方式。
二者在流场足够光滑时可以相互转换。
自变量与因变量
在控制方程中,自变量是空间坐标
(x,y,z)
与时间
t
流场中的物理量则是这些自变量的函数,例如
ρ=ρ(x,y,z,t)
u=u(x,y,z,t)
v=v(x,y,z,t)
w=w(x,y,z,t)
p=p(x,y,z,t)
T=T(x,y,z,t)
因此压强 p 同样是因变量,而不是预先给定的常数。
这些因变量并不全部相互独立。例如对于理想气体,
p=ρRT
因此 ρ,p,T 之间存在状态方程约束。
对于三维可压缩流,通常只需要五个独立的流场未知量,对应:
如果采用守恒变量,常写作
U=ρρuρvρwρE
这也是CFD所偏爱的解向量
需要注意:
“数值计算中直接求解的变量”和“流场中的因变量”并不是完全相同的概念。
例如压强 p 是因变量,但在可压缩流守恒格式中,通常不直接推进 p,而是由 ρ,ρE,ρu,ρv,ρw 和状态方程恢复得到。
物质导数
对于某个流场变量
ϕ=ϕ(x,y,z,t)
如果观察的是一个随流体运动的流体微团,那么它的位置本身满足
x=x(t),y=y(t),z=z(t)
因此沿该流体质点观察到的 ϕ 的变化率为
DtDϕ=∂t∂ϕ+u∂x∂ϕ+v∂y∂ϕ+w∂z∂ϕ
即
DtD=∂t∂+V⋅∇
其中
∂t∂ϕ
表示固定空间位置处由于流场本身随时间变化造成的变化,称为局部变化;
而
V⋅∇ϕ
表示流体质点运动到空间中具有不同 ϕ 值的位置而产生的变化,称为迁移变化(对流变化)。
因此物质导数并不是一种新的微积分运算,本质上来自多元函数的链式法则。
但更准确地说:
物质导数是沿流体质点在时空中的运动轨迹所取的方向导数。
守恒型方程的数学特征
判断一个方程是不是守恒型,最直接的办法不是看它是否“来自守恒定律”,而是看它能否写成
∂t∂U+∇⋅F=S
其中:
- U 是单位体积内的某个守恒量;
- F 是该守恒量的通量;
- S 是源项。
记方程中守恒量的单位为 x
U : x⋅m−3
F : x⋅m−2⋅s−1
S : x⋅m−3⋅s−1 (守恒量在 单位体积/固定空间微元 的变化速率)
其物理结构是
控制体内的积累+通过边界的净流出=内部产生
守恒型最重要的数学特征是:空间输运项以一个整体通量的散度形式出现。
例如
∇⋅(ρuV)
是守恒型的动量输运项,而
ρV⋅∇u
则不是直接的守恒形式。
非守恒型到守恒型到底转换了什么
以 x 方向动量方程中的惯性项为例:
ρDtDu
它描述的是:
跟随某个流体微团时,该微团的 x 方向动量变化。
将物质导数展开:
ρDtDu=ρ∂t∂u+ρV⋅∇u
但 CFD 中更希望得到
∂t∂(ρu)+∇⋅(ρuV)
因为:
ρu
才是单位体积的 x 方向动量。
因此整个转换的目标其实从一开始就已经确定:
把“速度的物质变化”改写为“动量在固定控制体中的积累 + 动量穿过控制面的通量”。
第一步使用乘积法则,把
ρ∂t∂u
改写成含有
∂t∂(ρu)
的形式。
目的不是单纯的代数变形,而是为了构造出真正的动量密度的时间变化率。
第二步将
ρV⋅∇u
改写成含有
∇⋅(ρuV)
的形式。
目的则是构造动量通量的散度。
这两个变换都会额外产生一些项,而这些额外项最后恰好组合成
u[∂t∂ρ+∇⋅(ρV)]
括号中的部分正是连续方程,因此等于零。
于是得到
ρDtDu=∂t∂(ρu)+∇⋅(ρuV)
所以:
非守恒型到守恒型的转换,本质上是利用质量守恒,把“跟随质点观察的变化”重新解释成“固定控制体中的积累与流出”。
为什么 CFD 特别重视守恒形式
对于一个网格单元,如果方程写成
∂t∂U+∇⋅F=S
那么对网格单元积分并使用 Gauss 定理后,空间项就会变成控制面上的通量。
相邻两个网格单元共享同一个面,因此一个单元流出的量恰好是另一个单元流入的量。
于是内部通量天然相互抵消。
这意味着数值离散之后仍然可以非常自然地保持
总流出=总流入
这也是有限体积法能够天然保持离散守恒的根本原因。
对于光滑流动,守恒型和非守恒型通常数学等价。
但出现激波等间断后,经典导数可能不存在,此时非守恒形式中的乘积和导数已经不能随意使用普通微积分规则。
而守恒形式仍然可以通过积分意义定义弱解。
因此对于可压缩流和激波问题:
守恒形式并不仅仅是“另一种写法”,而是正确描述间断解的重要基础。
CFD中5个控制方程更常见写法就是:
∂t∂U+∂x∂F+∂y∂G+∂z∂H=0.
这些 U、F、G、H 均以列向量的形式给出。
动量方程为什么能够生成动能方程
动量方程本质上是
质量×加速度=力
将三个方向的动量方程分别乘以对应的速度 u,v,w 后,左侧出现
uDtDu,vDtDv,wDtDw
利用链式法则:
uDtDu=DtD(2u2)
三个方向相加后就得到
DtD(2u2+v2+w2)
即单位质量动能的变化率。
因此:
动量方程乘速度,本质上就是把“力学中的牛顿第二定律”转化成“功—能关系”。
这也是为什么动量方程能够用来构造动能方程。
总能量、动能和内能之间的消去
单位质量总能量可以写成
E=e+2V2
其中:
- e 是内能;
- V2/2 是宏观平动动能。
因此
总能量方程−动能方程=内能方程
书中所谓利用动量方程进行“消去”,实际上不是把某些物理作用删除,而是:
先用动量方程识别出总能量变化中属于宏观动能的那部分,再从总能量账本中扣除。
因此最后剩下的就是改变内能的机制。
例如体积力做功
ρf⋅V
同时存在于总能量方程和动能方程中,因此相减后消失。
这不意味着重力“不做功”,而意味着:
体积力做的这部分功已经归入宏观动能,不直接属于内能变化。
压力项则不会完全消失。
相减后留下的
−p∇⋅V
表示压缩和膨胀引起的内能变化。
流体被压缩时,
∇⋅V<0
因此
−p∇⋅V>0
内能增加。
黏性作用同样不会全部消失,最后会留下黏性耗散项。
它表示
有序的宏观机械能→无序的分子热运动
因此属于内能增加的一部分。
像这样衍生出来的这些单独内能、单独静焓、单独总焓方程,也是同样的,并非独立的方程,而是利用其它方程在能量的总体上做消去。
黏性应力为什么与速度梯度有关
速度场
V=(u,v,w)
的速度梯度并不是一个单独的量,而是一个张量:
∇V
其中包含所有形式的
∂xj∂ui
速度散度
∇⋅V
只是速度梯度张量的迹:
∇⋅V=∂x∂u+∂y∂v+∂z∂w
因此,正应力中出现速度散度并不意味着它“不依赖速度梯度”;恰恰相反,速度散度本身就是速度梯度的一部分。
对于牛顿流体,黏性应力真正与速度梯度的对称部分有关:
D=21[∇V+(∇V)T]
其中 D 描述流体微团的形变速率。
速度梯度中的反对称部分主要对应刚体旋转,它只改变流体微团的方向,而不改变形状,因此不会产生通常意义上的黏性形变应力。
所以可以把牛顿流体的基本逻辑理解为:
速度梯度→流体微团形变速率→黏性应力
其中:
- 速度散度主要描述体积膨胀和压缩;
- 交叉速度梯度主要描述剪切形变。