J3-04 两相流、沸腾与冷凝仿真:框架选型、相变源项与结果可信度
课程代码 J3-04 · 板块 J 仿真分析 CAE / J3 换热器·部件级 CFD 时长 约 4 小时(5 讲 + 1 次两相相变算例实操) 适合对象 两相/相变 CFD 专家;承接制冷剂直冷板、蒸发器/冷凝器、浸没冷却部件级仿真的 CAE 责任人;以及需要判读这类结果并据此改流道与分液的换热器结构工程师 前置 A2-03 两相流基础:沸腾、冷凝与流型 两相流基础:沸腾、冷凝与流型(干度、空泡率、流型、CHF 与干涸的本体);J2-01 CFD 基础、湍流模型与网格划分(Fluent/STAR-CCM+) CFD 基础、湍流模型与网格划分(有限体积、库朗数、y⁺ 与网格无关性的本体);A1-04 工程热力学与蒸气压缩制冷循环(log p-h 图判读) 蒸气压缩循环与 log p-h 图判读 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 J3-04 课题的完整展开版
引言:云图很好看,而它答不出「那一支到底干没干」
两相相变 CFD 是这条线上最容易「做完了但不能用」的一类活。原因不是它难收敛——难收敛是显性的,跑不出来你自己就知道。真正的麻烦是它很容易跑出来:残差掉到 1e-5,云图上液相红一片、气相蓝一片、界面处一条漂亮的过渡带,动画里气泡一个个从壁面脱离往上走。把这张图放到评审会上,几乎没有人会当场质疑。
而它可能同时满足下面四条里的任意一条,且四条全部不报错、全部不在残差曲线上留痕:
- Lee 模型的系数 C 是随手填的默认值,于是界面上残留着几 K 的过热度没被消掉。壁温因此系统性偏高、蒸发起始位置系统性偏后——而「偏」的方向恒定,看起来像一个可以靠标定别的东西补回来的偏差。
- 时间步取大了,界面在一步之内跨过了两三个单元。锐界面格式被破坏,α 场被抹成一条宽过渡带;此时求解器不会报错,它只会给你一个「弥散版本」的答案,而弥散把局部干涸抹平了——你要找的那个现象恰好是被数值抹掉的那个。
- 网格不足以解析界面曲率,CSF 表面张力项造出的伪流(spurious currents)速度与真实流动同量级。低流速的冷凝算例里这一条最致命:真流 0.2 m/s,伪流 0.2 m/s,你在看的那个流场有一半是数值噪声。
- 用稳态算了一个只在瞬态下才存在的现象。台架上支路流量在摆、电芯温度此起彼伏,而仿真给了一个漂亮的稳态收敛解,两边的平均值还对得上——于是有人写下「仿真与试验吻合」。稳态解在结构上就不含失稳模式,它不可能对上,只可能碰巧平均值接近。
钉子①(全课第一根,下文简称「钉子①」):先定框架,再选相变模型——顺序反了会卡死在前处理,而卡死是好结果;顺序反了却硬凑出来,才是坏结果。最典型的形态是:有人在经典 VOF 下满界面找 RPI 壁面沸腾选项,找不到就断定「软件缺功能」。错的不是软件,是框架与相变模型没配对——RPI 三段热流分配是欧拉两流体框架下的壁面闭合,它需要一个独立求解的气相场来接收蒸发那一段热流;经典 VOF 只有一个共享速度场,没有地方接。该换的是框架,不是模型。这根钉子在第 1 讲立、第 2 讲兑现(每一个相变模型都写清它挂在哪个框架下)、第 4 讲在四个场景上各兑现一次。
钉子②(与钉子①配对,管「算出来的数敢不敢交」):两相相变 CFD 的交付物是一组带标定来源与不确定度的可测量,⛔ 不是相分布云图,也不是一个「干涸位置 = 279 mm」的裸数。第 5 讲的三层可信度判据(守恒闭环 → 网格与时间步收敛 → 与部件试验对标)是整门课唯一的放行闸。⚠ 代价必须说透:把一个没过闸的干涸位置交出去,后果不是「热仿真误差大一点」,而是它会被当作结构结论去改分液板、改流道、改冷媒充注——改的是一个本来可能没错的东西,而且改完之后台架仍然不对,那时候没有人会回头怀疑那张云图。
⚠ 两根钉子各自独立:①管「模型框架选得对不对」,②管「数敢不敢交出去」。框架选对了照样可能因为不过闸而不许交;反过来,一个框架选错的算例可能三层闸全过——因为闸看的是自洽性与对标,而一个自洽且被标定过的错框架完全可以在标定工况上对得很好,出界之后才崩。这就是第 5 讲最后要给「射程声明」的原因。
本课的符号与口径约定(先看这一节,⛔ 别跳)
⚠ 本课有四个与相邻课程同名或同量纲、而口径并不相同的量。这一层没有任何自动检查能替你看住,读者直接互代就会得出系统性偏乐观或偏悲观的结论。以下四条必须先钉住:
① 本课的 α 是「网格单元内某一相的体积分数」,⛔ 不是 A2-03 两相流基础:沸腾、冷凝与流型 与 J1-02 制冷循环一维建模与制冷剂物性 那个空泡率。这是本课最容易出事的一条。A2-03 两相流基础:沸腾、冷凝与流型 定义空泡率 α = A_g/(A_g+A_l),是一个流道截面上气相占的面积份额,它是一维/关联式语境里的量,配着滑移比 S 使用;J1-02 制冷循环一维建模与制冷剂物性 第 4 讲用的正是这个 α,并据它算段均两相密度。本课的 α 是 VOF/欧拉框架里每个网格单元的相体积分数,是一个三维场,取值 0~1,逐单元变化。两者的关系是:把本课的气相体积分数在一个截面上按面积加权平均,才得到 A2-03 两相流基础:沸腾、冷凝与流型 的空泡率——即 α_g^(A2-03) = (1/A_c)∫α_g dA。⇒ 本课一律写带下标的 α_l(液相体积分数)与 α_g(气相体积分数),且 α_l + α_g = 1;⛔ 全课不出现裸 α。要引 A2-03 两相流基础:沸腾、冷凝与流型 的空泡率时写全名「截面空泡率」并加上标。误用后果两个方向都危险:把 CFD 单元里的 α_g 直接当空泡率去查两相关联式,等于把一个局部值当成截面平均值用(近壁单元 α_g 可能是 1 而截面空泡率只有 0.6);反过来把一维模型给的截面空泡率当成 CFD 初场逐单元均匀铺进去,会把一个分层流初始化成弥散流,而 VOF 会花很多步去把它「重新分层」——那些步是纯浪费,且中间态可能触发不该有的相变。
② 本课的 α 与 J3-01 换热器芯体 CFD 与多孔介质模型 的 α 完全无关,两者甚至不同量纲。J3-01 换热器芯体 CFD 与多孔介质模型(换热器芯体 CFD 与多孔介质模型)在它的符号纪律里明写「α 一律指渗透率,单位 m²」,是 Darcy-Forchheimer 黏性阻力项里的那个系数。本课的 α_l/α_g 无量纲。两门课都在 J3 模块里、都做部件级 CFD、读者极可能同一周里读到两份,所以这一条必须点破:看到 α 先看有没有下标、有没有单位。带 l/g 下标且无量纲的是本课的相体积分数;带 m² 的是 J3-01 换热器芯体 CFD 与多孔介质模型 的渗透率。
③ 本课的 Co 是「界面库朗数」,与 J3-06 电驱油冷部件级 CFD:旋转域、自由液面与搅油损失的数值实现 同一口径,是 J2-01 CFD 基础、湍流模型与网格划分(Fluent/STAR-CCM+) 那个 CFL 的特化。J2-01 CFD 基础、湍流模型与网格划分(Fluent/STAR-CCM+) 已把 CFL = u·Δt/Δx 的完整口径讲透(显式格式下是稳定性约束、隐式下退化为时间精度约束、稳态里的伪时间步不按物理时间步理解),本课不重讲。本课与 J3-06 电驱油冷部件级 CFD:旋转域、自由液面与搅油损失的数值实现 共用同一条限定:速度取界面所在单元的界面运动速度、网格尺度取界面活动区的最小尺度——也就是说它是在一个很小的空间子集上算的,整场平均 CFL 完全可能只有零点几而界面处已经过 1。⚠ 再补一条本课特有的:几何重构类的界面追踪(VOF 的锐界面格式)即便挂在隐式求解器上,界面推进那一步仍然是显式的,Co 过 1 会直接破坏界面拓扑。把 Co_max 当成「可以放宽的精度参数」是错的。
④ 干度 x 直接沿用 A2-03 两相流基础:沸腾、冷凝与流型 的定义 x = ṁ_g/(ṁ_g+ṁ_l),本课不另立;⛔ 但必须区分它的两种算法。A2-03 两相流基础:沸腾、冷凝与流型 已经讲透「热力学干度与真实干度会分道」。落到 CFD 里这句话有一个具体的、每次都要做的动作:从 CFD 结果里报干度时,必须写清你是怎么算的——是拿截面上气相质量流量除以总质量流量(真实干度,只有解出了相分布才算得出,是本课的默认口径),还是拿截面平均焓做能量平衡反算(热力学干度,与一维模型同源、便于与 J1-02 制冷循环一维建模与制冷剂物性 对接)。两者在过冷沸腾段与干涸后可以差得很远。本课一律写 x_a(真实干度,actual) 与 x_e(热力学平衡干度,equilibrium),⛔ 不写裸 x。
其余符号在各讲首次出现处定义,全课清单见小结前的符号表。
物性口径:本课凡出现 R134a 具体物性值,一律来自 CoolProp 8.0.0 在指定饱和温度下现算(与 J1-02 制冷循环一维建模与制冷剂物性 同一物性源、同一版本,所以两门课的 h_fg 数值可以互相核对);凡出现氟化液、CO₂ 之外的假想工质,一律标明「教学假设值」。物性属于可给准确值的一类,因此本课给到小数位并写出来源;而凡是与平台、几何、工况绑定的量(热流密度、流量、支路数、网格尺度、经验系数)一律不给准确值,只给教学假设值或典型区间,见小结前的典型参考值表。
按任务导航
⚠ 这门课不必通读。下表左列是这条线上真实会发生的任务,右列是直接去处。表的后五行是本课不覆盖的任务——它们各自带着去向,⛔ 若你的任务落在那几行,请直接转到指定课程,本课不会给你答案。
| 你手上的任务 | 去哪一节 |
|---|---|
| 拿到一个两相算例,第一步要决定 VOF、Mixture 还是欧拉两流体 | 第 1 讲 1.2~1.4,图3、图5 |
| 在软件里找不到 RPI 壁面沸腾,要判断是我的框架错了还是软件缺功能 | 第 1 讲 1.5,图4 |
| 要给项目一个「这个方案要多少网格、能不能算」的开算前估计 | 第 1 讲 1.6,第 4 讲 4.3 |
| Lee 模型的系数 C 到底填多少,有没有可算的判据 | 第 2 讲 2.2~2.3,图6 |
| 壁温算出来比试验高好几度,要判是相变模型欠弛豫还是换热系数不对 | 第 2 讲 2.3 与第 5 讲 5.4(两条判据必须一起看) |
| 要配 RPI 三段热流分配,想知道哪个次模型主导结果 | 第 2 讲 2.4,图7 |
| 算冷凝,要决定膜状还是珠状、要不要单独建液膜 | 第 2 讲 2.5,图8 |
| 时间步该取多大,几条约束里哪一条是卡点 | 第 3 讲 3.2,图10 |
| 界面被抹成一团,要判是格式问题还是时间步问题 | 第 3 讲 3.3,图11 |
| 低流速冷凝算例里流场看着乱,怀疑是数值噪声 | 第 3 讲 3.4,图12 |
| 要算直冷板哪一支会提前干涸、余量还有多少 | 第 4 讲 4.1,图13 |
| 要判冷凝器网格该往哪一段加密 | 第 4 讲 4.2,图14 |
| 要做浸没冷却的槽级仿真,想知道能不能 VOF 硬解 | 第 4 讲 4.3,图15 |
| 算 CO₂ 跨临界,求解器在气冷器出口段来回震荡 | 第 4 讲 4.4,图16 |
| 要交一份能被评审接受的两相 CFD 报告 | 第 5 讲 5.2、5.5~5.6,图18 |
| 台架上支路流量在摆而仿真是稳态收敛的,要判这算不算「对上了」 | 第 5 讲 5.3,图17 |
| 要写沸腾/冷凝关联式本身,或查流型图 | ⛔ 本课不覆盖 ⇒ A2-03 两相流基础:沸腾、冷凝与流型 |
| 要做无相变的自由液面 + 旋转域(油冷电驱搅油) | ⛔ 本课不覆盖 ⇒ J3-06 电驱油冷部件级 CFD:旋转域、自由液面与搅油损失的数值实现 |
| 要做系统级充注分布、压力—质量联立与循环闭环 | ⛔ 本课不覆盖 ⇒ J1-02 制冷循环一维建模与制冷剂物性 |
| 要定焓差法台架规程、测点埋设与不确定度评定 | ⛔ 本课不覆盖 ⇒ L1-01 换热器性能试验(风洞焓差法)、L7-03 试验数据分析与不确定度评估 |
| 要做电池包液冷(单相)流道的流量均匀性 | ⛔ 本课不覆盖 ⇒ J3-02 电池包液冷流道 CFD 与流量均匀性 |
第 1 讲 两相方法选型:先定框架,再选相变模型
单相 CFD 里「用哪个模型」基本上只是湍流模型的选择,选错了误差是量的。两相相变 CFD 不是——方法族的选择决定了你后面还能配哪些相变模型、能解析什么尺度的界面、以及这个算例要不要花十倍的算力。选错了不是误差大一点,是整条路走不通。
1.1 三个方法族到底在解什么方程
先把三个名字背后的方程数说清楚。⚠ 下面每一条都决定了后面能配什么相变模型,⛔ 别当成术语介绍跳过。
① VOF(Volume of Fluid,界面追踪)。两相共享一套速度场与压力场,另外多解一个相体积分数 α_l 的输运方程:
∂α_l/∂t + ∇·(α_l·u) = −ṁ‴/ρ_l
变量与单位:α_l 液相体积分数(无量纲,0~1);u 共享速度场(m/s);ṁ‴ 体积相变质量源,蒸发为正(kg/(m³·s));ρ_l 液相密度(kg/m³)。 适用条件:两相之间没有显著的相间滑移,即界面尺度远大于网格尺度、两相在同一单元里不会以「弥散颗粒 + 连续相」的方式共存。 失效边界:当界面结构小于网格(弥散气泡、雾状流),共享速度场这个前提直接不成立——此时 VOF 给出的不是「解析不足的正确答案」,而是一个物理上不存在的东西:一团被平均掉的、以液相速度运动的「灰色流体」。
物性按 α 混合:ρ = α_l·ρ_l + (1−α_l)·ρ_g,μ 同理。VOF 的核心能力是「界面在哪」这个几何信息,代价是它必须解析界面。
② Mixture(混合模型)。同样一套共享速度场与压力场,同样解 α 输运,但额外用一个代数式给出相间滑移速度(漂移通量 u_slip = f(ρ_l−ρ_g, 加速度, 粒径)),把「气泡比液体跑得快」这件事以代数方式补回来,而不是解第二套动量方程。⇒ 它的定位是弥散相、低算力:算得动大域,能表达浮升与分层趋势,但给不出界面几何。
适用条件:弥散相体积分数不太高(典型上限 10%~20%,标「典型」,超过之后相间作用不再能用代数漂移式概括);相间滑移由浮力与阻力平衡主导,不是由惯性主导。 失效边界:需要界面形状的场合(液膜、弹状气泡、液面破碎)、需要相间能量不平衡的场合(一相过热一相饱和)——Mixture 只有一个共享温度场,两相被强制热平衡,而过冷沸腾的本质恰恰是热力学非平衡(A2-03 两相流基础:沸腾、冷凝与流型 1.1 讲透了这件事)。
③ 欧拉-欧拉双流体(Eulerian two-fluid / EMP)。每一相各有自己的动量方程、能量方程和体积分数方程,两相共享一个压力场,靠相间作用闭合(曳力、升力、湍流扩散力、壁面润滑力、相间传热、相间传质)耦合起来。⇒ 方程数最多、相间闭合子模型最多、最难收敛,但它是唯一能表达「气相温度与液相温度不同」的框架——这正是壁面沸腾必须的。
适用条件:弥散相为主(泡状、雾状),或需要相间热力学非平衡;有可用的相间闭合子模型(曳力关联式、界面面积密度模型或群体平衡)。 失效边界:大界面分层流——双流体框架下没有界面几何,把一个分层流硬套双流体,会得到一个「上半格气相下半格液相各自流动、界面处靠曳力粘着」的近似,压降与换热都算不准;⇒ 此时要么回 VOF,要么用两者的混合(Multi-Fluid VOF:在界面能解析处用 VOF 重构、在弥散处用双流体,主流商用软件已提供)。
1.2 第一条判据:界面结构能不能被网格解析
选型的第一问不是「这是什么流型」,而是一个可以在开算前手算的比值:
N_int = L_int / Δx
变量与单位:N_int 界面解析度(无量纲,单位「单元/界面特征尺寸」);L_int 界面结构的特征尺寸(m)——泡状流取气泡直径 D_b,环状流取液膜厚度 δ_f,分层流取界面波长;Δx 界面所在区域的网格尺度(m)。 适用条件:Δx 取的必须是界面活动区的尺度,⛔ 不是全域平均网格尺度。 失效边界:界面结构尺寸本身不唯一时(如泡径分布很宽)这条判据只能给出上下界,此时应按最小的那一档判——因为最小的那一档决定了「有没有一部分相分布是纯数值产物」。
判据(本课钉死,全课引用):
- N_int ≥ 8:界面可解析 ⇒ VOF 可用,且可以配界面解析型相变(Lee/Tanasawa/Schrage)。8 是行业典型下限,标「典型」;要解析曲率驱动的现象(液滴聚并、Laplace 压力跳)通常要 16 以上。
- 3 ≤ N_int < 8:灰区。VOF 能跑,但界面形状不可信,压降与换热都会带系统性偏差;此时要么加密、要么承认你只在算「相分布的趋势」而不是几何。
- N_int < 3:界面不可解析 ⇒ VOF 在这里给出的是伪结果,必须走 Mixture 或欧拉双流体。
【算例 1-A:两个方向都算一遍,看判据怎么翻转】(全部为教学假设几何,⛔ 不对应任何平台、⛔ 不得取用)
情形甲:直冷扁管内的环状流液膜,δ_f = 40 μm,你打算用的界面区网格 Δx = 25 μm。
N_int = 40×10⁻⁶ / 25×10⁻⁶ = 1.6 ⇒ 落在 N_int < 3 档 ⇒ VOF 不可用于解析这层液膜。 要把它推到 8,需要 Δx ≤ 40/8 = 5 μm。
情形乙:同一根管的低干度段弹状气泡,气泡长度 ~3 mm、直径 ~0.9 mm(受扁管高度限制),Δx 仍取 25 μm。
N_int = 0.9×10⁻³ / 25×10⁻⁶ = 36 ⇒ 远超 8 ⇒ 同一根管、同一套网格,低干度段的弹状气泡完全可以 VOF 解析,而高干度段的液膜完全不能。
⇒ 这就是两相 CFD 与单相 CFD 最根本的差别:判据在同一个域内沿程翻转。你不可能用一个「够不够」的答案覆盖整条流道。落到操作上有三条出路,代价依次上升:①截域——只算你要的那一段,把上下游用边界条件接进来(最常用,第 4 讲 4.1 会做);②分区网格——高干度段局部加密到 5 μm 量级,代价是单元数与时间步同时恶化(Δx 减 5 倍,Δt 按 Co 约束也减 5 倍,总代价 5⁴ = 625 倍,第 3 讲会算);③换框架——高干度段改用带液膜子模型的方法,不去硬解那 40 μm。
1.3 第二条判据:流型与方法的匹配
第一条判据管「解析得动吗」,第二条管「这个框架的物理前提成立吗」。两条都要过。⚠ 常见的错是只过了第一条:网格够细,于是用 VOF 去算一个泡状流——网格确实解析得了单个气泡,可域里有几十万个气泡,你解析了它们,代价是算力爆炸而且没有任何额外信息,因为你要的答案(截面平均的换热与压降)本来就不需要每个气泡的形状。
流型分档承接 A2-03 两相流基础:沸腾、冷凝与流型 第 2 讲,本课只做「流型 → 方法」这一层映射:
| 流型(承 A2-03 两相流基础:沸腾、冷凝与流型) | 界面特征 | 推荐框架 | ⛔ 为什么不能用另一个 |
|---|---|---|---|
| 分层流 / 波状流 | 单一大界面,界面波长远大于网格 | VOF | 双流体没有界面几何,分层界面处只能靠曳力粘着,压降偏差大 |
| 塞状 / 弹状流 | 大气泡与液塞交替,界面清晰 | VOF | 同上;且弹状流的压降主要由界面形状与液膜厚度决定 |
| 环状流(液膜厚) | 贴壁液膜 + 气芯,δ_f 可解析 | VOF(或 VOF + 液膜子模型) | 双流体的「液相」会被涂满整个截面,拿不到 δ_f |
| 环状流(液膜薄)+ 夹带液滴 | δ_f 数十微米 + 弥散液滴 | Multi-Fluid VOF 或 VOF + 欧拉液滴 | 纯 VOF 解析不了液滴(N_int<3);纯双流体拿不到液膜 |
| 泡状流 | 大量弥散小气泡 | 欧拉双流体(配群体平衡)或 Mixture | VOF 要逐个解析气泡,算力上不可行,且信息冗余 |
| 雾状流 / 干涸后 | 气相连续 + 弥散液滴 | 欧拉双流体 | 同上;且干涸后壁面无液膜,必须能表达气相过热 |
⚠ 表里最容易被跳过的是第四行。「环状流(薄膜)+ 夹带」是蒸发器高干度段与直冷板末端的真实流型,也就是你最关心干涸的那一段——而它恰恰是唯一一个单靠 VOF 或单靠双流体都不成立的行。⇒ 一个诚实的做法是:承认你算不了这一段的机理,改用「液膜质量守恒 + 夹带/沉积关联式」的降阶处理,把 CFD 用在能算的那部分上。第 4 讲 4.1 就是这么做的。
1.4 第三条判据:你要交付的响应量是什么
前两条判据是物理侧的,第三条是交付侧的,而它常常能把前两条的结论直接推翻——因为一个你不需要的量,解析它没有价值。
把交付物摊开成四类,各自对框架的最低要求完全不同:
| 你要交付的量 | 最低框架要求 | ⛔ 哪些东西不需要 |
|---|---|---|
| 段平均换热系数 / 总换热量 | Mixture 甚至一维即可 | ⛔ 不需要界面几何、不需要逐泡解析 |
| 压降与流量分配 | Mixture 或双流体 | ⛔ 不需要相变细节,需要的是空泡率沿程分布 |
| 局部壁温与干涸位置 | 必须能表达壁面液膜与热力学非平衡 ⇒ VOF+液膜 或 双流体+RPI | 这是本课的主战场 |
| 界面形状 / 气泡尺寸分布 / 液滴夹带 | VOF(解析)或 双流体+群体平衡(统计) | ⛔ 两条路给的是两种东西:一个是几何、一个是分布函数 |
⚠ 这张表最重要的用法是反着用:如果你的交付物只在第一行,就不要因为「两相所以要 VOF」而去做一个解析界面的算例。本课见过的最贵的一类浪费,就是为了一个段平均换热系数去解析了三百万个气泡。
1.5 钉子①:框架决定了你能配哪些相变模型
现在把钉子①钉进去。相变模型不是可以自由挑选的一个下拉菜单——它挂在框架上,框架定了菜单就定了。
| 相变模型 | 它需要什么 | 挂在哪个框架下 | ⛔ 在别的框架下为什么没有 |
|---|---|---|---|
| Lee(体积质量源,∝ 过热/过冷度) | 一个 α 场 + 一个温度场 | VOF / Mixture / 双流体都可以 | 它是最通用的一个,代价是最粗糙 |
| Tanasawa / Schrage(界面解析型,∝ 界面面积) | 能算出界面法向与界面面积密度 | VOF(需界面重构) | Mixture 与双流体没有几何界面,界面面积只能靠关联式估,此时它退化成一个 Lee 型 |
| Rohsenow 型亚网格核态沸腾(壁面热流分成单相 + 沸腾两段) | 一个壁面 + 液相温度 | VOF / 单相 + 沸腾修正 | 它不需要解析气泡,是发动机水套过冷沸腾的主流做法 |
| RPI 三段热流分配(对流 + 淬灭 + 蒸发) | 一个独立求解的气相场去接收蒸发那一段热流,且气液可以不同温 | 只有欧拉两流体(Fluent 需 Eulerian 或 Multi-Fluid VOF;STAR-CCM+ 需 EMP Wall Boiling) | 经典 VOF 只有一个共享速度场与一个共享温度场,蒸发那一段热流没有地方接收——不是软件没做,是框架里不存在那个自由度 |
⇒ 这就是引言里那个「在经典 VOF 下找不到 RPI」的完整解释。它不是一个软件功能缺失的问题,是一个自由度不存在的问题:RPI 要把壁面热流分成三段,其中 q_evap 那一段的去处是「生成气相并把它以气相的温度带走」,而经典 VOF 里气相和液相被强制同温、共享一个速度场——那一段热流没有独立的接收方。⇒ 正确的动作是回到 1.1~1.4 重新过一遍框架判据,如果确实需要壁面沸腾的三段分配,就得付欧拉双流体那 3~8 倍的算力;如果付不起,就退到 Rohsenow 型亚网格沸腾,接受「拿不到气相温度、拿不到相分布」这个代价,把交付物降到「壁温 + 段平均换热」这一层。
1.6 算力账:开算前就要算出来的那个数
选型的最后一步是把代价算出来。⚠ 这一步必须在开算之前做,因为「算了两周发现算不完」是这条线上最贵的失败形态——它花掉的不只是机时,是项目的时间窗口。
【算例 1-B:直冷扁管的网格量与算力账】(全部为教学假设几何与参数,⛔ 不对应任何平台、⛔ 不得取用)
设一块直冷板由 20 条并联扁管组成,单管断面 1.0 mm × 4.0 mm,管长 300 mm。目标是解析低干度段的弹状气泡(1.2 节情形乙判定为可解析),取界面区 Δx = 25 μm,为简化按全域均匀网格估:
断面单元数 = (1.0×10⁻³/25×10⁻⁶) × (4.0×10⁻³/25×10⁻⁶) = 40 × 160 = 6,400 轴向单元数 = 300×10⁻³/25×10⁻⁶ = 12,000 单管单元数 = 6,400 × 12,000 = 7.68×10⁷ 全板 20 管 = 1.54×10⁹ 单元
⇒ 结论一:全板 VOF 解析在结构上不可行(1.5×10⁹ 单元的瞬态两相算例不在任何常规工程算力的射程内)。⇒ 必须截域:只算一条扁管(7.68×10⁷ 仍然偏大),并且把管长再截。
继续:只算一条管的中段 30 mm:
单元数 = 6,400 × (30×10⁻³/25×10⁻⁶) = 6,400 × 1,200 = 7.68×10⁶ 单元 ⇒ 落进可算范围。
再算时间:取界面速度 2 m/s、Co_max = 0.25(第 3 讲会说明为什么取这么严):
Δt = 0.25 × 25×10⁻⁶ / 2 = 3.125×10⁻⁶ s 要算的物理时长:让流体走完 30 mm 至少要 30×10⁻³/2 = 0.015 s,取 3 个流经时间以获得准稳态 ⇒ 0.045 s 时间步数 = 0.045 / 3.125×10⁻⁶ = 14,400 步
⇒ 结论二:7.68×10⁶ 单元 × 14,400 步的瞬态两相算例是可做的,但它只覆盖 30 mm——而你真正关心的干涸发生在 280 mm 处。⇒ 这就把「CFD 该干什么」这个问题逼出来了:CFD 不去算整根管,它去算一段代表性流道,产出的是局部换热与相分布的机理理解 + 给一维模型标定用的闭合关系;整根管沿程的干度演化交给能量平衡与一维模型(第 4 讲 4.1 与第 5 讲 5.5 会把这条交接线画清楚)。
⚠ 这一段的结论请连着第 4 讲 4.3 一起看:在浸没冷却那个场景里,同样一笔算力账会得出更极端的结论——那里连「截一段」都救不了,必须换框架。
本讲小结:两相方法选型要过三条判据且顺序不能反——①界面解析度 N_int = L_int/Δx(≥8 可解析、<3 是伪结果,且它沿同一条流道翻转);②流型与框架匹配(VOF 管大界面、双流体管弥散相、环状流薄膜+夹带那一行两个都不成立);③交付的响应量决定最低框架要求,一个不需要的量解析它没有价值。三条过完才轮到相变模型,而框架已经把相变模型的菜单定死了——RPI 三段热流分配只在欧拉两流体下存在,因为经典 VOF 里蒸发那一段热流没有接收方(钉子①)。最后必须在开算前算一笔网格与时间步的账,它常常直接把「算整块板」这个想法否掉,逼出「CFD 算一段、一维算全程」的正确分工。
后面还有 4 讲正文 · 关键公式 · 案例拆解 · 常见误区 · 动手做