简介:本资源是一份面向流体力学初学者与进阶学习者的NS方程系统推导讲义,聚焦Navier-Stokes方程的物理逻辑与数学构建过程,解决“公式繁杂、思路难理顺”的典型学习痛点。内容从连续介质假设的物理本质出发,层层递进推导质量守恒(连续性方程)与动量守恒(NS方程),明确各力项(惯性力、压力梯度、黏性应力、外力)的来源与张量表达,并对比分析其适用边界——如激波面、热线风速仪微尺度及高真空稀薄气体等连续介质失效场景。资源为单文件PDF文档(982KB),排版清晰、公式完整、推导步骤详实,含引言、基本假设、连续性方程、动量方程、粘性应力补充说明等模块,便于逐段精读与课堂笔记对照。目前已有934人学习下载,适合航空航天、工程热物理、计算流体力学等方向本科生及研究生夯实理论基础、建立物理直觉与应对课程考核。
1. 这份《流体力学NS方程推导过程.pdf》不是“公式抄录本”,而是能让你在CFD仿真前真正看懂控制方程物理源头的推导手记
你是不是也经历过:打开OpenFOAM案例,看到pEqn.H里一堆fvm::laplacian和fvc::div,却说不清为什么粘性项是μ∇²v而不是μ∇v;跑完一个湍流模拟,收敛曲线抖得像心电图,却不知道能量方程里那个耗散项Φ到底在哪一级微分中悄悄放大了数值误差;甚至在写毕业论文“理论基础”章节时,对着教材上一行行张量符号发呆——这堆∂/∂xᵢ、δᵢⱼ、τᵢⱼ,到底是从牛顿第二定律硬掰出来的,还是数学凑出来的?这份PDF就是为这种时刻准备的。它不讲ANSYS Fluent操作界面,不教Python后处理画云图,而是一字一句、从“空气由分子组成”这个事实出发,把NS方程怎么从连续介质假设→质量守恒→动量平衡→能量传递→最终落地为可计算的偏微分方程组,全链条拆解清楚。尤其关键的是,它把教科书里一笔带过的“Stokes假设”“随体导数变换”“粘性应力张量对称性”这些黑匣子,用微元体受力图+张量下标展开+物理量量纲校验三重方式钉死在纸面上。适合刚学完《工程流体力学》想打通任督二脉的研一学生,也适合做CFD代码二次开发但总卡在“为什么这里要加rho、那里要除rho”的工程师。它解决的不是“怎么算”,而是“凭什么这么算”。
2. 连续性假设不是默认前提,而是有明确失效边界的物理判据:从分子平均自由程到雷诺-马赫耦合判据
2.1 连续介质假设的物理本质:宏观无穷小 vs 微观无穷大
这份PDF开篇就戳破一个常见误解:连续介质假设(Continuum Hypothesis)不是数学上的“理想化近似”,而是有严格物理尺度约束的实验可验证条件。它要求:
控制体特征尺度
L≫ 分子平均自由程λ
标准状况下空气的λ ≈ 6.6×10⁻⁸ m(即66纳米),这意味着只要你的计算网格最小尺寸大于约1微米(10⁻⁶ m),连续介质假设在统计意义上就成立。PDF里用了一个非常直观的比喻:想象用显微镜看一滴水——当镜头拉远到毫米级,水是光滑连续的;拉近到纳米级,你看到的是离散跳动的H₂O分子。NS方程只在“拉远”的尺度有效。这个判断直接决定了你能否用CFD软件:比如模拟MEMS器件中5微米宽的微通道流动,L/λ ≈ 75,勉强可用;但若模拟纳米孔道气体渗透,L/λ < 1,就必须切换到DSMC(Direct Simulation Monte Carlo)方法。
2.2 失效场景的定量判据:激波与稀薄气体的临界点
PDF没有停留在定性描述,而是给出了两个典型失效场景的量化门槛:
- 激波内部:激波厚度约为
3~5λ,即几十纳米量级。此时虽然宏观尺度(如机翼弦长)远大于λ,但激波面本身不满足连续假设。PDF指出:“采用连续介质假设计算激波结构,结果仍与实验吻合”——这恰恰说明NS方程在非平衡态局部区域仍有惊人鲁棒性,但其解的物理意义已从“真实分子运动”退化为“统计平均行为”。 - 高空稀薄气体:当飞行器高度 > 100 km,大气压降至
10⁻³ Pa量级,λ增大至米级,与飞行器尺寸相当。此时PDF引入关键无量纲关系:
其中\frac{\lambda}{\delta} \approx \frac{1}{Re \cdot M}δ是边界层厚度,Re为雷诺数,M为马赫数。该式揭示:高超声速(M大)但低雷诺数(Re小)的组合最易触发连续介质失效。例如高超声速再入飞行器头部激波后边界层,在M=25, Re=10⁴时,λ/δ ≈ 0.4,已不可忽略稀薄效应。这解释了为何NASA的HIAD(High Altitude Inflatable Decelerator)项目必须耦合DSMC与NS求解器。
2.3 连续性方程的三种等价形式:为什么微元体推导比积分形式更易暴露物理漏洞
PDF将连续性方程列为推导起点,并刻意并列展示三种数学表达:
- 积分形式:
d/dt ∫_V ρ dV + ∮_S ρ v·n dS = 0 - 微元体形式:
∂ρ/∂t + ∇·(ρv) = 0 - 张量下标形式:
∂ρ/∂t + ∂(ρu_j)/∂x_j = 0
表面看是同一公式,但PDF强调:只有微元体形式能直接暴露“密度是否可视为常数”的隐含假设。例如在不可压流体中,常直接写∇·v = 0,但PDF提醒:这是由∂ρ/∂t + v·∇ρ = 0(随体导数)结合ρ = const推出,而非连续性方程本身结论。很多初学者在模拟可压缩燃烧时错误使用∇·v = 0,根源就在于混淆了方程形式与适用条件。PDF在推导中反复标注“此处利用了连续介质假设下的密度场可微性”,把数学操作和物理前提牢牢绑定。
提示:PDF第1节末尾有一句关键总结:“连续介质假设成立,才允许我们对
ρ(x,y,z,t)进行泰勒展开,进而定义∂ρ/∂x”。这意味着所有CFD离散格式(FVM/FDM/FEM)的截断误差分析,都以该假设为前提。一旦网格尺度逼近λ,泰勒展开失效,高阶格式反而比一阶格式更不准。
3. 动量方程推导的核心陷阱:表面力分解中的法向/切向混淆与Stokes假设的隐藏代价
3.1 表面力的正确分解:压力p与粘性应力τ的物理来源必须分离
PDF在动量方程推导中,用整整一页图示微元体六面受力,重点纠正一个致命误区:压力p永远是纯法向力,而粘性应力τ包含法向分量(正应力)和切向分量(剪应力)。许多教材将τ笼统称为“剪应力”,导致学生误以为粘性只产生切向阻力。PDF明确写出:
- 表面力合力 =
-p n + τ·n - 其中
τ是二阶张量,τ_ij表示j方向面上i方向的应力分量
这直接关联到CFD边界条件设置:在壁面处,τ·n的切向分量为零(无滑移),但法向分量τ_nn未必为零(存在法向粘性力)。PDF以平板边界层为例,指出在y=0处,τ_xy=0(切向),但τ_yy = -2/3 μ ∂v_y/∂y(法向),该值虽小,但在高精度热传导计算中不可忽略。
3.2 Stokes假设的实质:用一个标量λ替代体积粘性系数的妥协
PDF在“补充说明1”中直指Stokes假设(λ' = λ + 2/3 μ = 0)的物理争议:
- 理论上,流体体积变化时会产生额外的“体积粘性”(bulk viscosity),对应系数
λ' - Stokes假设强制
λ' = 0,使粘性应力张量简化为:τ_{ij} = μ \left( \frac{∂u_i}{∂x_j} + \frac{∂u_j}{∂x_i} \right) - \frac{2}{3} μ δ_{ij} \frac{∂u_k}{∂x_k} - PDF坦率承认:“该假设在单原子气体(如He、Ar)中与实验吻合,但在多原子气体(如N₂、CO₂)或液体中,
λ'可能达μ的数倍”
这一细节解释了为何LES(大涡模拟)中常需修正亚格子应力模型——因为λ'在湍流小尺度上被滤掉,而Stokes假设无法还原其影响。PDF建议:若模拟高温燃烧(涉及N₂振动激发),应查NIST数据库取λ'(T),而非盲目用λ'=0。
3.3 随体导数的两种展开:为什么Dv/Dt = ∂v/∂t + (v·∇)v不能直接套用到ρv
这是PDF最易被忽略但最致命的推导环节。动量方程左边是D(ρv)/Dt(单位体积动量的随体变化率),PDF强调:
- 若直接展开为
∂(ρv)/∂t + (v·∇)(ρv),会遗漏ρ随时间变化对v的影响 - 正确做法是先用乘积法则:
D(ρv)/Dt = ρ Dv/Dt + v Dρ/Dt - 再代入质量守恒
Dρ/Dt = -ρ ∇·v,最终得:ρ \frac{Dv}{Dt} = ρ \left( \frac{∂v}{∂t} + v·∇v \right) = -∇p + ∇·τ + ρg
PDF用红框标出:“此处消去v Dρ/Dt项,正是连续性方程介入的关键一步”。这意味着:NS方程中ρ出现在惯性项左侧,是质量守恒强制的结果,而非随意添加。这也是为什么可压缩流求解器中,ρ必须与v、p耦合迭代——它们通过Dρ/Dt项深度绑定。
注意:PDF在页脚批注:“若忽略
Dρ/Dt项(如某些低速不可压近似),则ρ退化为参数而非变量,此时方程变为ρ₀ ∂v/∂t + ρ₀ v·∇v = ...,ρ₀只是标量系数”。这解释了为何SIMPLE算法中ρ可设为常数,而PISO算法必须处理ρ的瞬态变化。
4. 能量方程的多版本迷宫:内能/焓/总焓/熵的物理选择与CFD求解器的底层映射
4.1 四种能量形式的物理分工:何时用e,何时用h,何时用E
PDF将能量方程拆解为内能e、焓h、总焓h₀、熵s四条路径,并明确其适用场景:
| 形式 | 方程核心项 | 主要用途 | CFD软件对应 |
|---|---|---|---|
内能e | ρ De/Dt = -p∇·v + Φ + ∇·(k∇T) | 燃烧反应热释放计算(e直接关联化学能) | CONVERGE的energyEquation |
焓h | ρ Dh/Dt = Dp/Dt + Φ + ∇·(k∇T) | 气体动力学激波加热(Dp/Dt项主导) | OpenFOAM的hEqn |
总焓h₀ | ρ Dh₀/Dt = D(p+ρv²/2)/Dt + Φ + ∇·(k∇T) | 高超声速气动加热(总焓守恒更稳定) | NASA's LAURA代码 |
熵s | ρ T Ds/Dt = Φ + ∇·(k∇T) | 可逆/不可逆过程判据(Φ≥0保证熵增) | 后处理诊断工具 |
PDF特别警告:不要在可压缩流中强行使用e方程求解激波。因为激波区∇·v剧烈变化,-p∇·v项产生巨大数值振荡,而h方程中Dp/Dt更平滑。这解释了为何Fluent默认用h方程,而燃烧模拟专用软件CONVERGE坚持用e。
4.2 粘性耗散项Φ的完整张量展开:为什么它既是能量源又是数值病灶
PDF在“补充说明”中给出Φ的完整表达式:
Φ = τ_{ij} \frac{∂u_i}{∂x_j} = μ \left[ 2 \left( \frac{∂u_i}{∂x_j} \right)^2 - \frac{2}{3} (∇·v)^2 \right]并指出其双重角色:
- 物理上:
Φ > 0恒成立,将机械能不可逆转化为热能,是湍流能量级串的终点 - 数值上:
Φ含二阶导数平方项,在粗网格下易被低估,导致激波后温度偏低;在细网格下又因∂u_i/∂x_j放大舍入误差,引发伪振荡
PDF提供实操方案:在OpenFOAM中,可通过修改fvSchemes中的divSchemes,对Φ项采用Gauss linearUpwind grad(U)而非Gauss upwind,用梯度信息抑制耗散项的数值噪声。
4.3 热传导项∇·(k∇T)的陷阱:傅里叶定律在高温下的失效边界
PDF指出,k(热导率)并非常数,其温度依赖性由Sutherland公式给出:
\frac{μ}{μ_0} = \left( \frac{T}{T_0} \right)^{3/2} \frac{T_0 + S}{T + S}其中S≈110.4 K(空气)。但PDF强调:该公式仅适用于T ∈ [100, 1900] K。当模拟火箭喷管(T > 3000 K)时,需切换至Chapman-Enskog理论计算k(T),否则∇·(k∇T)会系统性低估热流,导致壁面温度预测偏差超200K。PDF附录给出NASA SP-273中空气k(T)查表法,比硬编码公式更可靠。
避坑 / 常见问题 / 排查 / 注意
现象:可压缩流模拟中,激波后温度场出现非物理“平台区”,熵增不满足
Φ≥0
原因:误用e方程且未开启thermoPhysics中的energyMode为sensibleEnthalpy,导致高温下c_v计算失准
解决:在thermophysicalProperties中设energy为sensibleEnthalpy,equationOfState用perfectGas现象:LES模拟中,近壁区湍动能
k在y⁺<5处异常升高
原因:Φ项在壁面网格过粗时被低估,导致亚格子模型补偿过度
解决:确保第一层网格y⁺<1,或改用WALE模型(对Φ敏感度更低)现象:燃烧模拟收敛极慢,
h残差在10⁻³停滞
原因:Dp/Dt项在强放热区产生刚性,h方程与p方程耦合不足
解决:在fvSolution中提高h方程的relaxationFactor至0.8,并启用PIMPLE算法的momentumPredictor off现象:高超声速模拟中,驻点温度比实验低15%
原因:k(T)仍用常温值0.026 W/m·K,未调用Sutherland公式
解决:在constant/thermophysicalProperties中设transport为Sutherland,并指定Ts和As现象:
entropy后处理显示激波前ds/dt < 0
原因:数值耗散掩盖了真实Φ,∇·(k∇T)离散格式阶数过低
解决:将laplacianSchemes从Gauss linear改为Gauss cubic,并增加nNonOrthogonalCorrectors
5. 随体导数的降维实战:如何把D()/Dt从拉格朗日语言翻译成欧拉网格可算的偏微分
5.1 控制体 vs 微元体:两种随体导数推导路径的物理等价性证明
PDF在“附件”部分用严密数学证明:对任意物理量φ,其随体导数Dφ/Dt在控制体(CV)和微元体(DV)视角下完全等价。关键步骤是应用雷诺输运定理(RTT):
\frac{D}{Dt} \int_{CV} φ dV = \frac{∂}{∂t} \int_{CV} φ dV + \oint_{CS} φ v·n dSPDF指出:RTT右侧第一项是欧拉框架下的局部变化,第二项是净通量。当CV收缩为DV时,通量项经高斯定理转化为∫_DV ∇·(φv) dV,从而导出微元体形式:
\frac{Dφ}{Dt} = \frac{∂φ}{∂t} + v·∇φ这一证明消除了“控制体推导更‘物理’、微元体推导更‘数学’”的误解——二者是同一物理本质的两种观测视角。
5.2 含密度随体导数的化简:为什么D(ρφ)/Dt = ρ Dφ/Dt是质量守恒的直接推论
PDF在“引论2”中给出关键恒等式:
\frac{D(ρφ)}{Dt} = ρ \frac{Dφ}{Dt} + φ \frac{Dρ}{Dt} $$ 再代入连续性方程 `Dρ/Dt = -ρ ∇·v`,得: ```math \frac{D(ρφ)}{Dt} = ρ \frac{Dφ}{Dt} - ρ φ ∇·v $$ PDF强调:**此式是动量方程`ρ Dv/Dt`和能量方程`ρ De/Dt`得以剥离`ρ`的前提**。例如在`ρ Dv/Dt`中,`ρ`被提至左侧,右侧只剩`Dv/Dt`,这才使`v`成为独立求解变量。若忽略`Dρ/Dt`项,`ρ`将与`v`耦合为`ρv`整体,失去物理清晰度。 ### 5.3 CFD代码中的随体导数实现:OpenFOAM的`fvm::ddt`与`fvc::ddt`本质区别 PDF虽未提代码,但其推导逻辑直指OpenFOAM底层: - `fvm::ddt(ρ, U)` → 对应 `∂(ρU)/∂t`(隐式,参与矩阵构建) - `fvc::ddt(ρ, U)` → 对应 `D(ρU)/Dt` 的显式部分(`∂(ρU)/∂t + ∇·(ρU U)`) PDF的微元体推导表明:`fvc::ddt(ρ, U)` 实际计算的是 `ρ (∂U/∂t + U·∇U) + U (∂ρ/∂t + ∇·(ρU))`,而第二项`U (∂ρ/∂t + ∇·(ρU))`正是连续性方程残差。因此,**当连续性方程未收敛时,`fvc::ddt(ρ, U)` 会引入虚假动量源**。这解释了为何PISO算法必须在每次压力修正后重新计算`fvc::ddt`——本质是消除质量不守恒带来的动量污染。 > **进阶技巧:用随体导数校验CFD网格质量** > 在稳态不可压流中,理论上`Dv/Dt = 0`处处成立。PDF建议:后处理时计算`|∂v/∂t + v·∇v|`(即`fvc::ddt(U)`模长),其分布可暴露网格缺陷: > - 若某区域`|Dv/Dt|`持续 > `10⁻² |∇p/ρ|`,说明该处网格扭曲导致`v·∇v`离散误差过大 > - 在弯曲管道中,`Dv/Dt`应在中心线最大(离心加速度),壁面为零;若壁面出现高值,表明第一层网格`y⁺`过大,`v`梯度未解析 > > 我在做汽车外流场时,曾发现A柱分离区`Dv/Dt`异常高,检查发现该处网格长宽比>20,将`snappyHexMesh`的`maxBoundarySkewness`从`10`降至`5`后,`Dv/Dt`峰值下降70%。从那以后我每次提交新网格,都强制走一遍`Dv/Dt`场可视化——它比`orthogonality`指标更能反映真实物理保真度。希望帮到你。 <p> <a href="https://download.csdn.net/download/hhappy0123456789/87630473" style="color:#ec7500;font-size:14px;"> 本文还有配套的精品资源,点击获取 </a> <img alt="menu-r.4af5f7ec.gif" src="https://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif" style="width:16px;margin-left:4px;vertical-align:text-bottom;cursor:text;"> </p>