∇CFD FIELD NOTES / ENERGY EQUATION
An interactive guide to energy conservation in CFD

CFD 能量方程
从焓到温度,从简单到复杂

复杂的焓方程如何退化成不可压缩温度输运?每删掉一个项,你究竟放弃了哪种物理机制?用方程推导、控制体与数值实验把这个问题讲透。

完整版推导3 组交互实验FVM / OpenFOAM 代码离线可用
PATH 01
焓方程 → 温度方程
PATH 02
纯导热 → 多物理耦合
METHOD
守恒、量纲、数值验证

首先明确:能量守恒的不是温度

温度是状态变量,不是守恒量。热力学第一定律描述系统储能的变化与热量、功和物质携带能量之间的收支关系。

内能
e

微观热运动与相互作用能;单位 J/kg。

比焓
h

内能与流动功组合;单位 J/kg。

总比能
E

内能 + 宏观动能;此处暂不含势能。

其中 是随流体微团运动的物质导数;密度、压力和温度由热物性关系联系起来。热量与功是传递能量的方式,并非流体中储存的两种独立“物质”。

三个守恒表达式之间的关系
总能量
E = e + K
→
减去动能方程
得到内能方程
→
定义 h = e + p/ρ
得到焓方程
→
利用物性关系
改写为温度方程

模型范围:单相、单组分、牛顿流体、傅里叶导热,无辐射、无组分扩散携带的焓通量、无独立机械轴功、无体力势能项;体积热源单独表示。一般多组分或多相流要增加相应通量与源项。

从复杂焓方程,一步步走向纯导热

点击推导步骤,观察方程随假设变化。关键不是“数学消掉了哪个项”,而是判断当前物理条件是否真的允许忽略它。

STEP 01 / 08

一般焓输运

默认完整热机械耦合

沿物质微团,焓的变化来自压力变化、黏性耗散、传导和体积热源。
1 / 8
严格说明:h ≈ cₚT 不是所有流体的普适定义。流体热力学一般需要 ,其中 。对理想气体与严格不可压缩流体,化简方式不同。

为什么可以从焓方程导出温度方程?

把焓的全微分代入焓方程:

两侧包含相同的压力导数项,移项后得到一般温度方程:

这一形式比直接写 ρcp DT/Dt = ... 更接近真实热力学,清楚说明了热膨胀系数 β 和物质压力变化 Dp/Dt 何时进入温度演化。

把能量方程拆成可以独立理解的物理机制

下列每张卡片都对应一种通量、储存或转换。点击卡片查看判断依据以及在代码中需要注意的细节。

六项统一看待:储存是“留在本地”,对流和导热是“跨过控制面”,压力项与黏性耗散涉及热机械能量转换,热源是“从外部模型输入”。

能量方程与不可压缩温度输运方程,到底差在哪里?

守恒物理

一般能量方程

  • 求解焓、内能或总能量
  • 热物性模型把能量与温度、压力联系起来
  • 可考虑压力功、黏性耗散等效应
  • 便于多物理耦合与严格能量收支
受限模型

不可压温度输运

  • 直接求解温度 T
  • 常用常密度与定比热容假设
  • 省去热机械效应或证明其可忽略
  • 满足假设时仍是正确的能量守恒模型

一个非常容易写错的细节:不可压流的焓不一定只随 T 变化

对严格密度不变、热膨胀系数 β = 0 的物质,;因此在焓方程中,Dh/Dt 自身包含一个 Dp/Dt / ρ。它与焓方程右边的压力项抵消,才得到温度方程中没有压力导数的结果。

理想气体恰好不同:β = 1/T,h=h(T),得到:

结论:不可压缩的温度方程不是“完整焓方程把压力项随便删掉”的结果。 正确推导需要考虑状态方程、热容定义及压力依赖。对 Boussinesq 模型和弱可压缩模型,也应根据具体热物性近似重新判断。
判断问题温度输运形式焓 / 总能量形式
能量状态变量T,作为热量的代理变量h、e、E;经热物性关系得到 T
热容与密度变化需正确处理系数及守恒形式更自然地通过 ρh 或 ρe 表示储能
压缩与压力功简化后常省略可以保留;但是否显式出现取决于变量选择
相变与化学反应常通过附加源项或有效热容近似相焓、组分焓及相间源项的管理通常更自然
离散守恒在适用条件下可以守恒通常更方便建立一般情况下的能量预算

交互实验:一维平板导热

一维稳态、无热源、均匀导热率。调节材料导热率、厚度、面积和左右温度,直观看热阻、温度分布以及热流方向。

   │   

HEAT CONDUCTION LAB

固定温度边界 · 1D steady Fourier conduction

实时计算
平板温度场与热量方向高温 → 低温
320 K300 Kx = 0L = 0.10 m
沿厚度的温度分布 T(x)解析解
3203000x/L = 1
传热功率 Q̇20.0 W
热阻 Rth1.00 K/W
温度梯度−200 K/m
把热导率与热扩散率分开记:。k 决定导热通量;α 体现储热能力与导热能力的组合,是温度扰动传播的重要尺度。

交互实验:为什么加入流动后,温度分布不再线性?

一维稳态常物性对流–扩散,两端指定温度,调节 Péclet 数。观察对流主导时温度边界层如何被推向流出端。

 

ADVECTION × DIFFUSION LAB

U 向右,左侧温度固定 T(0)=320 K,右侧 T(L)=300 K

解析解

解释

对流与扩散强度相近。

简化条件

  • 速度 U、热扩散率 α 为常数
  • 只有轴向对流与轴向扩散
  • 左边入流,右边固定温度(教学边值问题)
无量纲温度 θ = (T−300)/20对流与扩散竞争
1.00.0x/L = 01
有对流的解Pe → 0 的导热解
Pe1.00
θ(x/L=0.5)0.62
主导机制竞争

从最简单方程反向加难:每次只增加一种机制

沿同一条理论路径,从纯导热逐步引入流动、热源、黏性耗散、压缩效应以及真实焓。这样写模型时,你能知道每一层增加的闭合条件。

Laplace 方程
稳态纯导热
➜
非稳态热扩散
+ 储能
➜
温度输运
+ 对流
➜
热机械效应
+ Φ + β Dp/Dt
➜
焓 / 总能
+ 热物性、动能

当传热模型进入多相流,还需增加各相的能量交换、潜热、相间质量通量和组分焓。不要把此路径误认为一套方程可以不加修改地覆盖所有多相模型。

查看可供 AI Agent 修改的 Mermaid 流程图源码
flowchart LR
  A["稳态纯导热"] -->|"加入储能"| B["瞬态热扩散"]
  B -->|"加入速度场"| C["不可压温度输运"]
  C -->|"加入黏性耗散"| D["热机械耦合"]
  D -->|"加入可压缩热力学"| E["一般焓方程"]
  E -->|"加入组分/相变"| F["多相多组分能量方程"]
STAGE I

导热 + 储能

需要密度、比热容、导热率与初始温度。初始条件开始变得重要。

STAGE II

增加速度场

需要质量守恒、速度边界与温度对流格式;引入 Pe 与数值耗散。

STAGE III

引入压力和相变

需要状态方程、热物性模型、相变焓或相间交换闭合关系。

从 PDE 到 OpenFOAM 有限体积代码

数学形式是物理模型,有限体积离散是计算模型。最稳妥的学习方法是先写出每个面上的通量,再对应到 fvm:: 与 fvc::。

控制体形式:单位一致后,每一项都是 W

示意固定控制体、常密度与常 cp,面通量 φf=Uf·Sf 为体积通量;导热率 k 在面上处理,非正交项可能另有校正。内部面的通量对相邻单元符号相反,是全局守恒的基础。

// 常物性、不可压、固定网格;演示量纲与离散算子 // phi: 体积流量 [m³/s],alpha = k/(rho*Cp) [m²/s] fvScalarMatrix TEqn ( fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(alpha, T) == qDot/(rho*Cp) ); TEqn.solve();
不要混淆 phi:对不可压体积通量是 m³/s,对可压质量通量是 kg/s。也不要认定所有热物性库里叫 alpha、alphaEff 的量单位都一定是 m²/s;应检查变量的 dimensions() 和热通量模型。

阅读 OpenFOAM 源码时,沿着以下顺序查

求解变量
thermo.he()
→
热物性
thermo.correct()
→
热输运
divq / laplacian
→
面通量
fvm::div
→
源项与边界
fvModels / BC

OpenFOAM Foundation 曾公开说明其通用热物性框架通过 he 统一选择内能或焓,且实际方程还可能显式包含动能与压力通量项。不同版本和求解模块组织方式会变化,应以目标版本源码为准。

交互实验:为什么残差收敛,不代表能量守恒?

设稳态不可压流经过受热管道,没有轴功、相变和其他损失,忽略动能变化。改变壁面加热量、质量流率和出口温度,检验整体热平衡。

CONTROL VOLUME ENERGY BUDGET

闭合检查:入口焓流 + 壁面热量 = 出口焓流

守恒诊断
固定 Tin = 300 K,cp = 4200 J/(kg·K);温度、流量和壁面热量可独立调整,用于演示预算失配。
净焓增加与壁面加热对照单位:W
控制体 CV稳态流动 + 壁面换热入口出口Q̇wall
壁面加热
420.0
净焓增加
420.0
能量收支残差0.0 W
平衡出口温度301.0 K
诊断闭合

加入共轭传热、蒸发和冷凝之后,会发生什么?

从“单个温度方程”走向“多区域、多相质量和能量守恒的耦合系统”。计算上的核心难点,是把界面交换以一致、守恒的方式传递给各方程。

CHT

流体 ↔ 固体

流体有对流和导热;静止固体通常只有储能与导热。界面温度和法向热通量需要满足耦合条件。

PHASE CHANGE

蒸发 ↔ 冷凝

需要质量传递率、相变焓以及相之间的能量分配,避免显式潜热与焓定义重复计数。

REAL FLUID

真实物性

cp、ρ、k、μ 可以依赖温度、压力与组成,h(T,p) 不一定能近似成 cpT。

无界面热阻、无界面储能和接触温差时

界面法向 n 在公式两侧取相同方向。若各区域使用各自的外法向,面热流守恒应写成两侧外法向通量之和为零。

其中 Llv 为饱和蒸气和液体的比焓差。在温度输运近似中,蒸发常表现为吸热,而冷凝表现为放热。但在完整焓守恒中,相变能量可能已经由质量传输携带的相焓表示,必须逐项核对源项。

热管问题建议按四层建模验证

模型层级计算模型首要验证
Level 1固体与单相流体耦合导热壁面总热流两侧一致
Level 2单相流动 + 自然/强制对流 + CHT输入输出焓流与固体热源闭合
Level 3液相/气相 + 传热(暂不相变)相间热交换成对、总能量闭合
Level 4蒸发冷凝 + 相间质量能量耦合相变质量、潜热、界面通量联合守恒

用三个问题检查是否真正理解了

01. 对严格密度不变、β=0 的流体,焓方程的 Dp/Dt 为什么在温度方程中消失?

请选择一个答案。

02. 平板两侧温度固定、k 不变,增大导热率后,哪项会改变?

请选择一个答案。

03. 同一算例中线性求解器残差很小,能否直接证明全局能量守恒?

请选择一个答案。
工程判据:拿到任何求解器的 EEqn 时,能够回答四个问题:求解的状态变量是什么?闭合了哪些热力学关系?省略了哪些机制?整体能量预算用什么量检验?

参考资料与使用边界

本教程的交互实验使用明确的简化假设;一般焓方程基于单相连续介质模型。对于湍流、组分扩散、辐射、真实流体、旋转系、运动网格及相间质量能量耦合,需使用相应的扩展模型。

① OpenFOAM Foundation · Thermophysical Modelling and he — 能量变量选择与压力项
② OpenFOAM Documentation · Energy transport equation — 不同形式的离散组织示例(OpenCFD 分支)
③ NASA Glenn Research Center · Enthalpy — 内能、焓与第一定律
④ NACA Report 1135 / NASA · Compressible Flow — 热力学状态关系与比热容
⑤ OpenFOAM Foundation · Version 14 — 版本与模块体系背景
页面中的 OpenFOAM 代码是教学示意,非某一版本直接粘贴可编译的 EEqn.H。实际代码应以你使用的版本和热物性配置为准。