我仔细阅读了大约 70 页的 FEniCS 教程,当我拥有不同介电常数的材料时,我仍然不明白如何解决静电问题。静电中的自包含方程组
FEniCS:电介质静电问题的边界条件
由于在subdomains-poisson
网格与界面对齐的情况下处理了该问题,因此我在下面假设在您的情况下,跳转可以发生在任何地方。
我认为这里的第一步不是考虑实现 FEniCS,而是为这个问题找到一个适当的变分形式,其中适当地结合了接口条件。该问题看起来可以使用以下方法的变体进行处理:
Hansbo, A. 和 Hansbo, P.基于 Nitsche 方法的非拟合有限元方法,用于椭圆界面问题(Comp. Meth. in Appl. Mech. and Eng.,第 191 卷,第 47-48 期,2002 年 11 月 22 日,第 5537–5552 页)
免责声明:对于您的具体情况,可能还有其他选择,也许还有更好的选择,但我最熟悉 Nitsche 类型的技术。
一旦你知道如何离散化你的问题,你就可以考虑在 FEniCS 中实现。据我所知,在 vanilla FEniCS 中直接实现此方法是不可能的。dolfin-olm可以用来实现这个方法。到目前为止我还没有使用它,我不知道它是否适用于当前版本的 FEniCS,我不知道他们是否同时将它(部分)合并到 dolfin 中。
再次注意,在标准有限元方法中,可以通过将网格与界面对齐来考虑界面条件。如果这是一个选择,你应该这样做。
Poisson 问题的 Vatiational 公式化
两种界面条件都包含在以下变分问题中。给定
- Lipschitz 域
寻找这样
这里表示 Neumann 条件在. 此公式会自动处理您的两种界面条件。你通过划分来检查它进入子域取两个不同的值,并通过接近这些子域的特征函数的东西进行测试。而且可以更加任意 - 基本有界就足够了。请注意,我扔掉了对应于 SI 单位。如果您想从物理学家的角度推导出这个公式,只需在适当的(考虑到狄利克雷条件)空间中取场能的 Gateaux 导数减去电荷能。
为了在 FEniCS 中实现,只需选择符合条件的 FE 空间,即任意顺序的拉格朗日/CG 元素。问题在subdomains-poisson
演示中实现,假设不连续匹配网格面。
不连续性与网格不匹配
如果您需要不连续的不匹配网格,您可以尝试DOLFIN-PUM
实现 XFEM/PUM 方法的库。它现在没有维护,Garth 说有计划直接在 FEniCS 中更好地实施。图书馆能够准确地整合这种类型的不连续性. 但是还有一个问题是 XFEM/PUM 方法也会在您的解决方案中引入不连续性,您需要以某种方式强制执行连续性。它可以用拉格朗日乘数、惩罚等来解决,但如果我成功了,我就不记得了。
您还可以使用标准公式解决网格不匹配的问题并增加正交度或插值在计算之前到一些高阶空间。我也用近似于 Heaviside 函数定义材料不连续性。您可以使用conditional
. 这些方法都不能集成确切地说,但它可以以某种方式增强解决方案。