化学种输运 — CAE术语解释
化学种输运
在燃烧模拟中出现「求解化学种输运方程」,与普通流体方程有什么区别吗?
化学种输运的理论基础
化学种输运的基本概念
「化学种输运」只是在Navier-Stokes方程中增加项吗?
本质上不仅仅是增加。这是基于质量守恒的独立方程。例如,化学种k的质量分率Yk的输运由对流、扩散以及化学反应引起的生成和消耗决定。控制方程如下:
其中,ρ是密度,u是速度矢量,Dk是扩散系数,ω̇k是反应源项。需与Navier-Stokes方程耦合求解。
扩散系数Dk如何确定?空气中的氧气和水蒸气应该差别很大。
这个观察很敏锐。对于多成分系统,通常不是简单应用Fick定律,而是使用Maxwell-Stefan方程或详细的输运模型。在实务中,从物性数据库计算得到。例如,在298K和1气压条件下,空气中水蒸气的扩散系数约为2.5×10-5 m²/s,而同条件下氦气约为7×10-5 m²/s,差异近三倍。通常参考Ansys Fluent的材料数据库或NIST的REFPROP。
反应源项ω̇k看起来最复杂。最简单的反应模型是什么?
在有限速率反应模型中,单步总体反应的Arrhenius型是最简单的。例如,氢气燃烧 H₂ + 0.5O₂ → H₂O,反应速率R可表示为:
其中,A是频率因子,Ea是活性化能,R是气体常数。但这个模型精度有限,实用燃烧分析通常采用详细化学反应机制(如GRI-Mech 3.0)或EDC、焰片等高级模型。
化学种输运的数值计算方法
离散化和求解器设置
化学种输运方程的对流项离散化,可以用流场分析相同的格式吗?比如QUICK?
不能一概而论。化学种浓度通常具有很强的梯度,一阶迎风差分会因数值扩散导致解过于平缓。推荐采用高阶精度格式,但需权衡稳定性。Ansys Fluent默认使用「二阶迎风」,为了获得更高精度可选择「QUICK」或「三阶MUSCL」。不过在反应界面等不连续面附近,需要应用TVD(总变差递减)格式。
听说反应源项ω̇k是非线性且刚性很强。求解器如何处理?
这正是最大的难点。化学反应的时间尺度往往比流体流动的时间尺度短几个数量级,显式方法会导致时间步长极小。因此必须采用隐式方法。具体来说,在求解器内部采用「算子分裂法」将化学反应部分分离,用专门的刚性ODE求解器(如VODE或DVODE)求解。COMSOL的「化学反应工程模块」和OpenFOAM的「reactingFoam」求解器都采用类似方法。
耦合顺序如何安排?是先求解流场,再用该速度场求解化学种,反复迭代吗?
有「分离式算法」和「耦合式算法」两种选择。分离式是你所说的顺序求解,计算成本较低,但在强耦合的燃烧问题中收敛性差。耦合式将动量、连续性和化学种方程作为大矩阵同时求解。Ansys Fluent的「耦合求解器」和Abaqus/CFD的默认方法属于此类。对于反应热导致密度大幅变化的问题,耦合求解器往往收敛更稳定。
化学种输运的实际应用
工作流和检查点
开始进行包含化学种输运的分析时,首先应确认什么?
首先确认「物性的一致性」。具体来说:
1. 所有化学种的物性(分子量、比热、扩散系数)是否已定义。
2. 反应式是否正确,化学计量系数与反应热是否匹配。
3. 流入边界条件中,化学种分率之和是否等于1.0。
忽略这些将导致质量守恒失效,计算结果毫无物理意义。初始条件也需要进行同样的检查。
网格需要多细?反应发生的位置往往预先不知道。
这确实是困难之处。经验法则是,在可能发生反应的区域(如燃料和氧化剂混合的区域),网格应能用至少数个单元分辨扩散层厚度。扩散层厚度δ可估计为δ ~ √(D τ)(D:扩散系数,τ:停留时间)。例如停留时间0.1秒、扩散系数10-5 m²/s,则δ约1 mm。该区域的网格尺寸应小于0.2-0.3 mm。Ansys的「自适应网格细分」功能可在计算过程中自动对浓度梯度大的位置进行细分。
只看残差判断收敛够吗?
绝对不够。化学种输运尤其在存在反应时,残差降低并不意味着重要物理量已达稳态。必须设置监测点,观察代表性化学种的质量分率或反应放热率、区域内总质量等积分量的时间序列。这些量平稳无振荡地趋向常数值,才能判断真正收敛。此外,全域元素(C、H、O等)的质量守恒是最终检验项目。
化学种输运软件比较
各软件的特点和应用实例
Ansys Fluent和COMSOL Multiphysics在处理化学种输运时,根本区别是什么?
哲学思路不同。Fluent提供「专用物理模型」。燃烧问题上有非预混/预混/部分预混火焰、EDC模型等针对性优化的黑盒模型。COMSOL则强调「基于方程的自由度」。用户可用PDE形式定义任意输运方程,自由设置扩散系数和反应项。前者实务效率高,后者适合实现学术和先进的反应模型。
Abaqus也能做化学种输运吗?它主要是结构分析软件。
可以。Abaqus/Standard和Abaqus/Explicit具有「质量扩散」分析功能。但主要针对固体或多孔介质内的扩散(如氢脆、混凝土盐分渗透),不适合流体中伴有对流的复杂输运。复杂情况需用Abaqus/CFD或与STAR-CCM+等联合。涉及化学反应时需自定义子程序「UMATHT」或「UEXPAN」,不如Fluent便利。
开源软件呢?OpenFOAM的反应流求解器实用吗?
OpenFOAM的「reactingFoam」和「fireFoam」非常强大实用。特别是能直接读入化学反应机制文件(CHEMKIN格式)这一点,在研发中是大优势。但缺少商用软件的GUI,需要直接编辑字典文件。刚性反应求解器(ODE系数矩阵处理)和高级乱流燃烧模型的实现,很大程度上取决于用户知识。计算成本与同精度商用软件相当。
化学种输运故障排除
常见错误和解决方案
计算中出现「质量分率超出0~1范围」的错误。为什么?
主要原因两个。一是「对流项数值格式」。使用高阶精度格式时,数值振荡可能导致分率局部超过1或低于0。对策是暂时改用「一阶迎风」或Fluent的「有界二阶」。另一个是「过大的反应源项」。时间步太大导致一步内反应进行过快,质量分率变负。解决方法是减小时间步,或对反应模型的反应速率设上限。
加入反应后残差完全不收敛。发散前应停止计算吗?
不要急着停止。首先关闭反应(令反应速率常数为0),验证纯流动和被动标量输运能收敛。再「缓慢」启动反应。具体做法是用控制参数(如Arrhenius式前的乘数)从0.01或0.1开始,每次收敛后逐步增大至1.0的「反应渐进法」很有效。同时降低求解器松弛系数严于默认值也有帮助,例如将能量方程松弛系数从0.8降至0.6。
计算似乎已收敛,但质量守恒严重崩溃(流入和流出的元素量不相等)。该查什么?
这很严重。按顺序检查:
1. 边界条件:压力出口是否发生逆流?逆流时「回流化学种分率」设置不正确会额外注入质量。
2. 反应式定义:化学计量系数错误会导致元素无故生成或消失。手工验证反应前后各元素原子数。
3. 用户定义函数:若用UDF定义反应源项或物性,检查其中是否有bug。
4. 离散化格式:「一阶迎风」的数值扩散会放大见表误差。改用高阶精度格式重算,误差减少则可证实问题所在。
相关主题
更详细
错误