斯帕拉特-阿尔玛拉斯模型

分类: 流体解析(CFD) | 综合版 2026-04-06
CAE visualization for spalart allmaras theory - technical simulation diagram
Spalart-Allmarasモデル

理论与物理

概述

🧑‍🎓

老师,我听说Spalart-Allmaras模型在航空领域经常使用,这到底是个什么样的模型呢?


🎓

Spalart-Allmaras(SA)模型是一个单方程模型,仅通过一个关于修正涡粘性 $\tilde{\nu}$ 的输运方程来描述湍流。由Philippe Spalart和Steven Allmaras于1992年发表。它是专门针对飞机机翼绕流开发的,现已成为NASA的标准湍流模型之一。


🧑‍🎓

单方程的意思是说,它比k-epsilon的两方程模型更轻量吗?


🎓

没错。由于少了一个输运方程,计算成本更低,收敛也更快。它在近壁面区域表现良好,对于附着边界层和弱逆压梯度下的流动具有很高的精度。


控制方程

🧑‍🎓

请告诉我具体的方程。


🎓

修正涡粘性 $\tilde{\nu}$ 的输运方程如下。


$$ \frac{D\tilde{\nu}}{Dt} = c_{b1}\tilde{S}\tilde{\nu} - c_{w1}f_w\left(\frac{\tilde{\nu}}{d}\right)^2 + \frac{1}{\sigma}\left[\nabla\cdot\left((\nu + \tilde{\nu})\nabla\tilde{\nu}\right) + c_{b2}(\nabla\tilde{\nu})^2\right] $$

🎓

各项的物理意义如下。


物理意义
生成项$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}$ 按如下方式计算。


$$ \nu_t = \tilde{\nu}\, f_{v1}, \quad f_{v1} = \frac{\chi^3}{\chi^3 + c_{v1}^3}, \quad \chi = \frac{\tilde{\nu}}{\nu} $$

在近壁面区域($\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$ 是唯一的几何输入,无需额外求解湍流长度尺度方程。这正是单方程模型的简洁之处。

Coffee Break 闲谈

“用一个方程解机翼”——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)中的离散化,与其他标量输运方程采用相同的框架。将对流项和扩散项转换为面通量进行离散化。


$$ \int_V \frac{\partial(\rho\tilde{\nu})}{\partial t}dV + \oint_S \rho\tilde{\nu}\mathbf{u}\cdot d\mathbf{A} = \oint_S \frac{\rho(\nu+\tilde{\nu})}{\sigma}\nabla\tilde{\nu}\cdot d\mathbf{A} + \int_V S_{\tilde{\nu}}\, dV $$

🎓

但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条件(库朗数)

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

熱解析V&V・品質保証構造解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
关于作者