注意:我正在尝试实现一个不连续 Galerkin 方法,作为了解这些事情的一种方式。
到目前为止,我已经采用了声波方程将其重写为弱形式,并使用格林的第一恒等式从拉普拉斯算子获得通量积分:
我不太确定 ABC 是如何工作的,但我相信使用 Green 的第一个恒等式来获得的边界面上的吸收边界条件替换现有的边界条件? 如果我理解正确,这些吸收边界条件也将是一个微分方程,仅施加在边界上。
我的问题是:我可以将哪些好的吸收边界条件(微分方程)用于 2 维或 3 维矩形域中的声波方程?
注意:我正在尝试实现一个不连续 Galerkin 方法,作为了解这些事情的一种方式。
到目前为止,我已经采用了声波方程将其重写为弱形式,并使用格林的第一恒等式从拉普拉斯算子获得通量积分:
我不太确定 ABC 是如何工作的,但我相信使用 Green 的第一个恒等式来获得的边界面上的吸收边界条件替换现有的边界条件? 如果我理解正确,这些吸收边界条件也将是一个微分方程,仅施加在边界上。
我的问题是:我可以将哪些好的吸收边界条件(微分方程)用于 2 维或 3 维矩形域中的声波方程?
边界处导数算子形式的 ABC 的问题在于,精确的 ABC 在空间上是非局部的,而且通常在时间上是非局部的,这使得它们难以在数值模拟中使用。您可以根据级数展开推导出近似的 ABCS,但这可能很乏味,并且可能难以获得稳定的方案。这种方法因Enquist 和 Majda的一篇被广泛引用的论文而闻名。
一种更简单且广泛使用的方法是完美匹配层。您通过一个附加层扩展您的计算域,在该层中您通过一个复杂的比例因子修改您的导数
这会修改系统的色散关系,从而抑制外层中的行波模式。这里,的选择使得它在你的物理域的边界处为零,并在你的层结束时增加,从而慢慢增加阻尼。像这样的函数可能适用于,但是您需要重新调整它,使其在物理边界处从零开始。您可能需要稍微调整一下参数和才能获得好的结果。
请注意,PML 提供了一个近似的 ABC,除非层无限长,这在数值模拟中当然是不可能的。但是,波的幅度通常呈指数衰减,因此小层已经可以将您的反射抑制到低于内部 DG 方法的离散化误差。
最初,PML 是由Berenger引入的,尽管本文可能不是最好的开始方式。还有一个写得很好的维基百科条目,搜索完美匹配的图层肯定会为您提供很好的材料 - 正如所说,该方法使用非常广泛。
波动方程存在吸收边界条件,这些条件是稳定的并且可以达到任何精度等级(仅受模型离散化精度的限制),因此它们是 PML 的良好竞争。
上面提到的一个常用的 Enquist-Majda 类型的二阶 ABC 是:
(衍生产品是隐含的)。这应该以您的弱形式插入边界项,但您可能需要定义在边界上作为模型中的附加变量来执行此操作。
如果您需要更高的精度,我建议使用Hagstrom-Warburton边界条件:该条件基于边界上辅助变量的定义,也满足那里的波动方程。角落需要特殊处理。