适用于非线性耦合 PDE 的求解器

计算科学 pde 刚性 复分析
2021-12-24 21:24:33

我一直在尝试为以下情况找到适用的 PDE 求解器:

在此处输入图像描述

尽管在处理复杂域中的刚性方程时,应用现有包一直存在问题。

我研究过 FiPy,但它似乎不能很好地处理复数。一种可能的方法是将每个函数和参数拆分为 2 个向量,分别表示其实部和虚部,尽管它在处理所示非线性 PDE 中的适用性似乎使问题更加复杂。我现在也在查看 FEniCS 的文档,看看它是否有帮助(尽管复杂变量似乎再次出现问题)。我也在考虑使用 Runge-Kutta 等基本方法制作自己的求解器,但当我更改参数/域时,解决方案似乎差异很大。我一直在研究重新分区/自适应拉伸技术,但只有在获得可以首先处理简单案例的基本 PDE 求解器后,我才会实施该技术。

你会碰巧对任何特定的包或方法有任何建议吗?我目前正在使用 Python,但我愿意接受任何建议。

边界/初始条件的一个示例是:

N(z,0)=12cos(105)P(z,0)=109sin(105)E(z,0)=1010N(0,t)=12et106P(0,t)=109et106E(0,t)=1010et106

(对于相当高的值,我深表歉意。这是在重新调整以使值范围更近之后,但它们仍然很大。我将努力修改它,因此非常欢迎您提出任何具有您自己比例的建议。)

1个回答

经常使用对方程的实部和虚部使用两个方程的方法。它可能会导致更繁琐的公式,但它绝对是可能的和常见的。在 deal.II(我维护的一个库)中完成此操作的示例如下:https ://www.dealii.org/developer/doxygen/deal.II/step_29.html