EDC模型(涡耗散概念)
理论与物理
概述
老师,EDC模型是哪个词的缩写?
是Eddy Dissipation Concept的缩写,是Magnussen对Eddy Dissipation Model(EDM)进行发展的湍流燃烧模型。EDM假设化学反应无限快,而EDC则将其扩展为能够在湍流场中处理有限速率的详细化学反应机理。
也就是说它是EDM的升级版吗?
是的。在EDM中,反应速率由湍流混合决定,如 $\dot{\omega} = A\,\rho\,\frac{\varepsilon}{k}\min(Y_F, Y_O/s)$,并忽略了Arrhenius动力学。这在Damkohler数较大(反应足够快)的情况下是合理的,但对于CO氧化或NOx生成等有限速率反应则不准确。EDC克服了这一局限。
EDC的公式化
请告诉我EDC的控制方程。
EDC认为化学反应在湍流场的精细结构(fine structure)内进行。精细结构的体积分数 $\xi^*$ 和滞留时间 $\tau^*$ 由湍流的 $k$, $\varepsilon$ 按以下方式求得。
这里 $C_\xi = 2.1377$, $C_\tau = 0.4082$(Magnussen的标准常数),$\nu$ 是运动粘度。
精细结构的尺寸对应于Kolmogorov尺度吗?
敏锐的观察。$\xi^*$ 对应于Kolmogorov尺度的体积分数,$\tau^*$ 是Kolmogorov时间尺度的量级。物理上可以理解为“化学反应在湍流的最小涡中进行”。
反应速率的表达
化学组分 $i$ 的平均反应速率可以写成如下形式。
这里 $Y_i^*$ 是精细结构内的质量分数,是经过 $\tau^*$ 时间详细化学反应进行后的组成。$Y_i$ 是单元平均质量分数。
$Y_i^*$ 是怎么求得的呢?
通过在精细结构内对定容的0维反应器进行 $\tau^*$ 时间的时间积分来求得。这个0维积分会使用CVODE等刚性ODE求解器。也就是说,EDC的计算成本大部分在于这个0维化学反应积分。
EDC的核心概念是“在湍流精细结构中求解0维反应器”对吧。
正是如此。EDC的优势在于用物理上清晰的模型表达了湍流与化学反应的相互作用。
Magnussen在挪威思考的“湍流与燃烧的交点”——EDC诞生的背景
Bjørn Magnussen在挪威理工大学(NTH)发表EDC是在1977年。当时的计算机无法求解详细的反应机理。于是他构思了“化学反应只在湍流的Kolmogorov尺度涡中进行”这一模型,成功地用“精细结构的体积分数”和“湍流耗散”来描述反应。由于计算成本低且对炉子、燃烧器的预测精度达到了实用水平,因此立即受到了石油工业的关注。之后在SINTEF(挪威工业研究所)不断改进,如今已成为Fluent、STAR-CCM+的标准配置。
各项的物理意义
- 时间项 $\partial(\rho\phi)/\partial t$:想象一下打开水龙头的瞬间。最初水流会不稳定地喷溅,过一会儿才会变成稳定的水流对吧?描述这个“变化过程中”的就是时间项。心脏搏动导致血流脉动,发动机阀门每次开闭导致流动变化,这些都是非定常现象。那么定常分析是什么?就是只观察“经过足够时间流动稳定之后”——也就是将此项设为零。计算成本会大幅下降,因此先用定常求解是CFD的基本策略。
- 对流项 $\nabla \cdot (\rho \mathbf{u} \phi)$:把落叶丢进河里会怎样?会被水流带着往下游漂对吧。这就是“对流”——流体运动搬运物质的效果。暖风的暖气能到达房间的另一端,也是因为空气这个“搬运工”通过对流输送了热量。这里有趣的是——这项包含了“速度×速度”,因此是非线性的。也就是说,流速变快这项会急剧增强,变得难以控制。这就是湍流的根本原因。常见的误解:“对流和传导差不多”→ 完全不一样!对流是流动搬运,传导是分子传递。效率有天壤之别。
- 扩散项 $\nabla \cdot (\Gamma \nabla \phi)$:有过在咖啡里倒入牛奶后放置的经历吗?即使不搅拌,过一会儿也会自然混合对吧。那就是分子扩散。那么下一个问题——蜂蜜和水,哪个更容易流动?当然是水对吧。因为蜂蜜的粘性($\mu$)高,所以不易流动。粘性越大扩散项越强,流体的运动就变得“粘稠”。雷诺数小的流动(缓慢、粘稠)中扩散占主导。相反,Re数大的流动中对流占压倒性优势,扩散则成为配角。
- 压力项 $-\nabla p$:注射器的活塞一推,液体就会从针头有力地喷出对吧?为什么呢?因为活塞侧压力高,针头侧压力低——这个压力差产生了推动流体的力。水坝放水也是同样的原理。天气图上等压线密集的地方会怎样?没错,会刮强风。“有压力差的地方就会产生流动”——这就是纳维-斯托克斯方程压力项的物理意义。这里的误解点:CFD中的“压力”通常指表压而非绝对压力。切换到可压缩分析时结果突然出错,原因可能就是混淆了绝对压力/表压。
- 源项 $S_\phi$:被加热的空气会上升——为什么呢?因为比周围空气轻(密度低),被浮力推上去了。这个浮力作为源项添加到方程中。此外,燃气灶的火焰产生化学反应热,工厂的电磁泵对金属熔液施加洛伦兹力……这些都是“从外部向流体注入能量或力”的作用,都用源项来表示。忘记源项会怎样?自然对流分析中忘记加入浮力,流体就完全不动——冬天房间里开了暖气,暖空气却不上浮,得到这种物理上不可能的结果。
假设条件与适用范围
- 连续介质假设:克努森数 Kn < 0.01(分子平均自由程 ≪ 特征长度)时成立
- 牛顿流体假设:剪切应力与应变速率呈线性关系(非牛顿流体需要粘度模型)
- 不可压缩假设(Ma < 0.3时):将密度视为常数。马赫数0.3以上需考虑可压缩性效应
- Boussinesq近似(自然对流):仅在浮力项中考虑密度变化,其他项使用恒定密度
- 不适用的情形:稀薄气体(Kn > 0.1)、超音速/极超音速流动(需要捕捉激波)、自由表面流动(需要VOF/Level Set等方法)
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 速度 $u$ | m/s | 入口条件中从体积流量换算时,注意截面积单位 |
| 压力 $p$ | Pa | 区分表压与绝对压力。可压缩分析中使用绝对压力 |
| 密度 $\rho$ | kg/m³ | 空气: 约1.225 kg/m³@20°C,水: 约998 kg/m³@20°C |
| 粘性系数 $\mu$ | Pa·s | 注意与运动粘性系数 $\nu = \mu/\rho$ [m²/s] 混淆 |
| 雷诺数 $Re$ | 无量纲 | $Re = \rho u L / \mu$。层流/湍流转换的判定指标 |
| CFL数 | 无量纲 | $CFL = u \Delta t / \Delta x$。直接关系到时间步长的稳定性 |
数值解法与实现
数值方法的细节
请告诉我EDC数值实现中需要注意的地方。
计算成本的估算
具体需要多少成本呢?
我来给出一个大致标准。
| 反应机理 | 化学物种数 | 每单元积分时间 | 100万单元的总成本(1次迭代) |
|---|---|---|---|
| 全局2步 | 5 | 0.01 ms | 10秒 |
| DRM-19 | 19 | 0.1 ms | 100秒 |
| GRI-Mech 3.0 | 53 | 1 ms | 1000秒(~17分钟) |
| 详细C7H16 | 160 | 10 ms | 10000秒(~3小时) |
GRI-Mech 3.0一次迭代要17分钟啊… RANS定常计算如果需要3000次迭代,那就要35天。
所以必须与ISAT结合使用。即使使用GRI-Mech 3.0,配合ISAT也能在实用时间内完成计算。在Fluent中,EDC + Stiff Chemistry Solver + ISAT的组合是默认的推荐设置。
Fluent中的设置
请告诉我Fluent中EDC的设置步骤。
1. Models > Species > Species Transport 启用
2. Reactions: Volumetric 选择,并以CHEMKIN格式导入反应机理
3. Turbulence-Chemistry Interaction: 选择 Eddy Dissipation Concept
4. EDC Model Constants: 通常使用默认值($C_\xi = 2.1377$, $C_\tau = 0.4082$)即可
5. ODE Solver: 启用ISAT,误差容限 $10^{-4}$
6. Solution Controls: Species Under-Relaxation 设置为0.8-0.9
OpenFOAM中的实现
OpenFOAM中呢?
在OpenFOAM的 reactingFoam 求解器中,在 combustionProperties 中指定EDC。
```
combustionModel EDC;
EDCCoeffs
{
version v2005;
C1 2.1377;
C2 0.4082;
}
```
OpenFOAM的EDC实现也支持v2005(Magnussen 2005修订版)。修订版中加入了雷诺数依赖的 $\xi^*$ 修正,改善了低Re数区域的精度。
EDC常数的敏感性
改变EDC常数 $C_\xi$, $C_\tau$ 结果会怎样变化?
增大 $C_\xi$ 会增加精细结构体积,从而提高反应速率。增大 $C_\tau$ 会延长滞留时间,同样会使反应更充分。通常默认值就足够了,但也有研究报告为了调整火焰抬升高度而将$C_\xi$改变±20%左右。不过这种调整是案例依赖的,没有通用的推荐值。
看来EDC的实现中,与ISAT结合使用是实际应用的关键。
是的。不使用ISAT的EDC计算即使用于研究也非常耗时。需要结合ISAT的精度设置一起进行调优。
EDC与Strang Splitting的结合——将反应与扩散“分割”求解的实现智慧
EDC模型数值实现中常用的技巧是“Strang Splitting(斯特朗分割法)”。反应源项(化学时间尺度:微秒)与湍流混合(流体时间尺度:毫秒)的时间尺度相差好几个数量级,如果两者作为同一个ODE求解,刚性会爆炸式增加。分割法在每个时间步中“先用CHEMKIN求解器进行化学反应子步的内部循环→然后是输运子步”,交替求解。这使得每个子步的刚性急剧下降。OpenFOAM的reactingFoam也采用了这种实现,有报告称通过选择Strach Splitting的阶数,可以实现1.5倍以上的加速。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必须使用。
中心差分(Central Differencing)
二阶精度,但Pe数 > 2时会产生数值振荡。适用于低雷诺数的扩散主导流动。
TVD格式(MUSCL、QUICK等)
通过限制器函数抑制数值振荡同时保持高精度。对捕捉激波或陡峭梯度有效。
有限体积法 vs 有限元法
FVM:自然地满足守恒定律。CFD的主流。FEM:对复杂形状、多物理场有利。SPH等无网格法也在发展中。
CFL条件(库朗数)
显式方法:CFL ≤ 1是稳定条件。隐式方法:即使CFL > 1也稳定,但影响精度和迭代次数。LES:推荐CFL ≈ 1。物理意义:一个时间步内信息传播不超过一个单元。
残差监控
なった
詳しく
報告