可以从经验中获得很多见识,我只是想知道以前是否有人看到过类似的东西。该图显示了对流扩散方程的初始条件(绿色),然后是迭代200(蓝色),然后是迭代400(红色)的解。
对流扩散方程的解经几次迭代后就爆炸了。Peclet数,和CFL条件满足时,Ç ≈ 0.0015,所以方程式应该是稳定的。我希望我在数字代码中有一个错误。
背景。离散化是对流项和扩散项的主要区别。我相信这是平流的第一阶和扩散的第二阶。我已经使用有限体积的方法(第一次)实现了这一点,其中通过从单元格平均值进行线性插值找到了单元格面上的系数(速度和扩散系数)值。我在左右表面上应用Robin边界条件,并将边界处的通量设置为零。
您如何调试数字代码?以前有没有人出现过这样的场景,那么在哪里可以找到一个好地方?
更新资料
- 这是我关于平流扩散方程实施有限体积方法的个人“实验书”样式说明,http://danieljfarrell.github.io/FVM/
- Python源代码可在此处获得,http://github.com/danieljfarrell/FVM.git
更新资料
解决方案再简单不过了!我只是在扩散项上犯了一个符号错误。很奇怪,我确定我还没有发布它,所以我不会发现错误!如果有人想分享有关如何调试数字代码的提示,我仍然很感兴趣。我没有方法,这有点碰运气,我一直在努力寻找线索,但是这个过程可能需要数周(有时)。
2
您正在使用哪种离散化?什么订购方法?您的边界条件是什么?
—
Geoff Oxberry
谢谢@GeoffOxberry,我已经更新了更多详细信息。尽管要真正了解我所做的事情,您可以阅读上面的github链接上的实验笔记。
—
boyfarrell