参考:
本文主要讨论流体力学基本方程( Navier-Stokes 方程)的推导。
读者可能会对计算流体力学基本方程的各种各样的形式感到困惑,从而产生距离、产生抗拒。下文将反复推导公式,一方面让读者理解方程的由来,另一方面也是让读者能够“理直气壮”。以后遇到这些方程或者这些方程的变化,不再陌生抗拒,可以在心中点评一句“嗯~确实如此”。
先作几个简单的说明,
- 定常是指流动性质不随时间变化,反之为非定常
- 可压是指密度不为常数,反之为不可压
- 我们一般研究牛顿流体较多,也从牛顿流体开始讨论
- 暂不讨论偏微分方程的双曲、椭圆、抛物数学性质
- 流体分子 ∈ 流体质点 ∈ 流体微团 ∈ 流体系统(控制体或物质体)
- 流体微团宏观上足够小(使用离散方法),微观上足够大(仍为连续介质)
经典力学中会通过运动方程等数学公式来描述一个物体的状态。那么,流体的状态怎么描述呢?
手推公式非常重要!请手推两遍以上。
手推公式非常重要!请手推两遍以上。
手推公式非常重要!请手推两遍以上。
讨论前
一些约定和表示
为了方便书写,本系列除非特别说明,大写字母一般表示物理量的矢量。
速度矢量
U=u1u2u3
速度对时间的偏导
∂t∂U=(∂t∂u1,∂t∂u2,∂t∂u3)T
∇ (\nabla)算子
∇=(∂x∂,∂y∂,∂z∂)T
拉普拉算子 ∇2
∇⋅(∇U)=∇2U
速度的梯度(空间梯度)(梯度升维)
∇U=∂x∂u1∂y∂u1∂z∂u1∂x∂u2∂y∂u2∂z∂u2∂x∂u3∂y∂u3∂z∂u3
速度的散度(散度降维)
∇⋅U=∂x∂u1+∂y∂u2+∂z∂u3
速度梯度的散度
∇⋅(∇U)=∇2U=∇⋅∂x∂u1∂y∂u1∂z∂u1∂x∂u2∂y∂u2∂z∂u2∂x∂u3∂y∂u3∂z∂u3=∂x∂(∂x∂u1)+∂y∂(∂y∂u1)+∂z∂(∂z∂u1)∂x∂(∂x∂u2)+∂y∂(∂y∂u2)+∂z∂(∂z∂u2)∂x∂(∂x∂u3)+∂y∂(∂y∂u3)+∂z∂(∂z∂u3)
速度和 ∇ 算子的内积(对流导数)
U⋅∇=u1∂x∂+u2∂y∂+u3∂z∂
速度的对流导数
(U⋅∇)U=u1∂x∂u1+u2∂y∂u1+u3∂z∂u1u1∂x∂u2+u2∂y∂u2+u3∂z∂u2u1∂x∂u3+u2∂y∂u3+u3∂z∂u3
拉格朗日和欧拉
对于流体力学来说,跟踪研究特定的流体微团的运动的方法就是拉格朗日法。很多数情况下,我们也许只想了解某个流场的信息而不是某些流体微团的信息。研究某一个流体区域而不是跟踪特定流体微团的方法就是欧拉法。
- 基于拉格朗日法,选取的跟踪研究的流体微团的集合体被称为“物质体”(material volume, MV)
- 物质体所包含的流体微团数量固定,即质量固定
- 物质体的体积可能变化
- 物质体微元仍包含一定的流体分子
- 基于欧拉法,选取的研究区域被称为“控制体”(control volume, CV)
- 控制体所包含的物质可能变化,即质量可能变化
- 控制体的体积固定
- 控制体微元仍包含若干流体分子
例如,对于拉格朗日法来说,对于物质体,其中有流体微团 a,它的速度描述为 U(xa,ya,za,t) ,空间参数就是跟踪的对象 a 的坐标,物质体中每个流体微团都需要各自的坐标。对于欧拉法来说,对于控制体,它的速度描述为 U(x,y,z,t) ,空间参数是控制体空间中的任意点的坐标,当我们给定一组空间参数的时候,表示控制体中该时刻经过该位置的流体微团的速度,下一时刻这个位置上可能就是别的流体微团了。
物质体和控制体的定义在本文讨论中非常重要。
注意时刻区别两种方式,能够更加深刻理解基本方程的推导和各种形式间联系。后文遇到“物质体”和“控制体”时,如果感觉模糊,可以反复回到这里,理解体积和质量变化的不同。
基于两种描述方法的微妙不同,下面我们先讨论几个重要概念。
通量
数学上,速度 Uf (在经过该面的速度矢量)乘以面积 Sf (面矢量)就是体积通量,表示单位时间流过某个面积的流体流体,即
ϕf=Uf⋅Sf
相应的,质量通量有
ρfUf⋅Sf
考虑单位时间单位面积的体积通量,即
Uf⋅∣Sf∣Sf=Uf⋅nf
其中,nf 称为面单位法向矢量,用于定义面的法向方向。
考虑如果速度矢量和面法向有夹角 θ (单元中心速度和面法向不一致),则需要考虑非正交性,此时的体积通量为
ϕf=Uf⋅Sf=∣Uf∣∣Sf∣cosθ
广义上来说,Uf 和 ρfUf 都被称为对流通量,后面会介绍扩散通量的定义。
在有限体积法的讨论中,我们会逐渐理会到,守恒很多时候在本质上体现为通量的守恒。
速度散度
对于一个物质体的微元来说,体积是可能发生变化的。
物质体的微元上一个无穷小的面单元,它运动后产生的体积变化为(体积 = 速度×时间×底面积)
ΔV=[(UΔt)⋅n]ds=(UΔt)⋅dS
细究的话,这里其实是有一个微分近似,因为物质体的微元非常小,所以不考虑相对速度,面单元的速度约等于物质体的速度 U。
速度 U 是物质体的微元的速度而不是物质体内流体微团的函数。虽然 U 是空间和时间的函数,但是时间变化是极短的,所以速度随时间的变化也是极小的,也就是说,这个极小的时间变化内,速度近似的与时间独立,所以速度 U 可以直接乘以时间步 Δt 。
物质体整个体积变化需要在微元整个面上作积分,为
∬S(UΔt)⋅dS
体积变化对时间的变化率为
dtdV≈Δt1∬S(UΔt)⋅dS=∬SU⋅dS
因为近似认为速度在时间 Δt 上变化极小,所以 Δt 与速度独立,单独拿到外面约去。
由散度定理,物理量的面积分等于其散度的体积分。上式的面积分转化为体积分,
dtdV=∭V(∇⋅U)dV
如果这个物质体的体积十分微小,取为 δV
dtd(δV)=∭δV(∇⋅U)dV
微小体积的体积分约等于直接乘以这个微小体积,而速度仍然这个微小体积的速度。
dtd(δV)=(∇⋅U)δV
最终可得
∇⋅U=δV1dtd(δV)
注意哈密顿算子其实是一个矢量,点乘一个速度矢量之后,得到一个标量。
∇⋅U=∂x∂u+∂y∂v+∂z∂w
速度的散度就是单位时间单位体积的流体微团的体积变化。
下文将多次遇到这一项。
我们停下脚步,考虑一下上面的讨论。
体积的变化是从物质体的微元的面单元开始的。当我们取一个控制体,这个控制体和物质体微元的初始状态一模一样。物质体的面单元的运动产生体积变化,对于控制体来说,就是“体积”的进出变化。
从上面推导的结果来看,“体积”的流入流出就是速度散度的物理意义。需要意识到,体积流入流出的背后其实是“质量通量”,以后在推导有限体积法的时候会看到。
那么其他物理量的流入流出呢?
散度体现了一个系统的流入流出变化。当散度大于零,意味着系统流出大于流入,系统处于“膨胀”状态。当散度小于零,意味着系统流出小于流入,系统处于“收缩”状态。
我们另外有拉普拉斯算符,定义如下
标量的拉普拉斯计算为
∇⋅(∇s)=∇2s=∂x2∂2s+∂y2∂2s+∂z2∂2s
矢量的拉普拉斯计算为
∇2U=(∇2u)i+(∇2v)j+(∇2w)k
物质导数
物质导数某种程度上联系了拉格朗日法和欧拉法
我们描述一个非稳态(也就是随时间变化的)流动。拉格朗日描述下,取一个物质体,某个时刻,物质体中某个流体微团的速度和密度如下(分量形式),
⎩⎨⎧u=u(x,y,z,t)v=v(x,y,z,t)w=w(x,y,z,t)ρ=ρ(x,y,z,t)
在时间 t1 时刻,某个流体微团的位置是 (x1,y1,z1)
ρ1=ρ(x1,y1,z1,t1)
在时间 t2 时刻,该流体微团运动到位置 (x2,y2,z2)
ρ2=ρ(x2,y2,z2,t2)
注意这个过程,流体微团本身因为时间推进,自身属性会变化,这部分我们称为本地影响。另一方面,流体单元移动到了不同的位置,当然也会对最终呈现出的属性有影响,我们称为对流影响。
对四个变量,作泰勒展开
ρ2=ρ1+(∂x∂ρ)1(x2−x1)+(∂y∂ρ)1(y2−y1)+(∂z∂ρ)1(z2−z1)+(∂t∂ρ)1(t2−t1)+(higherOrderTerms)
两边都除以 (t2−t1), 忽略高阶项的影响
t2−t1ρ2−ρ1≈(∂x∂ρ)1t2−t1x2−x1+(∂y∂ρ)1t2−t1y2−y1+(∂z∂ρ)1t2−t1z2−z1+(∂t∂ρ)1
这个等式就描述了一个流体微团在某个时间步长内空间运动后,密度随时间的变化。
当这个时间步长非常小的时候,有极限
t2→t1limt2−t1ρ2−ρ1=DtDρ
得到密度对时间的全导数,即物理量对过程中的空间变量和时间变量都是变化的。该导数也被称为拉格朗日导数。
注意比较的是,(∂ρ/∂t) 描述的是密度仅仅随时间变化,而不涉及空间变化,也被称为欧拉导数。
其他项同样取极限有
t2→t1limt2−t1x2−x1t2→t1limy2−t1y2−x1t2→t1limz2−t1z2−x1=u=v=w
上面的泰勒展开式可以写成
DtDρ=u∂x∂ρ+v∂y∂ρ+w∂z∂ρ+∂t∂ρ
这个式子推广开对其他物理量也成立,得到物质导数(material substatial)的通用形式
DtD=u∂x∂+v∂y∂+w∂z∂+∂t∂
引入哈密顿算子
∇=∂x∂i+∂y∂j+∂y∂k
最终写成
物质导数
DtD=∂t∂+U⋅∇
- 为了书写方便,约定使用大写的 U 表示速度矢量
哈密顿算子和矢量的点乘与普通两个矢量点乘是一样的,但是要注意顺序
所以:
- D/Dt 称为物质导数,表示物理量的随时间的完整变化,其实是拉格朗日法的
- ∂/∂t 称为本地导数,表示物理上空间运动过程中的时间变化影响,是欧拉法的
- U⋅∇ 称为对流导数, 表示物理上空间运动过程中的对流变化影响,也是欧拉法的
- 结合下文对雷诺输运定理的讨论,理解将会更加清晰
下面举例说明物质导数各项的物理意义
对于流体微团的温度,
DtDT=∂t∂T+U⋅∇T=∂t∂T+u∂x∂T+v∂y∂T+w∂z∂T
对于一个空间上从 P1 移动到 P2 ,时间上 t1 到 t2 的流体单元来说,
- ∂T/∂t 无论流体单元怎么移动,它都会固有的因为时间变化而自身温度发生变化
- U⋅∇T 因为流体单元在空间移动(“移动”其实不准确,更应该是一种“对流”,“交换”,结合下文雷诺输运定理理解),它的温度发生变化
实际上,物质导数就是数学上全导数应用链式法则的完全展开
对于 ρ(x,y,z,t) 函数,全导数为
dρ=∂x∂ρdx+∂y∂ρdy+∂z∂ρdz+∂t∂ρdt
整理为
dtdρ=∂t∂ρ+∂x∂ρdtdx+∂y∂ρdtdy+∂z∂ρdtdz
上式左侧使用 D 的话,也就是物质导数。
雷诺输运定理
雷诺输运定理是联系拉格朗日法和欧拉法的另一个表现
上面物质导数的讨论是基于流体微团的,下面讨论对象扩大到物质体(包含固定数量的流体微团,但是外形和位置不一定固定)。
我们假设一个任意物理量 B ,它的单位质量强度为 b ,也就是有 b=dB/dm 。
在 t 时刻,物质体(黑色线条)和控制体(红色线条)重合,经过 Δt 之后,物质体移动到新的位置(蓝色线条)
t 时刻的物质体有
B(t)=BI(t)+BII(t)
t+Δt 时刻的物质体有
B(t+Δt)=BII(t+Δt)+BIII(t+Δt)
物质体内 B 的变化如下
(dtdB)MV=Δt→0limΔtB(t+Δt)−B(t)=Δt→0limΔtBII(t+Δt)+BIII(t+Δt)−BI(t)−BII(t)=Δt→0limΔtBI(t+Δt)+BII(t+Δt)−BI(t)−BII(t)+Δt→0limΔtBIII(t+Δt)−Δt→0limΔtBI(t+Δt)
上式整理合并后,其中的
Δt→0limΔtBI(t+Δt)+BII(t+Δt)−BI(t)−BII(t)=Δt→0limΔtBCV(t+Δt)−BCV(t)=(dtdB)CV
而余下的
Δt→0limΔtBIII(t+Δt)−Δt→0limΔtBI(t+Δt)
两项之差就是通过控制体边界面的 B 的单位时间净流量。
总结来说就是:
B 在物质体内的总变化 = B 在控制体内的变化 + B 在控制体表面上的净流量
我们约定,为了书写方便,无论是体积分还是面积分,后文大多使用单积分符,即
∬S→∫S
∭V→∫V
写成数学表达式为
(dtdB)MV=dtd(∫V(t)bρdV)+∫S(t)bρUr⋅ndS
假设流体的流动速度为 U(t,x) ,控制体表面变形的速度为 US(t,x) , 流体离开或者进入控制体表面时候的相对速度为 Ur(t,x)=U(t,x)−US(t,x)。
对于一个位置固定的控制体,没有表面变形,即 US=0 ,所以 Ur(t,x)=U(t,x)
虽然体积和面积分别写成 V(t),S(t) ,但欧拉描述下控制体的体积和面积不随时间变化。
控制体的几何和时间无关,所以有
dtd(∫VbρdV)=∫V∂t∂(bρ)dV
代入后有
(dtdB)MV=∫V∂t∂(bρ)dV+∫SbρU⋅ndS
利用散度定理(面积分等于散度的体积分)
(dtdB)MV=∫V∂t∂(bρ)dV+∫SbρU⋅ndS=∫V∂t∂(bρ)dV+∫V∇⋅(ρUb)dV
整理为
(dtdB)MV=∫V[∂t∂(ρb)+∇⋅(ρUb)]dV
散度展开
(dtdB)MV=∫V[∂t∂(ρb)+(ρb∇⋅U+U⋅∇ρb)]dV=∫V[(∂t∂(ρb)+U⋅∇ρb)+ρb∇⋅U]dV
利用物质导数,进一步改写为
∫V[(∂t∂(ρb)+U⋅∇ρb)+ρb∇⋅U]dV=∫V[DtD(ρb)+ρb∇⋅U]dV
最终得到【雷诺输运定理】
(dtdB)MV=∫V[∂t∂(ρb)+∇⋅(ρUb)]dV=∫V[DtD(ρb)+ρb∇⋅U]dV
所以也能得到换算关系
DtD(ρb)+ρb∇⋅U=∂t∂(ρb)+∇⋅(ρUb)
我们姑且称为【雷诺输运换算】。
通过换算讨论,我们再次可以感受到,全导(D/Dt)是拉格朗日的。
雷诺输运定理显式的表达了物理量在输运过程中的“守恒”。后文将进一步讨论此“守恒”。
质量方程
我们从质量方程(连续性方程)的推导正式开始。
质量守恒
物质体模型
假设我们取一个随着流体流动的物质体,我们可以直接使用物质导数。
这个物质体内部的流体微团数量固定,所以质量固定不变。
物质体的质量为
m=∭VρdV
质量的物质导数等于零。
DtD∭VρdV=0(1)
方程(1)被称为质量方程的非守恒型积分形式
- 非守恒是因为没有用到守恒关系
- 积分是因为体积的积分计算
- 拉格朗日法
注意这里有个坑,方程(1)由物质导数直接展开为下式是错误的
DtD∭VρdV=∭V[∂t∂ρ+U⋅∇ρ]dV=0
在下文换算关系中将讨论此问题
控制体模型
假设我们取一个固定的控制体,我们可以建立守恒关系
单位时间内通过控制体表面流出的质量流量 = 单位时间内控制体内流体的质量减少
B=C
对于 B 来说,控制体表面的某个表面单元,分析如下
- 通过该表面单元流出的质量流量
- 也就是,密度 × 表面积 ×流出速度垂直于表面的分量
- 也就是, ρUndS=ρU⋅dS
无论从数学积分角度还是物理角度,我们都认定 dS 的正方向是从控制体指向外。
- 如果速度也向外,ρU⋅dS 就是正的,从物理上说就是流体离开控制体
- 如果速度向内,ρU⋅dS 就是负的,物理上也就是流体进入控制体
对整个控制体表面积分,有
B=∬SρU⋅dS
对于 C 来说,
- 控制体总质量为 ∭VρdV
- 总质量的时间变化为总质量对时间的求导
- 控制体求导是偏导不是全导(没有对流影响)
- 数学上,直接求导得到是的增长,而不是减少
所以
C=−∂t∂∭VρdV
根据守恒关系 B=C
∂t∂∭VρdV+∬SρU⋅dS=0
上式处理为
∫V[∂t∂ρ+∇⋅(ρU)]dV=0(2)
方程(2)为质量方程的守恒型积分形式
- 守恒型是因为方程来自于物理量的守恒关系
- 积分是因为体积的积分计算
- 欧拉法
物质体微元模型
取一个无穷小物质体,
对于这个物质体微元,它的质量有
δm=ρδV
物质体微元的质量是不随时间变化的
DtD(δm)=0
根据微积分原理可以拆写(注意这里体积也是随时间变化的)
DtD(ρδV)=δVDtDρ+ρDtD(δV)=0
整理为
DtDρ+ρ[δV1DtD(δV)]=0
再根据前文速度散度的讨论,最终为
DtDρ+ρ∇⋅U=0(3)
方程(3)为质量方程的非守恒型微分形式
- 非守恒是因为没有用到守恒关系
- 微分形式是因为模型的无穷小
- 拉格朗日法
控制体微元模型
我们考虑一个无穷小控制体,
在这个无穷小控制体上,速度等物理量作为连续函数,可以进行泰勒展开。
以 x 方向为例,左面质量流量为
(ρu)dydz
根据连续物理量的泰勒展开,右边有
ρu+∂x∂ρudx+2!∂x2∂2(ρu)dx2+(higherOrder)
基于控制体微元的无穷小假定,省去二阶及以上的高阶项,为
[ρu+∂x∂(ρu)dx]dydz
两面之间的流量差就可以计算出来
[ρu+∂x∂(ρu)dx]dydz−(ρu)dydz=∂x∂(ρu)dxdydz
同理,y 和 z 方向的净流出量为
[ρv+∂y∂(ρv)dy]dxdz−(ρv)dxdz=∂y∂(ρv)dxdydz
[ρw+∂z∂(ρw)dz]dxdy−(ρw)dxdy=∂z∂(ρw)dxdydz
控制体微元的总净质量流量为
[∂x∂(ρu)+∂y∂(ρv)+∂z∂(ρw)]dxdydz
控制体微元内质量增加的时间变化率
∂t∂ρ(dxdydz)
控制体微元的净质量流量必须等于其质量的减少,所以
[∂x∂(ρu)+∂y∂(ρv)+∂z∂(ρw)]dxdydz=−∂t∂ρ(dxdydz)
∂t∂ρ+[∂x∂(ρu)+∂y∂(ρv)+∂z∂(ρw)]=0
最终得到
∂t∂ρ+∇⋅(ρU)=0(4)
方程(4)为质量方程的守恒型微分形式。
- 守恒型是因为用到了守恒关系
- 微分形式是因为模型的无穷小
- 欧拉法
关于上式中 ρU 的散度,
回忆一下,方程(4)的左边第一项表达的是单位时间单位体积的质量变化,等于单位时间单位体积的质量流量,也就是单位体积的质量通量(质量通量等于单位时间的质量流量),也就是等于方程(4)的左边第二项。
这就说明 ∇⋅(ρU) 的物理意义是单位体积的质量通量(单位时间单位体积的质量流量)。
回忆前文关于速度散度的讨论。我们按照类似的思路再次理解速度散度,∇⋅U 缺少密度,物理意义应该是单位体积的体积通量,其实就是单位时间单位体积的体积变化,和之前的讨论是一样的。
各个形式的换算
其实我们可以直接由雷诺输运定义写出方程
雷诺输运定理如下:
(dtdB)MV=∫V[DtD(ρb)+ρb∇⋅U]dV=∫V[∂t∂(ρb)+∇⋅(ρUb)]dV
质量方程只考虑质量的输运,所以
所以上式改成
DtD∭VρdV=∫V[∂t∂ρ+∇⋅(ρU)]dV=∫V[DtDρ+ρ∇⋅U]dV=0
该式是方程(1),方程(2)的综合形式。
因为物质体和控制体是任意选取的,所以上式的被积部分也处处为零,被积部分就是方恒(3)和方程(4)。
注意,利用物质导数进行下面的展开是错误的
DtD∭VρdV=∭V[∂t∂ρ+U⋅∇ρ]dV=0
因为这里的研究模型是物质体,物质体的体积是可能随着时间变化的。只有当我们假设体积也不随时间变化的时候,也就是 ∇⋅U=0 (见速度散度的讨论)的情况下。
此时直接展开有
DtD∭VρdV=∭V[∂t∂ρ+U⋅∇ρ]dV=∭V[∂t∂ρ+∇⋅(ρU)−ρ∇⋅U]dV=∫V[∂t∂ρ+∇⋅(ρU)]dV
这个结果和雷诺输运定理是一致的。
从数学上来看,积分形式的被积函数可以出现间断,微分形式的方程则要求必须是可微的,也就必须是连续的。散度定理要求数学上的连续性。当流动包含间断的时候,如激波,形式的选择就非常重要。
总的来说,基于物质导数和散度展开,始终有非守恒型和守恒型之间的换算关系
这里姑且称为【雷诺输运换算】
DtD(ρb)+ρb∇⋅U=∂t∂(ρb)+∇⋅(ρUb)
这个换算关系进一步的
右边第一项展开
∂t∂(ρb)=ρ∂t∂b+b∂t∂ρ
移项得
ρ∂t∂b=∂t∂(ρb)−b∂t∂ρ
右边第二项展开(这里不明白的要去补散度计算)
∇⋅(ρUb)=b∇⋅(ρU)+(ρU)⋅∇b
整理一下
ρU⋅∇b=∇⋅(ρUb)−b∇⋅(ρU)
代入物质导数
ρDtDb=ρ∂t∂b+ρU⋅∇b
有
ρDtDb=[∂t∂(ρb)−b∂t∂ρ]+[∇⋅(ρUb)−b∇⋅(ρU)]
整理一下
ρDtDb=∂t∂(ρb)−b[∂t∂ρ+∇⋅(ρU)]+∇⋅(ρUb)
右侧中间项为质量方程的守恒微分形式,等于零
所以,有【物质导数换算】
ρDtDb=ρ∂t∂b+ρU⋅∇b=∂t∂(ρb)+∇⋅(ρUb)
结合【雷诺输运换算】
DtD(ρb)+ρb∇⋅U=∂t∂(ρb)+∇⋅(ρUb)
代入后整理有
ρDtDb=DtD(ρb)+ρb∇⋅U
如果流动是不可压的(∇⋅U=0),则有
ρDtDb=DtD(ρb)
该方程的积分形式也被称为雷诺第二输运方程。
关于质量方程的积分形式和微分形式、守恒形式和非守恒形式,相信读者已经完全了解其中的关系和换算。
各种形式的换算看起来有点乱糟糟的。为了让读者摆脱这种乱糟糟的感觉却又正是换算讨论的目的。请读者亲自手算各种表达式。
补充讨论
-
上面的方程推导过程中,没有作多余的假设,所以适用于任何类型的流体。
-
质量方程的守恒型微分形式
∂t∂ρ+∇⋅(ρU)=0
展开就是
∂t∂ρ+∂x∂ρu+∂y∂ρv+∂z∂ρw=0
- OpenFOAM 中使用有限体积法,所以质量方程使用守恒型积分形式
∫V[∂t∂ρdV+∇⋅(ρU)]dV=0
- 对于不可压缩流动,密度是恒定的(不随时间和空间变化)
注意此处“密度恒定”不是说密度在流动中处处恒定,而是说密度在特定的流线上恒定(如果困惑的话,回忆前文的讨论,即对时间的全微分计算某种程度上来说是拉格朗日法的)
DtDρ=0
根据 质量方程的非守恒微分形式,
DtDρ+ρ∇⋅U=0
可以进一步得到
∇⋅U=0
速度的散度是单位时间单位体积的体积变化,不可压缩流体的速度散度为零,也正说明了它的体积不会变化,也就是不可压缩。
- 对于定常流动,密度不随时间变化(不同位置的密度有可能不同,所以仅对时间偏导为零)
∂t∂ρ=0
根据质量方程的守恒微分形式
∂t∂ρ+∇⋅(ρU)=0
可以得到
∇⋅(ρU)=0
也就是研究模型的质量通量为零(这个模型和外界没有质量交换,也就是定常流体)。
相信读者手推公式后,能领会到其中来来回回都能圆满自洽的快乐。
动量方程
F=ma
分量表达
我们采用无穷小物质体模型来讨论动量方程,相信会更加容易理解。
这个模型将得到动量方程的守恒型微分形式。
考虑 x 方向,有
Fx=max
受力分析
受到力的构成分成 2 部分,
- 体积力,直接作用在整个物质体的体积微元上,与质量有紧密关系,超距离,比如重力、电场力、磁场力等
- 数学表达为 ρf(dxdydz)
- 表面力,直接作用在模型的表面,有 2 个来源
- 物质体微元周围的流体作用于微元表面的压力分布,压力是一种正压力,始终垂直于作用面
- 外部流体推拉摩擦微元表面的剪切力(包括切应力和正应力)分布
正应力和切应力都依赖于流体的速度梯度,和形变的速率成正比。应力越大,形变的速度越快。大多数粘性流动中,正应力都比切应力小的多,乃至可以忽略不计,当法向速度梯度很大时 (例如激波内部),正应力就变得重要
我们约定用 τij 表示 沿着j 方向的应力作用在垂直于 i 轴的平面上。我们分析出图中 x 方向的所有力。
x 方向的表面力 Fx 为
Fx=(p−(p+∂x∂pdx))dydz+((τxx+∂x∂τxxdx)−τxx)dydz+((τyx+∂y∂τyx)−τyx)dxdz+((τzx+∂z∂τzx)−τzx)dxdy
化简后,并考虑上体积力,有
Fx=(−∂x∂p+∂x∂τxx+∂y∂τyx+∂z∂τzx)dxdydz+ρfxdxdydz
运动流体微元的质量为
m=ρdxdydz
考虑流体微元的加速度,x 方向应该有
ax=DtDu
综合上式,而且两边同时除以 dxdydz
ρDtDu=−∂x∂p+∂x∂τxx+∂y∂τyx+∂z∂τzx+ρfx
同样的,y 方向和 z 方向也有
ρDtDv=−∂y∂p+∂x∂τxy+∂y∂τyy+∂z∂τzy+ρfy
ρDtDw=−∂z∂p+∂x∂τxz+∂y∂τyz+∂z∂τzz+ρfz
分量形式
根据物质导数换算关系
ρDtDu=ρ∂t∂u+ρU⋅∇u=∂t∂(ρu)+∇⋅(ρuU)
最终有 N-S 方程
∂t∂(ρu)+∇⋅(ρuU)=−∂x∂p+∂x∂τxx+∂y∂τyx+∂z∂τzx+ρfx
∂t∂(ρv)+∇⋅(ρvU)=−∂y∂p+∂x∂τxy+∂y∂τyy+∂z∂τzy+ρfy
∂t∂(ρw)+∇⋅(ρwU)=−∂z∂p+∂x∂τxz+∂y∂τyz+∂z∂τzz+ρfz
上面的分量形式仍然有很多和流体相关的项需要讨论。
流体应力
到了 17 世纪末,牛顿指出,流体的切应力与应变的时间变化率(也就是速度梯度)成正比,这样的流体也被称为牛顿流体 。
在空气动力学的所有实际问题中,流体都可以被看成牛顿流体,斯托克斯得到有
τxx=λ(∇⋅U)+2μ∂x∂u
τyy=λ(∇⋅U)+2μ∂y∂v
τzz=λ(∇⋅U)+2μ∂z∂w
τxy=τyx=μ(∂x∂v+∂y∂u)
τxz=τzx=μ(∂z∂u+∂x∂w)
τyz=τzy=μ(∂y∂w+∂z∂v)
其中,μ 是分子粘性系数,λ 是第二粘性系数,斯托克斯进一步假设有
λ=−32μ
将物性关系代入获得完整动量方程。
张量表达
方程的分量形式非常繁琐,不利于理论表达和分析,我们采用张量形式进行分析推导和表达。
根据牛顿定理
Ft=mU
物质体上应用牛顿定理有
(dtd(mU))MV=(∫VfdV)MV
其中 f 是单位体积的外力,包含表面力和体积力。
方程左侧根据雷诺输运定理,可以分别写成守恒型和非守恒型的方程。
非守恒型
∫V[DtD(ρU)+ρU∇⋅U]dV−∫VfdV=0
整理可得
∫V[DtD(ρU)+ρU∇⋅U−f]dV=0
脱去积分
DtD(ρU)+ρU∇⋅U=f
展开上式可得
(ρDtDU+UDtDρ)+ρU∇⋅U=f
整理
ρDtDU+U(DtDρ+ρ∇⋅U)=f
注意左侧第二项括号内是质量方程的非守恒型微分形式,等于零,
所以有
ρDtDU=f
根据物质导数,有
ρ∂t∂U+ρU⋅∇U=f
守恒型
根据雷诺输运定理将牛顿定理的应用写成守恒型
∫V[∂t∂(ρU)+∇⋅(ρUU)]dV−∫VfdV=0
合并积分,整理后有
∂t∂(ρU)+∇⋅(ρUU)=f
注意该式就是前文分量形式的矢量写法。
外力的构成
外力可以分成表面力和体积力
f=fs+fb
表面力
在表面的一个面积微元上,表面力等于总应力张量和面矢量的积(力 = 应力×面积)
dfs=Σ⋅dS=Σ⋅ndS
使用 Σ 表示总应力张量(stress tensor)(完整包含正应力和切应力)
Σ=ΣxxΣyxΣzxΣxyΣxxΣzyΣxzΣyzΣzz
- 相同下标 Σii 表示法向应力,大于零为受拉(tension),小于零为受压(compression)。导致法向应力的主要物理原因是压力,很小一部分原因才是粘性
- 不同下标 Σij 表示切向应力,表示 i 面上 j 方向(i 面为垂直 i 方向的面,与分量形式的约定一样),约定如果面的外法向为正,则 i 为正。导致切向应力的物理原因是粘性
注意压力只在法向上,而且压力没有受拉,只有受压,也就是只有负值,所以应力张量其实可以写成
Σ=−p000p000p+⎩⎨⎧τxxτyxτzxτxyτyyτzyτxzτyzτzz⎭⎬⎫
我们简化表示为
Σ=⎩⎨⎧τxx−pτyxτzxτxyτyy−pτzyτxzτyzτzz−p⎭⎬⎫=−pI+τ
也就是说,总应力张量可以分解为压力和粘性力。
整个表面的表面力等于面单元的表面力的面积分
∫VfsdV=∫SΣ⋅ndS
再利用散度定理如下
∫SΣ⋅ndS=∫V∇⋅ΣdV
代入上式有
fS=[∇⋅Σ]=−∇p+[∇⋅τ]
粘性力
在上面的推导中,表面力中的粘性力部分仍然未知,对于牛顿流体来说,有本构关系
τ=μ[∇U+(∇U)T]+λ(∇⋅U)I
(请参考前文讨论的流体应力分量表达式)
斯托克斯假设
λ=−32μ
此时粘性力完整表达为
τ=μ[∇U+(∇U)T]−32μ(∇⋅U)I
根据前文讨论,有
∇⋅U=0
此时,粘性力简化为
τ=μ[∇U+(∇U)T]
结合这些讨论,也就可以理解为什么 λ(∇⋅U) 这一项也被为体积膨胀率。
引入应变率(strain rate),也被称为形变率,可以表示成速度的函数
S=SxxSyxSzxSxySyySzySxzSyzSzz=21(∂x∂u+∂x∂u)21(∂x∂v+∂y∂u)21(∂x∂w+∂z∂u)21(∂y∂u+∂x∂v)21(∂y∂v+∂y∂v)21(∂y∂w+∂z∂v)21(∂z∂u+∂x∂w)21(∂z∂v+∂y∂w)21(∂z∂w+∂z∂w)
写成矢量形式
S=21(∇U+∇UT)
粘性力表达为
τ=2μS
注意 μ 仍然是流体粘度,是流体的物理属性。
体积力
主要是重力,给出如下
fb=ρg
对于旋转系统来说,体力还来自于科里奥利力 和向心力
fb=−2ρ[ω×U]−ρ[ω×[ω×r]]
一般来说,重力和向心力都和位置有关,和速度无关,所以会归在压力修正项中。科里奥利力会单独处理。体积力像是还有电磁力电场力等多种类型需要针对具体问题进行处理,所以下面方程中的体积力不再写成具体形式。
张量形式
考虑最一般情况,动量方程守恒型微分形式为
∂t∂(ρU)+∇⋅(ρUU)=−∇p+(∇⋅τ)+fb
使用 OpenFOAM 表示符号
∂t∂(ρU)+∇⋅(ρUU)=−∇p+(∇⋅rhoReff)+fb
流体粘性应力的张量形式
rhoReff=μ[∇U+(∇U)T]+λ(∇⋅U)I
展开成矩阵形式更加清楚
rhoReff=2μ∂x∂u+λ∇⋅Uμ(∂x∂v+∂y∂u)μ(∂z∂u+∂x∂w)μ(∂x∂v+∂y∂u)2μ∂y∂v+λ(∇⋅U)μ(∂y∂w+∂z∂v)μ(∂z∂u+∂x∂w)μ(∂y∂w+∂z∂v)2μ∂z∂w+λ(∇⋅U)
粘性应力张量的散度为
∇⋅τ=∇⋅[μ(∇U+(∇U)T)]+∇(λ∇⋅U)=⎩⎨⎧∂x∂[2μ∂x∂u+λ∇⋅U]+∂y∂[μ(∂x∂v+∂y∂u)]+∂z∂[μ(∂z∂u+∂x∂w)]∂x∂[μ(∂x∂v+∂y∂u)]+∂y∂[2μ∂y∂v+λ(∇⋅U)]+∂z∂[μ(∂y∂w+∂z∂v)]∂x∂[μ(∂z∂u+∂x∂w)]+∂y∂[μ(∂y∂w+∂z∂v)]+∂z∂[2μ∂z∂w+λ(∇⋅U)]⎭⎬⎫
代入动量方程守恒型微分形式,得到
∂t∂(ρU)+∇⋅(ρUU)=−∇p+∇⋅[μ(∇U+(∇U)T)]+∇(λ∇⋅U)+fb
其中
∇⋅[μ(∇U+(∇U)T)]=∇⋅(μ∇U)+∇⋅[μ(∇U)T]
整理为
∂t∂(ρU)+∇⋅(ρUU)=∇⋅(μ∇U)−∇p+∇⋅[μ(∇U)T]+∇(λ∇⋅U)+fb
对于更一般的情况,将右边后三项统一为广义源项,整理为
∂t∂(ρU)+∇⋅(ρUU)−∇⋅(μ∇U)=−∇p+Q
补充讨论
- 对于无粘性流动,粘性系数 μ=0 ,动量方程最终简化为
∂t∂(ρU)+∇⋅(ρUU)=−∇p+fb
即没有粘性扩散。
- 对于不可压缩流体
∇⋅U=0
动量方程简化为
∂t∂(ρU)+∇⋅(ρUU)=−∇p+∇⋅[μ(∇U+(∇U)T)]+∇(λ∇⋅U)+fb
对于牛顿流体,有剪切应力 τ 线性相关于形变率 S (矢量)为线性,即
τ=2μS=μ(∇U+(∇U)T)
结合 Boussnesq 假设,密度变化仅仅对浮力起作用,其他项中的密度变化可以忽略,甚至如果这里就是不可压缩流体,则有
∂t∂(ρU)+∇⋅(ρUU)∂t∂U+∇⋅(UU)−∇⋅[ν(∇U+(∇U)T]∂t∂U+∇⋅(UU)−∇⋅(2νS)∂t∂U+∇⋅(UU)+∇⋅Reff=−∇p+∇⋅[μ(∇U+(∇U)T)]+∇(λ∇⋅U)+fb=−ρ1∇p+Q=−ρ1∇p+Q=−ρ1∇p+Q
如果此时粘性系数 μ 为常数,动量方程可以进一步简化
以 应力张量散度 的第一行为例,此时
(∇⋅τ)col1=∂x∂[2μ∂x∂u+λ∇⋅U]+∂y∂[μ(∂x∂v+∂y∂u)]+∂z∂[μ(∂z∂u+∂x∂w)]
=μ∂x∂[2μ∂x∂u]+μ∂y∂[(∂x∂v+∂y∂u)]+μ∂z∂[(∂z∂u+∂x∂w)]
=μ[∂x2∂2u+∂x2∂2u+∂y2∂2u+∂xy∂2v+∂z2∂2u+∂xz∂2w]
=μ[(∂x2∂2u+∂y2∂2u+∂z2∂2u)+∂x2∂2u+∂xy∂2v+∂xz∂2w]
=μ[(∂x2∂2u+∂y2∂2u+∂z2∂2u)+∂x∂(∂x∂u+∂y∂v+∂z∂w)]
→μ[(∇2U)+∂x∂(∇⋅U)]
→μ[(∇2U)+∂x∂(∇⋅U)]
因为流体不可压缩,密度不变,第二项为零,所以动量方程进一步简化为( p 为密度处理后的压力)
∂t∂U+∇⋅(UU)=−∇p+ν∇2U+fb
下面参考 《OpenFOAM A Little User Manual》
在 OpenFOAM 中不可压缩流动,
Reff=−ν(∇U+(∇U)T)
即
Ri,jeff=−ν(∂xj∂ui+∂xi∂uj)
任意应力张量可以分解成:平均应力张量(迹的平均)+ 偏应力张量
Reff=31tr(Reff)+dev(Reff)
有
tr(Reff)=Riieff−2ν(∂xi∂ui)
而
tr(Reff)=Riieff=−2νeff(∂xi∂ui)=0
∂xi∂ui=∇⋅U=0
所以有
Reff=dev(Reff)
即
∇⋅Reff=div(devReff)
这样的简化也就在 OpenFOAM 有如下表达
∂t∂U+∇⋅(UU)−∇⋅Reff∂t∂U+∇⋅(UU)−[turbulence→divDevReff(U)]=−∇p+Q=−∇p+Q
能量方程
能量守恒
分量表达
取无穷小物质体(物质体微元)为研究对象
有守恒关系
物质体微元内能量的变化率 = 单位时间流入微元的净热流量 + 体积力和表面力对微元做功的功率
A=B+C
外力做功的功率
- 体积力做功功率
ρf⋅U(dxdydz)
- 表面力做功功率
功率 = 力 × 面积 × 速度
以 x 方向为例子,约定力沿着坐标轴正向做正功,相反做负功。
压力做功功率为
[up−(up+∂x∂(up))dx]dydz=−∂x∂(up)dxdydz
切应力做功功率为
[(uτyx+∂y∂(uτyx))dy−uτyx]dxdz=∂y∂(uτyx)dxdydz
综合 x 方向所有表面力的做工功率为
[∂x∂(up)+∂x∂(uτxx)+∂y∂(uτyx)+∂z∂(uτzx)]dxdydz
综合其他方向的表面力,最终得到 C 为
C=[−(∂x∂(up)+∂y∂(vp)+∂z∂(wp))+∂x∂(uτxx)+∂y∂(uτyx)+∂z∂(uτzx)+∂x∂(vτxy)+∂y∂(vτyy)+∂z∂(vτzy)+∂x∂(wτxz)+∂y∂(wτyz)+∂z∂(wτzz)]dxdydz+ρf⋅U(dxdydz)
流入物质体微元净热流量
- 体积加热,如吸收释放的辐射热
ρq˙dxdydz
- 温度梯度导致的经过表面的热输运,即热传导
以 x 方向为例
[q˙x−(q˙x+∂x∂q˙xdx)]dydz=∂x∂q˙xdxdydz
热传导的总加热为
−(∂x∂q˙x+∂y∂q˙y+∂z∂q˙z)dxdydz
流入微元的净热流量 B 为
B=[ρq˙−(∂x∂q˙x+∂y∂q˙y+∂z∂q˙z)]dxdydz
根据傅里叶热传导定律有
q˙i=−k∂xi∂T
最终
B=[ρq˙+∂x∂(k∂x∂T)+∂y∂(k∂y∂T)+∂z∂(k∂z∂T)]dxdydz
物质体微元能量变化率
微元的总能量包括动能和内能两部分,所以
A=ρDtD(e^+2U2)dxdydz
分量形式
A=B+C
即
ρDtD(e^+2U2)=ρq˙+∂x∂(k∂x∂T)+∂y∂(k∂y∂T)+∂z∂(k∂z∂T)−(∂x∂(up)+∂y∂(vp)+∂z∂(wp))+∂x∂(uτxx)+∂y∂(uτyx)+∂z∂(uτzx)+(∂x∂(up)+∂y∂(vp)+∂z∂(wp))+∂x∂(uτxx)+∂y∂(uτyx)+∂z∂(uτzx)+∂x∂(vτxy)+∂y∂(vτyy)+∂z∂(vτzy)+∂x∂(wτxz)+∂y∂(wτyz)+∂z∂(wτzz)+ρf⋅U
即
ρDtD(e^+U2/2)=∇⋅(k∇T)−∇⋅(pU)+S
注意,对于流动的物质体微元计算得到的是非守恒型方程。
由动量方程 x 方向的受力分析式
ρDtDu=−∂x∂p+∂x∂τxx+∂y∂τyx+∂z∂τzx+ρfx
代入 u2/2 ,可以得到
ρDtD(2u2)=−u∂x∂p+u∂x∂τxx+u∂y∂τyx+u∂z∂τzx+ρufx
而
ρDtD(2U2)=ρDtD(2u2+2v2+2w2)
从能量方程中减去所有方向的动能项,可以得到只有内能的能量方程
ρDtDe^=ρq˙+∂x∂(k∂x∂T)+∂y∂(k∂y∂T)+∂z∂(k∂z∂T)−p(∂x∂(u)+∂y∂(v)+∂z∂(w))+τxx∂x∂u+τyx∂y∂u+τzx∂z∂u+τxy∂x∂v+τyy∂y∂v+τzy∂z∂v+τxz∂x∂w+τyz∂y∂w+τzz∂z∂w
注意,这个方程没有体积力,应力拿出了速度梯度之外,而且它是非守恒形式。
利用下面的切应力对称性,上式可以进一步改写。
τij=τji
利用下面流体物性关系,上式进一步可以改写成完全流场变量表示的能量方程。
∇⋅τ=∇⋅[μ(∇V+(∇V)T)]+∇(λ∇⋅V)
守恒型
根据散度展开 ,可以利用守恒转换将上面非守恒型方程改成守恒型方程。
∂t∂ρe+∇⋅(ρUe)=∇⋅(k∇T)−∇⋅(pU)+S
e=e^+2U2
张量表达
物质体的能量为
E=m(e^+21U2)
根据热力学第一定律,
能量的变化 = 吸收的热量 - 系统对外做的功
(dtdE)MV=Q−W
体积力做功加负号,就是物质体通过体积力对外做功。
WS=−∫V(fS⋅U)dV=−∫S(Σ⋅U)⋅ndS=−∫V∇⋅(Σ⋅U)dV
面积力沿着法向向外为正,向内为负。面积力做功加负号,就是物质体通过面积力对外做功。
利用动量方程中对表面力的讨论,得到
WS=−∫V∇⋅[(−pI+τ)⋅U]dV
利用张量计算法则,得到
WS=−∫V[−∇⋅(pU)+∇⋅(τ⋅U)]dV
代入能量方程为
(dtdE)MV=∫V[∂t∂(ρe)+∇⋅(ρUe)]dV=
∫Vq˙VdV−∫V∇⋅q˙SdV+∫V[−∇⋅(pU)+∇⋅(τ⋅U)]dV+∫V(fb⋅U)dV
拿去相同的积分,得到完整的能量方程
∂t∂(ρe)+∇⋅(ρUe)=−∇⋅q˙S−∇⋅(pU)+∇⋅(τ⋅U)+fb⋅U+qV
因具体问题会有其他更加复杂的形式,为了保证理解,本阶段不用深入。不用担心,以后遇到会在合适的时候继续讨论。
这里直接给出温度相关的能量方程为
∂t∂(ρcpT)+∇⋅(ρcpUT)=∇⋅(k∇T)+QT
通用方程
通用推导
通过上面的讨论,可以看到无论是什么物理量总是有雷诺输运定理
change of B over time Δt within the material volume (MV)
=
surface flux of B over time Δt across the control volume
+
source/sink of B over time Δt within control volume
物质体的物理量变化 = 经过控制体表面的通量变化 + 控制体内部的产生/消失
- 第一项
根据雷诺输运定理,
dtd(∫MV(ρϕ)dV)=∫V[∂t∂(ρϕ)+∇⋅(ρUϕ)]dV
结合前面对速度散度的两次讨论以及雷诺输运定义的讨论,我们可以理解 ρUϕ 表示流动中物理量 ϕ 的输运,称为对流通量 (convective flux)。
我们定义
Fcϕ=ρUϕ
- 第二项
同样的,我们定义扩散通量 (diffusion flux)
Fdϕ=−Γϕ∇ϕ
termII=−∫SFdϕ⋅ndS=−∫V∇⋅FdϕdV=∫V∇⋅(Γϕ∇ϕ)dV
负号是因为扩散的本质是系统的“损耗”。
- 第三项
称为源项,写成
termIII=∫VSϕdV
最终,
通用方程为:
∫V[∂t∂(ρϕ)+∇⋅(ρϕU)]dV−∫V∇⋅(Γϕ∇ϕ)dV=∫VSϕdV
补充讨论
基于前文对雷诺输运定理的讨论,我们停下脚步考虑一下输运过程中的物理本质。
对于我们所研究的流体来说,因为对流、扩散的物理现象,总是应该有以下的守恒关系
控制体的物理量的增加(正号)
=
因对流机制通过控制体边界的物理量流入(与控制体表面方向相反,负号)
+
因扩散机制通过控制体边界的物理量流出(与控制体表面方向相同,正号)
+
因产生源的物理量变化(正号)
所以,我们就可以理解,守恒方程总结为
∂t∂(ρϕ)=−∇⋅(ρϕU)+∇⋅(Γϕ∇ϕ)+Sϕ
这个表达式的四大项就对应了物理本质的四大项。
归纳方程
对比之前分别推导出的 N-S 方程
- 质量方程
∂t∂ρ+∇⋅(ρU)=0
- 动量方程
∂t∂(ρU)+∇⋅(ρUU)=∇⋅(μ∇U)−∇p+QV
- 能量方程
∂t∂(ρcpT)+∇⋅(ρcpUT)=∇⋅(k∇T)+QT
总结有通用形式基本方程
∂t∂(ρϕ)+∇⋅(ρUϕ)=∇⋅(Γ∇ϕ)+Sϕ
从左至右,我们依次称为:时间项、对流项、扩散项、源项。
小结
到此为止,流体力学的基本方程已经大体讨论结束。
希望读者能快速的跨过计算流体力学的这第一道坎。