Spalart-Allmaras模型
Spalart-Allmaras理论基础
概述
老师,我听说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$ 是唯一的几何输入,不需要额外求解湍流长度尺度方程。这就是单方程模型的简洁性。
「用单方程求解机翼」——Philippe和Amir的赌局
1992年Philippe Spalart和Steven Allmaras发表的SA模型采用「仅解一条涡粘性输运方程」的理念。当时CFD社区存在「不解两条方程就无法计算湍流」的固有偏见,单方程方法遭到怀疑。但翼面边界层的计算精度不低于双方程模型,航空业也因此迅速接纳该模型。NASA外部空气动力CFD指南多年来推荐该模型,正是因为这个单方程的轻量性和鲁棒性。
Spalart-Allmaras数值计算方法
FVM中的离散化
在CFD求解器中怎样离散化SA模型?
使用有限体积法(FVM)离散化与其他标量输运方程相同。对流项和扩散项转换为面通量进行离散化。
但SA模型有其特殊之处。非线性扩散项 $c_{b2}(\nabla\tilde{\nu})^2$ 不符合标准扩散项形式,需要作为源项处理,或采用保守形改写技巧。
壁面距离 $d$ 的计算
壁面距离怎样计算?需要计算所有单元到最近壁面的距离,对吧?
对。壁面距离计算主要有两种方法。
| 方法 | 计算量 | 精度 | 并行化 |
|---|---|---|---|
| 几何搜索(Brute Force) | $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}$ 变成负值时在物理上无意义。采用以下对策。
- 负值限制(Negativity clipping):当 $\tilde{\nu} < 0$ 时设为零
- SA-neg变体:Allmaras等(2012)提出的负值容许版本。对生成项和耗散项进行修正,即使 $\tilde{\nu} < 0$ 也能稳定计算
- 源项隐式线性化:将 $S_{\tilde{\nu}} = S_c + S_p \cdot \tilde{\nu}$ 分解,将 $S_p < 0$ 部分植入系数矩阵
OpenFOAM中也实现了SA-neg变体吗?
OpenFOAMv2306之后,SpalartAllmaras 类中包含了负值处理。Fluent也已支持SA-neg。
SA模型的壁距——小输入的大影响
Spalart-Allmaras模型唯一的几何输入就是壁面距离 $d$,这个 $d$ 的精度直接影响整个模型的精度。在复杂形状中,比如翼与襟翼的间隙或机身与发动机的接合处,壁面距离计算会变困难。特别是在内壁(腔体内表面)被误认为是「外壳」时,壁面距离会过大,导致局部涡粘性严重高估。使用SA模型时必须养成习惯,总是将壁距场可视化检查一遍,这是现场确保计算精度的铁则。
Spalart-Allmaras实际应用
SA模型的适用范围
请告诉我应该使用SA模型的场景和应该避免的场景。
有明确的适用分界。
| 适用场景 | 原因 |
|---|---|
| 翼型周围空气动力分析(NACA翼、飞机翼) | 开发目标本身。附着边界层高精度 |
| 火箭喷嘴内部流 | 壁面附近稳定,高Re适应 |
| 涡轮叶栅基本研究 | 计算成本低,多工况检验适合 |
| DES/DDEs的RANS区域 | SA-DES、SA-DDEs广泛应用 |
| 应该避免的用途 | 原因 |
|---|---|
| 自由剪切层(喷流、混合层) | 自由剪切层展宽率会高估 |
| 强旋转流(旋风分离器、涡室) | 无法捕捉异向性效应 |
| 大规模剥离(钝头物体后方) | 再附着位置预测精度低 |
| 浮力驱动流 | 浮力-湍流相互作用模型未完善 |
网格要求
SA模型需要多高的网格分辨率?
SA模型设计前提是求解到壁面附近。内置低雷诺数阻尼函数 $f_{v1}$,因此 $y^+ \approx 1$ 是理想的。
| 参数 | 推荐值 |
|---|---|
| 壁面第一层 $y^+$ | 1以下 |
| 边界层内的层数 | 20层以上 |
| 增长率 | 1.1〜1.2 |
| 流向分辨率 | 翼弦长度每200个单元以上 |
可以和壁函数组合使用吗?
可以,但不推荐。SA模型的优势就在于壁面行为的精确性,用壁函数省略的话优势就没了。如果想用壁函数,k-epsilon系或SST k-omega更合适。
DES/DDEs的连接
请介绍SA-DES。
Spalart等(1997)提出的分离涡模拟(DES)通过修正SA模型的壁面距离 $d$ 实现,使得壁面外的区域表现出LES特性的混合方法。
其中 $\Delta$ 是网格宽度,$C_{\text{DES}} = 0.65$。壁面附近 $d < C_{\text{DES}}\Delta$ 时为RANS,离壁面较远时 $C_{\text{DES}}\Delta < d$ 则表现为LES。
DDEs与DES有什么区别?
延迟分离涡模拟(DDES)是Spalart等(2006)的改进版,防止了在边界层内不必要地切换到LES模式的「网格诱导剥离」问题。引入延迟函数 $f_d$ 在边界层内维持RANS。航空领域中DDEs实际上已成为标准。
SA模型在航天器热环境评估中的应用
航天飞机再入时的空气动力加热分析中也活跃着Spalart-Allmaras模型。其单方程的轻量性使得大量参数研究成为可能,再入角度、速度、姿态的各种组合都能用CFD进行网格化评估。在计算资源有限的1990年代至2000年代,SA比双方程快25〜30%的速度优势是决定性的。这体现了「简洁就是力量」的Unix哲学在SA模型中的体现。
Spalart-Allmaras软件对比
求解器实现对比
不同求解器中SA模型的实现有差异吗?
模型方程本身相同,但对DES变体和支持程度有所不同。
| 功能 | Ansys Fluent | Ansys CFX | STAR-CCM+ | OpenFOAM |
|---|---|---|---|---|
| 标准SA | 支持 | 支持 | 支持 | 支持 |
| 带旋转/曲率修正 | 支持(SA-RC) | 支持 | 支持 | 支持 |
| SA-neg(负值容许) | 支持 | -- | 支持 | 支持 |
| SA-DES | 支持 | 支持 | 支持 | 支持 |
| SA-DDES | 支持 | 支持 | 支持 | 支持 |
| SA-IDDES | 支持 | -- | 支持 | 支持 |
NASA验证案例的对比
不同求解器中SA模型的结果一致吗?
NASA湍流建模资源提供的验证案例(平板、NACA 0012、DPW等)中,设置正确的话各求解器结果基本一致。但以下因素会导致差异。
| 差异原因 | 影响 |
|---|---|
| 壁面距离的计算方式 | 复杂形状中单元 $d$ 值不同 |
| 对流格式精度 | 二阶迎风 vs. MUSCL vs. TVD格式 |
| 源项线性化方式 | 收敛性和稳定性受影响 |
| 转捩处理 | 完全湍流 vs. trip条件 |
在Fluent中设置的步骤是什么?
1. Models > Viscous > Spalart-Allmaras (1 Equation) 选择
2. 在Options中选择Strain/Vorticity-Based Production(推荐Vorticity)
3. 如需启用曲率修正,在SA Options中勾选Rotation/Curvature Correction
4. 入口BC中将Modified Turbulent Viscosity设为 $3\nu$ 〜 $5\nu$
OpenFOAM设置示例
OpenFOAM中怎样设置?
在 constant/turbulenceProperties 中如下指定。
```
RAS {
model SpalartAllmaras;
turbulence on;
printCoeffs on;
}
```
初始条件在 0/nuTilda 文件中设置。内部场为 $3\nu$ 〜 $5\nu$,壁面为 fixedValue uniform 0。
SA模型是航空领域的首选,对DES/DDEs的扩展性很强,这是优势吧。在工业应用中常是SA和SST k-omega的二选一。
理解正确。壁面精细处理的航空类选SA,壁函数配合或热分析需求的话SST k-omega更合适。这就是划分。
NASA的SA验证页面——公开标杆对全球的影响
NASA湍流建模资源网站公开发布了包括SA模型在内的主要RANS模型的参考实现和验证数据。这个网站的整备使「我的计算与NASA标准解一致」这样的表述成为可能,为求解器间比较奠定了标准基础。Fluent、OpenFOAM、SU2等求解器开发者都用这个NASA基准来验证自己的实现。Spalart本人也参与了该网站的维护,将自己的模型变成「官方标尺」的研究者是罕见的。
Spalart-Allmaras前沿研究
旋转·曲率修正(SA-RC)
SA模型的旋转曲率修正是怎样的?
Shur等(2000)提出的修正在生成项中加入旋转曲率效应。乘以旋转函数 $f_{r1}$,
$f_{r1}$ 由应力率张量与旋转率张量的比计算。凸面侧(稳定作用)抑制湍流,凹面侧(不稳定作用)增强湍流。
什么场景下会显示效果?
翼尖涡、U型管内流、涡轮机械叶栅等曲率强的流动中可见改善。NASA通用研究模型(CRM)的翼尖部分使用SA-RC时,标准SA比实验一致性更好。
SA-QCR(Quadratic Constitutive Relation)
也听说过SA-QCR。
标准的Boussinesq假设(线性涡粘性模型)中,雷诺应力张量与应力率成正比。SA-QCR(Spalart,2000)在此基础上添加二次项来部分再现异向性。
其中 $a_{ij}$ 是规格化雷诺应力的异向性张量,$C_{cr1} = 0.3$。
翼-机身接合部的角涡和翼根的二次流预测能改善。NASA拖曳预报研讨会(DPW)显示,SA-QCR的阻力预报比标准SA更接近实验。
机器学习的改进
有用AI改进SA模型的研究吗?
有。代表性方法有以下两种。
1. 场反演与机器学习(FIML):Parikh-Duraisamy(2016)。通过最小化实验数据差异在全场反演生成项修正系数 $\beta(\mathbf{x})$,再用ML将 $\beta$ 一般化
2. 物理约束神经网络(PINN):将SA输运方程作为物理约束植入神经网络,用少量DNS/LES数据优化模型常数
FIML已是实用阶段吗?
还在研究阶段,但波音等在考虑飞机设计的应用。SA模型通过壁面距离函数的结构与FIML配合性好,比其他RANS模型更容易改进。
SA-noft模型
还有其他变体吗?
SA-noft(无 $f_{t2}$ 项)是去掉转捩项 $f_{t2}$ 的简化版,在完全湍流计算中与标准SA结果几乎相同。NASA湍流建模资源推荐在无特殊原因时使用SA-noft。这也是Fluent的标准实现。
SA模型与DES——「壁采RANS,涡采LES」的创意
Spalart-Allmaras模型也是分离涡模拟(DES)这一划时代手法的出发点。DES(1997年提出)通过修正SA的壁面距离 $d$,使得边界层内采用RANS,剥离域采用亚网格模型进行LES计算的混合方法。「仅用一种模型的切换就连接RANS和LES」的想法当时非常新颖,是SA模型设计者Spalart自身对模型的拓展。现今DES、DDES、IDDES的全部根源都追溯到SA模型。
Spalart-Allmaras故障排查
常见问题及对策
SA模型计算不正常时,要检查什么?
1. nuTilda 变成负值
症状:计算中 $\tilde{\nu}$ 变为负值,发生NaN/Inf
原因:初始条件不适当($\tilde{\nu}$ 初值为零或极小),网格品质差,入口边界发生逆流
对策:
- 初值设为 $\tilde{\nu} = 3\nu$ 〜 $5\nu$
- 采用SA-neg变体(Fluent自动处理)
- 入口的 $\tilde{\nu}$ 值增大(临时增至 $10\nu$ 稳定后恢复)
- 检查网格质量指标(偏斜度 < 0.85)
2. 壁面距离计算错误
壁面距离错误会怎样?
症状:耗散项 $c_{w1}f_w(\tilde{\nu}/d)^2$ 变成异常值,涡粘性过大或过小
原因:多个壁面接近区域(间隙、薄结构)壁面距离计算不准
对策:
- Fluent中Solve > Initialize > Wall Distance 重新计算
- OpenFOAM中
wallDist的 method 从meshWave(默认)改为Poisson试试 - 间隙极窄时简化形状
3. 自由剪切层高估
喷流的展宽角有问题。
症状:喷流展宽率比实验大20〜30%
原因:SA模型未针对自由剪切流做过校正。壁面距离 $d$ 大的区域散逸不足,涡粘性过大
对策:
- 喷流混合层分析改用SST k-omega或k-epsilon Realizable
- 切换到DES/DDEs,用LES求解自由剪切层
4. 转捩位置与实验不符
症状:翼面层流湍流转捩位置与实验不同
原因:标准SA模型假设完全湍流。没有转捩预测功能
对策:
- 要考虑转捩则用SA + $\gamma$-$Re_\theta$ 转捩模型
- Fluent可用Transition SST
- 用trip条件手动指定转捩位置(NASA案例常用)
验证用基准
用什么基准验证SA模型的结果?
NASA湍流建模资源(https://turbmodels.larc.nasa.gov/)最可信。推荐以下案例。
| 案例 | 验证项 | 实验数据 |
|---|---|---|
| 平板 | $C_f$ 分布 | Wieghardt (1951) |
| NACA 0012 | $C_p$, $C_L$-$\alpha$ | Gregory-O'Reilly (1970) |
| RAE 2822 | 跨音速 $C_p$ | Cook等 (1979) |
| DPW (CRM) | 巡航工况 $C_D$ | NASA CRM实验 |
先用平板验证 $C_f$ 是否符合理论值($C_f = 0.058 Re_x^{-0.2}$),再进行NACA翼就是标准流程吧。
ν̃变负——OpenFOAM用户最初踏的地雷
SA模型的工作变量 ν̃(修正涡粘性)理论上非负,但数值计算时可能变负,导致涡粘性变负,计算发散。OpenFOAM的SpalartAllmaras求解器引入了SA-neg变形来处理负值,但旧版本对策不足,初学者常被卡住。「OpenFOAM的SA中nu_t有问题」是CFD论坛的定番话题,正确设置第一层网格y+和ν̃初值是解决的捷径。
相关主题
错误