提高非线性 PDE 数值格式稳定性的技巧

计算科学 pde 有限差分 数值分析 稳定
2021-12-01 02:41:45

我正在解决两个变量的 PDE 非线性二阶系统。这些方程太复杂了,无法在这里写出来,但一个基本特征是有一个传播波,然后在边界上反弹。

我遇到的问题是,当波浪到达这一点时,数字会在边界处分解。我已经尝试通过“反复试验”来改变我在这一点上使用不同的有限差分模板计算导数的方式,但没有运气(伪光谱方法不起作用btw),我不知道如何系统地尝试提高稳定性,我没有直觉什么可以工作,什么不能工作。

当遇到此类问题时,有没有人有任何提示可以尝试什么?我怎样才能系统地向前推进,以使我的数值方案在这个边界点稳定?基本上,如果有人只是有一系列想法可以盲目尝试,那也很棒。

编辑:我应该补充一点,“边界”也可以解释为极坐标中的原点,所以靠近边界,我们在原点有一个柱面波散射。

Edit2:根据要求,我添加了我要解决的方程的(简化版本)

c˙=K

K˙=K2f5r2+25(1f)+5r4(fc/r)

f˙=f2K5r

“极坐标原点”在 r=0,传播的波在中。我已经删除了许多项来获得上述方程,只保留了我认为重要的那些。似乎不稳定是由于(如果我删除它,我会得到稳定的演变)。不稳定性表现为在靠近原点的点处以相反的符号发散。附近,我们期望cK1fK˙fKr0Kr4cr3f1r2

我提出的边界条件是在某个处,这会引发应该在处反弹的波。初始条件为K=et2r=r0r=0f=1c=K=0

关于我的数字的更多细节:我在不同的网格上有 K 和 c (例如中的一个点位于中的两个点之间)。这消除了我遇到的其他不稳定问题。我使用二阶/三阶有限差分方法来计算导数和在网格之间进行插值。在原点有一个点,没有,并且在同一个网格上在原点,我使用这样一个事实,即在计算导数时函数应该是均匀的(通过将径向坐标扩展到负值),但这并没有太大变化。cKcKfK

0个回答
没有发现任何回复~