只有一个边界的 PDE 的隐式有限差分格式

计算科学 线性求解器 数值分析
2021-12-18 05:05:59

我正在看一些形式的反应扩散方程

dPdt=D(d2Pdr2+2rdPdr)a(P)

我知道一端的初始条件和边界值。我也知道函数稳步下降并最终在第二个未知边界处达到零。为了模拟这种行为并间接找到这个未知边界,我使用显式有限差分方案编写了一个求解器,并在循环中添加了一个条件,该条件将任何负值强制更改为零。这给了我正确的结果,但由于 CFL 条件,我不得不使用一个很小的时间步长(Δt=0.001) 当我对系统在几个小时甚至几天内的行为更感兴趣时。

我正在研究使用隐式有限差分方法或 CN 方法,因此我可能会增加时间步长,但我对此的(有限)理解意味着我必须求解一个包含未知边界的方程组,我不会确切地知道。是否有可能解决这个问题,或者隐式方法会失败?如果可以解决它,任何人都可以提出一个好的方法以及我将如何实现它?在此先感谢,我对数值方法很陌生,如果有任何建议,我将不胜感激。

1个回答

我不完全确定您的方法是否正确。答案可能看起来是正确的,但除非你有一个分析解决方案来检查你可能会引入错误。另外,你如何处理远边界的二阶导数?

您拥有的边界条件是:

limxP=0

域为[x0,). 以数字方式处理此问题的更常见方法是将您的域截断为[x0,x1]并保持边界条件

P(x1)=0

这很好用,除了您不知道您的截断域是否影响了您的答案。那么你解决它[x0,2x1](假设x1>>x0这大约使您的域名翻倍)。如果您在感兴趣的领域的答案很接近,那么您就知道您已经完成了。

如果您进行此更改,那么切换到隐式求解器将是微不足道的,因为您已经消除了求解器中的 if 条件。