填充网格(用于 Fenics FEM)

计算科学 芬尼克斯 网格生成
2021-12-01 04:49:34

我一直在使用 Fenics 来模拟一些简单的静电问题,但现在我需要模拟更复杂的几何形状。假设

  • 我已经创建了几个对象的网格,并且知道它们在空间中的位置
  • 这些对象中的每个节点都带有这些对象的属性(介电常数/等)

我应该使用哪种软件和方法来细分这些对象(以及一些边界框样式边界)之间的自由空间,以便

  • 网格密度取决于与物体的距离/几何复杂度
  • Fenics 将知道边界在哪里,以及边界条件(“无穷大”处的零电位)
  • Fenics 将知道该自由空间中的电荷/电介质值(例如设置为某些默认值)

在我的简单问题中,我使用手动编码函数来确定边界、计算边界条件,并且对于对象(例如电容器的极板),我使用它们的几何形状来分配电荷/等(例如if (distance from sphere center < radius) charge = 1.0 else 0

1个回答

请参阅dolfin-convertFEniCS 中安装的脚本及其手册页,

$ man dolfin-convert

支持的网格格式。然后选择一些生成这些格式的软件。

dolfin-convert请注意,并非所有格式都完全支持单元函数(用于在您的情况下指定介电常数)和/或小平面函数(用于边界和界面条件) 。要获得这些细节,可以深入研究<PYTHONPATH>/dolfin_utils/meshconvert/meshconvert.py或简单地尝试。

AFAIK,至少Triangle(2D)和Gmsh(2D 和 3D)格式得到了很好的支持dolfin-convert