斯帕拉特-阿尔玛拉斯模型
理论与物理
概述
老师,我听说Spalart-Allmaras模型在航空领域经常使用,这到底是个什么样的模型呢?
Spalart-Allmaras(SA)模型是一个单方程模型,仅通过一个关于修正涡粘性 $\tilde{\nu}$ 的输运方程来描述湍流。由Philippe Spalart和Steven Allmaras于1992年发表。它是专门针对飞机机翼绕流开发的,现已成为NASA的标准湍流模型之一。
单方程的意思是说,它比k-epsilon的两方程模型更轻量吗?
没错。由于少了一个输运方程,计算成本更低,收敛也更快。它在近壁面区域表现良好,对于附着边界层和弱逆压梯度下的流动具有很高的精度。
控制方程
请告诉我具体的方程。
修正涡粘性 $\tilde{\nu}$ 的输运方程如下。
各项的物理意义如下。
| 项 | 式 | 物理意义 |
|---|---|---|
| 生成项 | $c_{b1}\tilde{S}\tilde{\nu}$ | 由平均速度梯度产生的湍流生成 |
| 耗散项 | $c_{w1}f_w(\tilde{\nu}/d)^2$ | 依赖于壁面距离 $d$ 的破坏 |
| 扩散项 | $\frac{1}{\sigma}[\nabla\cdot((\nu+\tilde{\nu})\nabla\tilde{\nu}) + c_{b2}(\nabla\tilde{\nu})^2]$ | 分子扩散+湍流扩散 |
涡粘性的计算
如何从 $\tilde{\nu}$ 求出涡粘性 $\nu_t$ 呢?
使用阻尼函数 $f_{v1}$ 按如下方式计算。
在近壁面区域($\chi \ll 1$),$f_{v1} \to 0$,$\nu_t$ 会自动衰减。这是SA模型的一大特点,无需额外添加低雷诺数阻尼函数。
模型常数
有多少个常数呢?
以下是标准常数。
| 常数 | 值 | 常数 | 值 |
|---|---|---|---|
| $c_{b1}$ | 0.1355 | $c_{b2}$ | 0.622 |
| $\sigma$ | 2/3 | $\kappa$ | 0.41 |
| $c_{w1}$ | $c_{b1}/\kappa^2 + (1+c_{b2})/\sigma$ | $c_{w2}$ | 0.3 |
| $c_{w3}$ | 2.0 | $c_{v1}$ | 7.1 |
看起来常数很多,但 $c_{w1}$ 是从其他常数推导出来的呢。实质上独立的常数大概有6个左右吧。
没错。而且壁面距离 $d$ 是唯一的几何输入,无需额外求解湍流长度尺度方程。这正是单方程模型的简洁之处。
“用一个方程解机翼”——Philip与Amir的赌注
1992年由Philip Spalart和Steven Allmaras发表的SA模型,其设计理念是“只求解涡粘性本身的单个输运方程”。当时的CFD界普遍认为“不求解两个方程就无法计算湍流”,因此单方程方法受到了质疑。然而,它在机翼表面边界层的计算精度上不逊于甚至优于两方程模型,在航空业界迅速普及。它之所以长期被NASA的外部空气动力学CFD指南推荐,正是因为这单方程的轻量与稳健。
各项的物理意义
- 时间项 $\partial(\rho\phi)/\partial t$:想象一下拧开水龙头的瞬间。最初水流会不稳定地喷溅,过一会儿才变成稳定的水流,对吧?描述这个“正在变化的过程”的就是时间项。心脏搏动导致血流脉动,发动机阀门每次开闭引起流动变化,这些都是非定常现象。那么定常分析是什么?就是只观察“经过足够长时间流动稳定之后”的状态——也就是令此项为零。计算成本因此大幅降低,所以先用定常分析求解是CFD的基本策略。
- 对流项 $\nabla \cdot (\rho \mathbf{u} \phi)$:把落叶丢进河里会怎样?它会随水流被带到下游,对吧?这就是“对流”——流体运动搬运物体的效果。暖气的热风能到达房间另一端,也是因为空气这个“搬运工”通过对流输送热量。这里有个有趣的地方——这项包含“速度×速度”,因此是非线性的。也就是说,流速越快,这项会急剧增强,变得难以控制。这正是湍流的根本原因。常见的误解:“对流和传导差不多”→ 完全不一样!对流是流动搬运,传导是分子传递。效率有天壤之别。
- 扩散项 $\nabla \cdot (\Gamma \nabla \phi)$:有过在咖啡里倒入牛奶后放置不管的经历吗?即使不搅拌,过一会儿也会自然混合。那就是分子扩散。那么下一个问题——蜂蜜和水,哪个更容易流动?当然是水,对吧?因为蜂蜜的粘性($\mu$)高,所以不易流动。粘性越大,扩散项越强,流体的运动就变得“粘稠”。雷诺数小的流动(缓慢、粘稠)中扩散占主导。相反,雷诺数大的流动中,对流占压倒性优势,扩散则成为配角。
- 压力项 $-\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$。直接关系到时间步长的稳定性 |
数值解法与实现
FVM中的离散化
在CFD求解器中如何对SA模型进行离散化呢?
有限体积法(FVM)中的离散化,与其他标量输运方程采用相同的框架。将对流项和扩散项转换为面通量进行离散化。
但SA模型有特有的注意事项。非线性扩散项 $c_{b2}(\nabla\tilde{\nu})^2$ 不符合标准扩散项的形式,因此需要作为源项处理,或者想办法改写为守恒形式。
壁面距离 $d$ 的计算
壁面距离是怎么计算的呢?需要所有网格单元到最近壁面的距离对吧?
是的。计算壁面距离主要有两种方法。
| 方法 | 计算量 | 精度 | 并行化 |
|---|---|---|---|
| 几何搜索(暴力法) | $O(N_{cell} \times N_{wall})$ | 精确 | 通信成本高 |
| 泊松方程法 | $O(N_{cell})$ | 近似 | 容易 |
泊松方程法通过求解 $\nabla^2 \phi = -1$,然后用 $d \approx |\nabla\phi| + \sqrt{|\nabla\phi|^2 + 2\phi}$ 来估算。Fluent默认使用这种方法。在大规模并行计算中比几何搜索更高效。
边界条件
在壁面和远场要设置什么样的边界条件呢?
边界 条件 备注
壁面 $\tilde{\nu} = 0$ 完全无滑移条件
入口 $\tilde{\nu}_{\text{in}} = 3\nu$ 〜 $5\nu$ 低湍流度的外部流动
远场 $\tilde{\nu}_{\infty} / \nu = 3$ 〜 $5$ NASA推荐值
入口的 $\tilde{\nu}$ 设置会影响结果。NASA湍流模型资源推荐 $\tilde{\nu}/\nu = 3$,但为了与风洞实验对比,需要根据湍流强度进行调整。
数值稳定性的技巧
使用SA模型时计算会变得不稳定吗?
如果 $\tilde{\nu}$ 变为负值,在物理上是无意义的。可以使用以下对策。
- 负值截断: 当 $\tilde{\nu} < 0$ 时截断为零
- SA-neg 变体: Allmaras等人(2012)提出的允许负值版本。修正了生成项和破坏项,使得即使 $\tilde{\nu} < 0$ 也能稳定计算
- 源项的隐式线性化: 将 $S_{\tilde{\nu}} = S_c + S_p \cdot \tilde{\nu}$ 分解,并将 $S_p < 0$ 的部分纳入系数矩阵
SA-neg变体在OpenFOAM中也有实现吗?
OpenFOAM的v2306及以后版本中,SpalartAllmaras 类包含了负值处理。Fluent也已支持SA-neg。
Coffee Break 闲谈
SA模型的壁距离——微小输入的巨大影响
Spalart-Allmaras模型的唯一几何输入是壁面距离 $d$,这个 $d$ 的精度决定了整个模型的精度。对于复杂形状,例如机翼与襟翼的间隙、机体与发动机的结合部,壁距离的计算会变得困难。特别是如果将内壁(空腔的内表面)误识别为“外壁”,壁距离会被高估,导致局部涡粘性被高估。使用SA模型时,养成务必可视化检查壁距离场的习惯,是保障计算精度的现场铁则。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必不可少。
中心差分(Central Differencing)
二阶精度,但佩克莱特数 > 2 时会产生数值振荡。适用于低雷诺数的扩散主导流动。
TVD格式(MUSCL、QUICK等)
通过限制器函数抑制数值振荡,同时保持高精度。对于捕捉激波或陡峭梯度有效。
有限体积法 vs 有限元法
FVM:自然地满足守恒定律。CFD的主流。FEM:对复杂形状和多物理场问题有利。SPH等无网格法也在发展中。
CFL条件(库朗数)
相关主题
この記事の評価ご回答ありがとうございます!参考に
なったもっと
詳しく誤りを
報告
在壁面和远场要设置什么样的边界条件呢?
| 边界 | 条件 | 备注 |
|---|---|---|
| 壁面 | $\tilde{\nu} = 0$ | 完全无滑移条件 |
| 入口 | $\tilde{\nu}_{\text{in}} = 3\nu$ 〜 $5\nu$ | 低湍流度的外部流动 |
| 远场 | $\tilde{\nu}_{\infty} / \nu = 3$ 〜 $5$ | NASA推荐值 |
入口的 $\tilde{\nu}$ 设置会影响结果。NASA湍流模型资源推荐 $\tilde{\nu}/\nu = 3$,但为了与风洞实验对比,需要根据湍流强度进行调整。
使用SA模型时计算会变得不稳定吗?
如果 $\tilde{\nu}$ 变为负值,在物理上是无意义的。可以使用以下对策。
SA-neg变体在OpenFOAM中也有实现吗?
OpenFOAM的v2306及以后版本中,SpalartAllmaras 类包含了负值处理。Fluent也已支持SA-neg。
SA模型的壁距离——微小输入的巨大影响
Spalart-Allmaras模型的唯一几何输入是壁面距离 $d$,这个 $d$ 的精度决定了整个模型的精度。对于复杂形状,例如机翼与襟翼的间隙、机体与发动机的结合部,壁距离的计算会变得困难。特别是如果将内壁(空腔的内表面)误识别为“外壁”,壁距离会被高估,导致局部涡粘性被高估。使用SA模型时,养成务必可视化检查壁距离场的习惯,是保障计算精度的现场铁则。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必不可少。
中心差分(Central Differencing)
二阶精度,但佩克莱特数 > 2 时会产生数值振荡。适用于低雷诺数的扩散主导流动。
TVD格式(MUSCL、QUICK等)
通过限制器函数抑制数值振荡,同时保持高精度。对于捕捉激波或陡峭梯度有效。
有限体积法 vs 有限元法
FVM:自然地满足守恒定律。CFD的主流。FEM:对复杂形状和多物理场问题有利。SPH等无网格法也在发展中。
CFL条件(库朗数)
相关主题
なった
詳しく
報告