数值振荡 — CAE术语解释
数值振荡
老师,CFD的结果中压力和密度有时会呈锯齿波形波动,那是什么现象呢?
那就是"数值振荡"啊。简单来说,就是物理上本不应该存在的振荡出现在解中的现象。特别是在冲击波之类的不连续面附近容易发生。数学上这被称为吉布斯现象,原理是一样的。
诶,用高阶格式应该精度会更高吧,为什么反而出现奇怪的振荡?
就是这样啊。用1阶迎风差分不会出现振荡,但是会因为数值扩散而模糊。用2阶或更高阶格式精度确实会提高,但是在不连续面附近会出现超调和欠调。这就是精度和振荡的权衡啊。
那在实际工程中怎么处理呢?只能降低精度吗?
用TVD格式是标准做法。TVD是Total Variation Diminishing的缩写,意思是保证"解的全变分不随时间增加"。在不连续面附近会自动切换到低阶来抑制振荡,在光滑区域保持高阶精度。很巧妙的设计呢。
会自动切换啊!那个"切换"具体是怎么控制的呢?
用限制函数(通量限制器)来控制。有minmod、Van Leer、superbee等多种。比如minmod最保守,不易出现振荡但有点扩散。superbee比较激进,能锐利捕捉接触不连续,但有时候还是会有振荡。
比如在超音速流的冲击波求解中,限制函数的选择会大幅影响结果吧?
影响巨大。比如用Sod问题(冲击管问题)来测试就一目了然了。中心差分的话冲击波前后会出现猛烈的振荡,但用Van Leer限制函数就能干净地求解。不过接触不连续面会有点钝化,需要根据要求精度来选择限制函数,这是实际工程的诀窍啊。
明白了,出现振荡的话首先检查限制函数的设置,根据问题类型来选择。这样就明白了!
完全同意。还有判断是否有振荡也很重要,光看等值面图有时候看不出来,一定要在沿线上检查,养成习惯。振荡通常是两个网格宽度的锯齿波,只看等值面容易遗漏啊。
正确理解CAE术语是团队沟通的基础。— Project NovaSolver也考虑为实务工作者提供学习支持。
下一代CAE项目:连接开发者和实务工作者
Project NovaSolver正在探索在包括数值振荡在内的广泛仿真领域,充分发挥实务工作者知识的环境的实现。虽然还在路上,但我们诚邀愿意与我们一起前进的各位。
咨询(筹备中)相关主题
价值
详细
错误