CFD 能量方程
从焓到温度,从简单到复杂
复杂的焓方程如何退化成不可压缩温度输运?每删掉一个项,你究竟放弃了哪种物理机制?用方程推导、控制体与数值实验把这个问题讲透。
首先明确:能量守恒的不是温度
温度是状态变量,不是守恒量。热力学第一定律描述系统储能的变化与热量、功和物质携带能量之间的收支关系。
微观热运动与相互作用能;单位 J/kg。
内能与流动功组合;单位 J/kg。
内能 + 宏观动能;此处暂不含势能。
其中
E = e + K
得到内能方程
得到焓方程
改写为温度方程
模型范围:单相、单组分、牛顿流体、傅里叶导热,无辐射、无组分扩散携带的焓通量、无独立机械轴功、无体力势能项;体积热源单独表示。一般多组分或多相流要增加相应通量与源项。
从复杂焓方程,一步步走向纯导热
点击推导步骤,观察方程随假设变化。关键不是“数学消掉了哪个项”,而是判断当前物理条件是否真的允许忽略它。
一般焓输运
默认完整热机械耦合
为什么可以从焓方程导出温度方程?
把焓的全微分代入焓方程:
两侧包含相同的压力导数项,移项后得到一般温度方程:
这一形式比直接写 ρcp DT/Dt = ... 更接近真实热力学,清楚说明了热膨胀系数 β 和物质压力变化 Dp/Dt 何时进入温度演化。
把能量方程拆成可以独立理解的物理机制
下列每张卡片都对应一种通量、储存或转换。点击卡片查看判断依据以及在代码中需要注意的细节。
能量方程与不可压缩温度输运方程,到底差在哪里?
一般能量方程
- 求解焓、内能或总能量
- 热物性模型把能量与温度、压力联系起来
- 可考虑压力功、黏性耗散等效应
- 便于多物理耦合与严格能量收支
不可压温度输运
- 直接求解温度 T
- 常用常密度与定比热容假设
- 省去热机械效应或证明其可忽略
- 满足假设时仍是正确的能量守恒模型
一个非常容易写错的细节:不可压流的焓不一定只随 T 变化
对严格密度不变、热膨胀系数 β = 0 的物质,
理想气体恰好不同:β = 1/T,h=h(T),得到:
| 判断问题 | 温度输运形式 | 焓 / 总能量形式 |
|---|---|---|
| 能量状态变量 | T,作为热量的代理变量 | h、e、E;经热物性关系得到 T |
| 热容与密度变化 | 需正确处理系数及守恒形式 | 更自然地通过 ρh 或 ρe 表示储能 |
| 压缩与压力功 | 简化后常省略 | 可以保留;但是否显式出现取决于变量选择 |
| 相变与化学反应 | 常通过附加源项或有效热容近似 | 相焓、组分焓及相间源项的管理通常更自然 |
| 离散守恒 | 在适用条件下可以守恒 | 通常更方便建立一般情况下的能量预算 |
交互实验:一维平板导热
一维稳态、无热源、均匀导热率。调节材料导热率、厚度、面积和左右温度,直观看热阻、温度分布以及热流方向。
HEAT CONDUCTION LAB
固定温度边界 · 1D steady Fourier conduction
交互实验:为什么加入流动后,温度分布不再线性?
一维稳态常物性对流–扩散,两端指定温度,调节 Péclet 数。观察对流主导时温度边界层如何被推向流出端。
ADVECTION × DIFFUSION LAB
U 向右,左侧温度固定 T(0)=320 K,右侧 T(L)=300 K
解释
对流与扩散强度相近。
简化条件
- 速度 U、热扩散率 α 为常数
- 只有轴向对流与轴向扩散
- 左边入流,右边固定温度(教学边值问题)
从最简单方程反向加难:每次只增加一种机制
沿同一条理论路径,从纯导热逐步引入流动、热源、黏性耗散、压缩效应以及真实焓。这样写模型时,你能知道每一层增加的闭合条件。
稳态纯导热
+ 储能
+ 对流
+ Φ + β Dp/Dt
+ 热物性、动能
当传热模型进入多相流,还需增加各相的能量交换、潜热、相间质量通量和组分焓。不要把此路径误认为一套方程可以不加修改地覆盖所有多相模型。
查看可供 AI Agent 修改的 Mermaid 流程图源码
flowchart LR A["稳态纯导热"] -->|"加入储能"| B["瞬态热扩散"] B -->|"加入速度场"| C["不可压温度输运"] C -->|"加入黏性耗散"| D["热机械耦合"] D -->|"加入可压缩热力学"| E["一般焓方程"] E -->|"加入组分/相变"| F["多相多组分能量方程"]
导热 + 储能
需要密度、比热容、导热率与初始温度。初始条件开始变得重要。
增加速度场
需要质量守恒、速度边界与温度对流格式;引入 Pe 与数值耗散。
引入压力和相变
需要状态方程、热物性模型、相变焓或相间交换闭合关系。
从 PDE 到 OpenFOAM 有限体积代码
数学形式是物理模型,有限体积离散是计算模型。最稳妥的学习方法是先写出每个面上的通量,再对应到 fvm:: 与 fvc::。
示意固定控制体、常密度与常 cp,面通量 φf=Uf·Sf 为体积通量;导热率 k 在面上处理,非正交项可能另有校正。内部面的通量对相邻单元符号相反,是全局守恒的基础。
阅读 OpenFOAM 源码时,沿着以下顺序查
thermo.he()
thermo.correct()
divq / laplacian
fvm::div
fvModels / BC
OpenFOAM Foundation 曾公开说明其通用热物性框架通过 he 统一选择内能或焓,且实际方程还可能显式包含动能与压力通量项。不同版本和求解模块组织方式会变化,应以目标版本源码为准。
交互实验:为什么残差收敛,不代表能量守恒?
设稳态不可压流经过受热管道,没有轴功、相变和其他损失,忽略动能变化。改变壁面加热量、质量流率和出口温度,检验整体热平衡。
CONTROL VOLUME ENERGY BUDGET
闭合检查:入口焓流 + 壁面热量 = 出口焓流
加入共轭传热、蒸发和冷凝之后,会发生什么?
从“单个温度方程”走向“多区域、多相质量和能量守恒的耦合系统”。计算上的核心难点,是把界面交换以一致、守恒的方式传递给各方程。
流体 ↔ 固体
流体有对流和导热;静止固体通常只有储能与导热。界面温度和法向热通量需要满足耦合条件。
蒸发 ↔ 冷凝
需要质量传递率、相变焓以及相之间的能量分配,避免显式潜热与焓定义重复计数。
真实物性
cp、ρ、k、μ 可以依赖温度、压力与组成,h(T,p) 不一定能近似成 cpT。
界面法向 n 在公式两侧取相同方向。若各区域使用各自的外法向,面热流守恒应写成两侧外法向通量之和为零。
其中 Llv 为饱和蒸气和液体的比焓差。在温度输运近似中,蒸发常表现为吸热,而冷凝表现为放热。但在完整焓守恒中,相变能量可能已经由质量传输携带的相焓表示,必须逐项核对源项。
热管问题建议按四层建模验证
| 模型层级 | 计算模型 | 首要验证 |
|---|---|---|
| Level 1 | 固体与单相流体耦合导热 | 壁面总热流两侧一致 |
| Level 2 | 单相流动 + 自然/强制对流 + CHT | 输入输出焓流与固体热源闭合 |
| Level 3 | 液相/气相 + 传热(暂不相变) | 相间热交换成对、总能量闭合 |
| Level 4 | 蒸发冷凝 + 相间质量能量耦合 | 相变质量、潜热、界面通量联合守恒 |
用三个问题检查是否真正理解了
01. 对严格密度不变、β=0 的流体,焓方程的 Dp/Dt 为什么在温度方程中消失?
02. 平板两侧温度固定、k 不变,增大导热率后,哪项会改变?
03. 同一算例中线性求解器残差很小,能否直接证明全局能量守恒?
参考资料与使用边界
本教程的交互实验使用明确的简化假设;一般焓方程基于单相连续介质模型。对于湍流、组分扩散、辐射、真实流体、旋转系、运动网格及相间质量能量耦合,需使用相应的扩展模型。