原则上,我知道有限的差异。在大学里,我们讨论过它并推导出一致性和边界条件。但我仍然有一个大问题。
如何设计一个好的有限差分方案?
我应该怎么做,我的解决方案不会振荡或产生其他奇怪的东西。当我查看一个方案时,我如何判断它是好还是坏?
原则上,我知道有限的差异。在大学里,我们讨论过它并推导出一致性和边界条件。但我仍然有一个大问题。
如何设计一个好的有限差分方案?
我应该怎么做,我的解决方案不会振荡或产生其他奇怪的东西。当我查看一个方案时,我如何判断它是好还是坏?
方案的质量取决于要求解的方程的类型。您可以检查色散和耗散:奇数阶方案的主要误差项通常是耗散的,而偶数阶方案的主要误差项通常是色散的;确实,某些方案,例如对称中心方案,只有分散误差项(感谢 David Ketcheson 指出这一点)。
如果您的解决方案很顺利,即。没有不连续性,则中心方案优于有偏方案。
如果您的解决方案不平滑,则需要逆风或逆风偏向方案。中央方案将产生振荡。不过,可以使用过滤或人工耗散来抵消振荡。
顺风偏向不稳定。
如果您正在运行具有平滑和非平滑区域的问题,那么您可以查看调整顺序和/或偏差的方案,例如 WENO 或 ENO 方案。
确定方法稳定性的一种方法是冯诺依曼稳定性分析,您可以将傅里叶级数形式的解代入方程,并查看扰动是否被放大。
几乎所有的稳定性方法都只适用于线性偏微分方程,但可以从这些方法中对非线性稳定性有所了解。
另一个经常出现的问题是电网质量。一些方案可以很好地容忍非均匀网格,而另一些方案如果在非均匀网格上使用会变得不稳定。通常,高阶方案比低阶方案对网格问题更敏感。
最后要检查的是保护,如果这很重要。您可能会想出一个一致但不保守的数值方案。如果它是保守的,那么它是一个伸缩序列,当在网格上求和时,你应该只剩下序列中的边界项。这在直觉上是有道理的,进来的东西就出去了。
在空气动力学中,这方面的经典例子是 1970 年用于跨音速流动计算的 Murman-Cole 方案。该方案用于求解跨音速势方程。但最初的公式实际上给出了比它应该更接近现实生活的答案,它显示了它不应该显示的粘性效应和非线性效应。1973 年,Murman 发现了这个问题并发布了一个更正以使该方案保守。答案变得“更好”,因为它显示了求解方程的预期解,但该解离真实的物理解更远。所以从业者仍然使用非保守形式,因为它碰巧给出了一个更物理的答案,尽管这样的答案不是它应该解决的方程的解。有时犯错是幸运的。