1

我目前正在尝试进行静磁 FEM 模拟,并且我想使用 GMSH 对我的几何体进行网格划分。几何如下所示:在磁路

我使用 FreeCAD 创建几何图形并作为 .STEP 文件导入 GMSH。在 GMSH 中,我定义了 3 个物理组,生成以下脚本:

Merge "yoke_simulation.step";
Physical Volume("iron") = {1, 7, 9, 6, 3, 2, 4};
//+
Physical Volume("current") = {5};
//+
Physical Volume("air") = {8};

当我创建网格时,我得到以下结果: 在此处输入图像描述

问题是 GMSH 似乎为每个物体创建了一个单独的网格,而没有将这些网格相互连接起来。例如,如果查看两个圆锥之间的区域,很明显两个圆锥的网格与空气的网格没有连接:在此处输入图像描述

如何让 GMSH 为所有实体创建一个连接的网格?

4

3 回答 3

1

现在看来,Air体积8只是整体边界框,没有必要减去 和 的Iron体积Current。因此,它为整个边界框创建了一个四面体网格,而不考虑其他实体。

我不是 FreeCAD 专家,所以我真的不知道如何在那里正确设置它。可能,尝试在Air那里指定卷以确保它不包含您的详细信息。

另一种方法可能涉及对 GMSH 级别的轻微修改。例如,Air在物理化之前创建适当的卷。您有1, 7, 9, 6, 3, 2, 4, 5要从 volume 中减去的数量8。这可以通过

BooleanDifference(100) = { Volume{8}; Delete; }{ Volume{1,7,9,6,3,2,4,5}; };
Physical Volume("air") = {100};

请注意,只有在使用 GMSH 中的 OpenCASCADE 内核时,前面的代码才能工作。请参阅 GMSH 中的以下示例代码以供参考:

SetFactory("OpenCASCADE");

Box(1) = {0,0,0, 1,1,1};

Box(2) = {0.1,0.1,0.1, 0.2,0.2,0.2};
Box(3) = {0.5,0.5,0.5, 0.2,0.2,0.2};

BooleanDifference(100) = { Volume{1}; Delete; }{ Volume{2,3}; };
Physical Volume ("air") = {100};
Physical Volume ("iron") = {2,3};
于 2018-12-24T17:15:03.140 回答
0

删除命令连贯性;在合并线之后将迫使 GMSH 形成一个没有重叠体积的连贯网格。

于 2020-05-07T13:57:29.303 回答
0

我创建了一组免费和开源工具来为多材料 FEM 生成分区网格。它们可在此处 获得 github.com/NH89/SOFA_mesh_partitioning_tools

它们基于 CGAL 几何库,并从任意相交的三角曲面网格生成分区四面体网格。

它们被设想为与 SOFA 实时软物质 FEM 框架一起使用,但也可用于任何分区 FEM 应用程序。

于 2020-08-06T13:03:31.850 回答