我想使用有限元方法模拟正弦平面波在矩形域中的传播。首先,波应该在流体介质中传播,然后会遇到一定厚度的固体材料壁,然后继续在流体中传播。我知道我必须考虑一些吸收材料层,以避免波反射的杂散效应。我在文献中发现最适合这类问题的是 PML。
我可以用下图说明我的目标
理想情况下,我会使用开源有限元软件。我一直在尝试使用 FEniCS 进行这项工作,并且在没有 PML 的情况下,我设法在时域模拟中获得了一些不错的结果。但是,我找不到实现 PML 的方法。许多示例使用频域方法,我不确定是否可以将其用于此类问题。
经过一些研究,我发现了一篇论文,其中作者开发了适用于非线性问题的时域方程的 PML 混合公式。作者还给出了这些方程的弱形式。但据我所知,FEniCS 要求方程为双线性形式, 要么- 没有混合配方。此外,对于非专家来说,编码似乎有点复杂。
从那以后我一直试图将他的方程改写成这种不同的弱形式,但我没有有限元分析的正式背景,所以到目前为止我一直没有成功。如果你愿意,我可以分享我的进步。
关键是,我相信必须有一种更简单的方法来完成这项工作。所以我想从你那里得到一些我应该遵循的方法的建议,或者给我一些有意义的参考来帮助我实现我的目标。
提前致谢!
编辑
一般波动方程是.
弱形式是
指数在哪里表示时间步长。
我已经通过组装一个线性系统成功地将其实现到 FEniCS,和边界条件。
下一步是实现 PML。我见过很多使用频域公式的工作,但正如我所提到的,我不确定如何使用它们。所以我找到了这篇论文,作者在其中开发了一组混合公式方程,这些方程解释了 PML 并且在时域中。考虑以下流体域:
及其弱形式
问题是我无法将它们翻译成 FEniCS 语法。有两个方程,FEniCS 只能求解以下之一:
- 线性系统
- 线性变分问题
- 非线性变分问题
这意味着我必须以某种方式将整套控制方程重写为 FEniCS 语法。我找不到解决办法。我尝试添加 eqs。5.10a 和 c 一起使它们等于 0,以便使用非线性变分求解器。
但它没有用。不仅数学变得过于复杂,而且编码也变得混乱。我觉得我必须在 FEA 中攻读博士学位才能知道如何编写代码(我是一名研究生)。相反,我正在寻找更容易理解和编码的东西。