对流频散方程的数值解

计算科学 数值分析 时间积分 平流扩散
2021-12-04 06:11:26

我面临一个简单的(乍一看)问题。我需要实现一个数值方案来解决包含色散的一阶波传播方程。我最初的问题是(对于前向传播波):

1cu(x,t)t=uxiβ222ut2,
在哪里c是光速,u是场的(复)包络,β2是二阶色散系数。还假设波在长度为 的环形腔内传播,例如 L,其中我采用周期性边界条件:u(x+L,t)=u(x,t)还有那个在t=0我们知道u(x,0)ut(x,0).

我正在尝试实现一个时间步进数值方案,并在此过程中尝试了以下操作:

1) MOL 方法,我在其中进行半离散化x,将方程组简化为一阶 ODE 系统(通过设置v=u˙) 我建立了一个系统:

[v˙u˙]=A[vu].

当我通过 4th Runge-Kutta、Crank-Nicholson 或简单地预先计算矩阵指数求解相应的 ODE 时,不幸的是,我所有的解决方案最终都变成了 Inf。我通过修改矩阵实现了周期性边界条件A作为APA, 在哪里P是第一行与最后一行相同副本的单位矩阵。

我还尝试了一种简单的有限差分方法,其中空间导数通过迎风 FD(一阶)近似,但无济于事。

最后,我尝试了一种基于两个方程的奇异分裂方法:

1cu˙=δuδx1cu˙=iβ22δ2uδt2,

这一次解决方案没有爆炸,但它看起来有点不物理。

这里有人知道这个方程的稳定且可能高于一阶时间步长方案吗?请注意,基于傅里叶变换的解决方案x对我来说也不是一个好的选择,因为我希望能够灵活地实现不同的非周期性边界条件。我也不喜欢用空间中的二阶导数代替时间上的二阶导数,因为这会使边界条件的实现复杂化。

谢谢。

2个回答

当您对 PDE 进行离散化并且离散化失败时,正确的响应不是“让我们忽略该结果并尝试不同的离散化”。这就像试图通过随机更换零件来修理你的汽车。相反,你应该停下来调查,直到你明白哪里出了问题,然后纠正它。

我在这里看到了三种可能性:

  1. 您的代码有错误。
  2. 您的问题不是适定的,因此数值解正确地爆炸了。
  3. 问题是适定的,并且您的数值方法已正确实施,但该方法不稳定。

您的问题中没有足够的信息来排除这三种可能性中的任何一种。

如果β2是分段常数,方程可以通过 Fesnel 积分求解,因此您可以根据边界条件开发近似解。您必须引入一个共同移动的框架并从那里解决。