这取决于您所说的数值稳定性标准 - 在 CFL 条件下,对特征值有明确的要求,以确保时间步长方法不会发散。有了 Peclet 数,就不太清楚了——你知道你不想要大的振荡,但除此之外很难量化它,尤其是在 2 维和 3 维以及 FD 和 FEM 的高阶方法中。您可以使用正确的 Peclet 数或一维稳定方案获得精确的节点稳定性,但通常很难扩展这些想法。
我是从 FEM 的角度来解决这个问题的,所以请记住,可能还有其他方法可以处理 FD/FV 的这种不稳定性。典型的方法包括
- 人工扩散 - 你添加一个虚假的扩散项来制作你的 Peclet 数≈1. 但是这些很可疑-它们会改变您解决的问题,并且可以为您提供一个遥不可及的答案(对于非零强迫,这通常会变得更糟)。此功能的高级版本仅在高梯度区域添加扩散(请参阅冲击捕获人工扩散)。
- 稳定术语——这类似于比尔的逆风,有点像人工扩散。但是,与人工扩散不同,它还修改了考虑强制项的方式,因此避免了上述一些问题。对于 FEM,这可以解释为更改您的加权函数。对流-扩散问题的难点在于你不想过于扩散;您的解决方案可能看起来不错,但可能完全错误。
- 通量限制/TVD/MUSCL 方案——我对这些方案知之甚少,但它们似乎很受 FD 和 FV 人群的欢迎。据我所知,您可以动态更改模板或数值通量以实现某些属性(局部最大原则、变化减少解决方案等)。
有几个很好的起点——这篇关于 FEM 的先验和后验估计的教程论文详细介绍了 Peclet 数O(1)FEM 中良好的先验估计是必需的,并且这些想法也应该延续到 FD。
另一篇标题有趣的好论文是不要抑制摆动!他们正在通过 Gresho 告诉你一些事情。它警告了太多逆风的危险,而只是寻求“好看的解决方案”。
至于这 3 种方法的论文,我不知道有什么特别具有里程碑意义的论文,只能推荐谷歌搜索。
(顺便说一句,如果这看起来有点令人困惑或随意,IMO,该领域有点随意和令人困惑 - 对流扩散问题的数值方法,尽管看起来很简单,但似乎仍然存在许多未解决的问题。)