计算流体力学漫谈-1 (可压缩向)
计算流体力学漫谈-1 (可压缩向)
计算流体力学漫谈-1 (可压缩向)
文章目录
- 计算流体力学漫谈-1 (可压缩向)
- 0. 前言
- 1.可压缩流动NS方程的特点
- 2. 时间离散和空间离散
- 3. 定常 vs 非定常 (Steady vs Unsteady)
- 4. 显式格式 vs 隐式格式
- 5. 有限差分 vs 有限体积
- 6. 计算格式不稳定性的基本概念以及CFL条件
- 7. 定常/非定常流动的各种解法
- 8. 商业软件中出现的各类让人抓狂现象
- 9. 国产可压缩流计算软件展望
0. 前言
聊点可压缩计算流体力学(Computational Fluid Dynamics for Compressible Flow)吧, 毕竟这是CFD所有方向中逼格最高的一块. 如果说发动机是工业之花, 那么可压缩流动计算那就是CFD之花.
顾名思义, 适应这种流动的计算格式不仅要完成方程离散, 还要能正确表达可压缩流动中出现的各种间断. 间断是一切问题的根源, 如果非定常的间断那就更加酸爽. 我在另外一篇博文中说了, 双曲-抛物型方程, 秉承了抛物型方程的发展性质(天然的非定常特性), 以及双曲方程的非线性性质(间断就是拜这个双曲型所赐), 对格式的时间精度和空间离散精度都提出极高的要求.
今天先写一部分, 后面继续写
- June 30, 2021, 第一次撰写.
1.可压缩流动NS方程的特点
可压缩流动的计算, 为什么比不可压流动的计算逼格要高呢?
-
首先就是处理各类间断(激波和接触间断). 在数字面前, 物理量只有大小之分, 没有连续和间断之别. 所以如何在流场中清晰的捕捉和表达各种间断, 如何让数值格式能在巨大的物理量梯度下还能稳如狗, 那就是技术含量所在了.
-
其次为了解决这破事,对守恒性的要求极为严格. 所以能量方程不能丢的, 密度方程也不能丢的, 相比于不可压流动主要求解压力和速度, 可压缩流动至少需要求解密度, 速度, 温度(或者等价的能量). 表面上看多求解个能量方程, 是不是能让从业人员有点优越感?
说起来不可压缩流或者弱可压缩流动在工程中更为常见, 风工程, 船舶, 一般的工业燃烧问题, 都是弱可压的用武之地. 但由于航空航天天然的高逼格地位, 让可压缩计算也跟着提升了档次, 并且把不可压缩流的研究排挤出计算流体圈子, 搞得这部分人只好说自己搞数值传热学, 一般不提自己搞不/弱可压流动了.
学术倾轧虽然只是图一时之快, 但对工业的影响那是实实在在的. 不可压/弱可压算不好, 机理搞不清楚, 仿真不准, 所有相关的设计能力都打折扣. 不可压和燃烧那是双胞胎, 是紧密结合的, 汽车用的发动机搞不过欧美吧(这个还有经济性问题, 热效率上不去在市场下就什么也不是), 民用航空发动机也搞不过吧, 还是效率不行.
反观欧美, 在这方面的研究可谓深入, 还有spalart那种cfd大牛, 人家居然是搞不可压的. 所以人家相关的工业厉害, 工业软件fluent, cfx也厉害(谁知道谁成就了谁?)
2. 时间离散和空间离散
作为扯淡文, 本来不想上方程, 但是为了叙述方便还是上一个. 下式中, 等号左端是求解向量的时间导数, 一般称为左端项, 等号右边统称右端项.
∫Ω∂Q∂tdΩ=−∫∂Ω(Fc⋅n⃗−Fv⋅n⃗)dS+∫ΩρS(Q)dΩ{\int _\Omega }\frac{{\partial Q}}{{\partial t}}d\Omega =- {\int _{\partial \Omega }}({{\bf{F}}^c} \cdot \vec n - {{\bf{F}}^v}\cdot\vec n)dS + {\int _\Omega }\rho \;{\bf{S}}(Q)\;{\rm{d}}\Omega ∫Ω∂t∂QdΩ=−∫∂Ω(Fc⋅n−Fv⋅n)dS+∫ΩρS(Q)dΩ
-
左端项 包含时间偏导数, 所以离散过程被称为时间离散 (Temporal Discretization).
单变量导数直接采用一阶向前差分, 或者两层时间中心差分等. 非定常情形中, 对时间导数离散精度非常看重. -
右端项 只包含空间偏导数, 所以被称为空间离散(Spatial Discretization)
右端项的离散决定了每个时刻离散的数值流场的分辨率和精度.- 分辨率高的格式, 3~4个网格就捕捉一道激波, 分辨率渣的格式, 10个网格才能抓一个激波(fluent用户表示很受伤) ;
- 精度决定了数值流动对大梯度的容忍性(等价的, 对复杂流场的表达能力).
一阶精度只能让单元内是均匀分布, 二阶单精度允许单元内物理量线性分布, 高阶精度允许单元内物理量呈现高阶分布, 在一个网格内就能表达更丰富的物理现象.
3. 定常 vs 非定常 (Steady vs Unsteady)
如果流场中每点物理量都不随时间变化, 那么左端项时间导数恒为0, 那么就称为定常.
如果流场中物理量随时间变化, 那么就是非定常.
定常/非定常是物理概念, 很简单. 这根计算格式没有半毛钱关系.
4. 显式格式 vs 隐式格式
显式(Explicit)和隐式(Impilicit) 是针对时间离散来说的.
显示格式中, 下一时刻量不参与计算, 直接由当前时刻所有物理量求出.
隐式格式中, 下一时刻量参与计算, 本来就是未知的, 还参与计算, 是玩我吗? 对的, 就是玩你. 所以不迭代怎么可能.
显式格式和隐式格式只针对时间离散而言, 跟定常非定常也没有半毛钱关系.
5. 有限差分 vs 有限体积
可以看我的前一篇博文. 下次详细说.
6. 计算格式不稳定性的基本概念以及CFL条件
呃, 下次再说.
7. 定常/非定常流动的各种解法
-
非定常问题的显式时间推进
这个没什么好说的 -
非定常问题的隐式时间推进
双时间步长是个让人费解的技术. -
定常问题的时间推进解法
既然是可压缩, 就得有点可压缩的样子. 即便是定常问题, 也得考虑时间离散.
8. 商业软件中出现的各类让人抓狂现象
商业软件成熟, 但不意味着计算结果可靠, 也不意味着计算格式被周全的实现.
Fluent的6000K温度限制, 是不是很酸爽?
CFD++ 的ACFL问题, 是不是很酸爽?
Fastran的NaN, Negative density, 是不是很酸爽?
9. 国产可压缩流计算软件展望
呃, 有谁值得期待呢? 博主值得期待吗?