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