我目前正在尝试进行静磁有限元模拟,并且我想使用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为所有物体创建单个连接的网格?
答案 0 :(得分:1)
现在看来,Air
卷8
只是整体边界框,没有必要减去Iron
和Current
的体积。因此,它为整个边界框创建了一个四面体网格,而无需考虑其他物体。
我不是FreeCAD专家,所以我真的不知道如何在那里正确设置它。可能的话,请尝试在此处指定Air
卷,以确保其中不包含您的详细信息。
另一种方法可能需要在GMSH级别进行一些修改。例如,在使其物理化之前创建适当的Air
卷。您有要从卷1, 7, 9, 6, 3, 2, 4, 5
中减去的卷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};
答案 1 :(得分:0)
删除命令Coherence;合并线之后,将迫使GMSH形成不重叠体积的连贯网格。
答案 2 :(得分:0)
我创建了一组自由和开放源代码工具,以生成用于多材料FEM的分区网格。 它们在这里可用 github.com/NH89/SOFA_mesh_partitioning_tools
它们基于CGAL几何库,并从任意相交的三角曲面网格生成分区的四面体网格。
它们被设计为与SOFA实时软物质FEM框架一起使用,但可以用于任何分区的FEM应用程序。