改进耦合偏微分方程的计算算法

计算科学 pde 非线性方程 耦合
2021-12-09 09:32:24

我有以下两个偏微分方程:

zU=r2U+ϱU
tϱ=a|U|4
a一个常数和
dt=dznc
n材料的折射率,和c光的速度。
我目前的方法是通过忽略右侧的第二部分,使用矩阵求解器在第一个方程上应用曲柄尼科尔森算法:
(1dz2.0z)Un+1=(1+dz2.0r2)Un
然后计算ϱ介于两者之间:
Un+12=Un+1+Un2
ϱn+12=a|Un+12|dzncdt
但是有没有更简单/更准确的方法来做到这一点,甚至可以将它包含在上面的矩阵方程中?

2个回答

鉴于之间的依赖关系zt,我们可以用时间导数重写第一个方程:

tU=cn(r2U+ρU)
. 现在我们定义g=(Uρ). 这允许我们将方程组重写为:
tg=(cnr2000)g+cn(120)gT(0110)g+(01)a(gT(1000)g)2

现在您可以为非线性方程组选择您最喜欢的时间步进算法:

tg=F(g,t,r)

例如,Crank Nicolson 将是一个可能的选择。现在没有必要忽略一些事情。请注意,您需要解决 Crank Nicolson 每一步的隐含部分的非线性。有关详细信息,请参阅此问题

编辑

对于附加期限

cnβ|U|2U
. 你需要添加
cnβ(1000)g(gT(1000)g)
. U不应该在任何表达式中,我们要解决的领域g.

当然可以进一步简化表达式,但这应该足以作为一个起点。

如果您有更多条款tU, 简单地猜测g(这并不难),评估它,看看你是否达到了原始方程。

您正在做的是一种跳跃式方案,但任何时间步进方案都可以。但是由于您的问题是刚性和非线性的,您可能希望使用 B 稳定方法,以避免出于稳定性原因而不得不使用小时间步长。