PDE的求解顺序调换,会影响结果么?
-
2025年3月,岳子回国教学CFD编程,现场让学生植入湍流模型,方程在黑板一写,学生植入的代码各种不一样,各种bug就出来了,当然岳子也是手到擒来,各种拿捏。
但是有一个问题属实卡住了。学生发现,PDE的求解顺序不一样,导致结果大不相同。
首先这是一个稳态的算法,整体是一个大迭代的过程,因此PDE方程求解顺序会影响结果,但不应该有这么大的影响。然而下面两个图,是k方程与epsilon方程求解顺序互相调换后的的结果。
因为是自己写的代码,所以不方便别人debug。感兴趣可以把OpenFOAM里面的kEpsilon模型的k方程、epsilon方程求解调换一下顺序,会发现原本250步收敛的pitzDaily,现在需要计算2000步(但结果基本差不多)。
因为稳态问题或许会收到求解顺序的影响,但不应该这么大(1、原生kEpsilon模型250步收敛的更改后2000步没收敛;2、或者我们自定义代码的nut的特别大的区别)。
目前我已经找到了解决方法(先求解k且不影响结果),但是原因并不能自圆其说。感兴趣的老铁,欢迎讨论。