在 Gmsh 中重新划分复合曲面/曲线后保留或映射集(物理标签)?

计算科学 gmsh
2021-12-01 01:07:35

对于我目前的工作,我需要使用 Gmsh 重新划分给定的几何图形(目前正在尝试所有 Gmsh 版本来实现这一点)以继续我的 Abaqus 模拟。

从图中可以看出,几何有一些线和面类型的集合或物理标签。

物理表面1表示表面集。物理曲线2表示底线等。“曲线”和“线”可以互换使用。

因此,这产生了 1 个表面集 (WPsurf) 和 4 个线集(bot、left、right、top)。

几何学: 在此处输入图像描述

.geo 文件:

lc=20; //characteristic element length
Point(1) = {1.8689e-35,3.99916e-33,0,lc};
Point(2) = {8.33333,9.32267e-32,0,lc};
Point(3) = {16.6667,7.58404e-33,0,lc};
Point(4) = {25.0,-9.38607e-36,0,lc};
Point(5) = {6.903e-33,5.34874,0,lc};
Point(6) = {9.4089,10.8391,0,lc};
Point(7) = {16.7265,10.0288,0,lc};
Point(8) = {25.0479,9.96269,0,lc};
Line(1)={1,2};
Line(2)={2,6};
Line(3)={5,6};
Line(4)={1,5};
Line(5)={2,3};
Line(6)={3,7};
Line(7)={6,7};
Line(8)={3,4};
Line(9)={4,8};
Line(10)={7,8};
Curve Loop(1)={1,2,-3,-4};
Surface(1)={1};
Curve Loop(2)={5,6,-7,-2};
Surface(2)={2};
Curve Loop(3)={8,9,-10,-6};
Surface(3)={3};
Compound Surface{1,2,3};
Physical Surface("setWPsurf")={1,2,3};
Compound Curve{1,5,8};
Physical Curve("setWPbot")={1,5,8};
Compound Curve{4};
Physical Curve("setWPleft")={4};
Compound Curve{9};
Physical Curve("setWPright")={9};
Compound Curve{3,7,10};
Physical Curve("setWPtop")={3,7,10};
Mesh 2;

当复合线或曲面时,Gmsh 会组合构成复合的所有元素并通过所有元素进行网格划分(因此会越过元素的边缘),并且基本上能够重新划分几何图形。

在网格划分过程之后,二维元素看起来很有希望: 在此处输入图像描述

蓝线表示旧的几何形状,由于单元长度 (lc) 的粗化,网格和几何形状的形状不同。

在查看1d 元素时会出现问题。 在此处输入图像描述

数字代表不同的线组(2=bot,3=left,4=right,5=top)。正如所希望的那样,一维元素不仅显示了新的(重新划分网格的)几何体,而且还显示了原始几何体。

另一个问题是,例如,当查看顶线时,集合(“setWPtop”)仍然连接到旧线复合,并且重新网格化的顶线根本没有集合。

再次查看 2d 元素时,问题似乎在这里消失了,因为所有新创建的 2d 元素都继承了旧标签(“setWPsurf”)。 在此处输入图像描述

这里,数字1代表集合“setWPsurf”。

我的问题是:

1.如何重新网格化复合几何体,同时丢失网格文件中的旧几何体?

2.是否有可能将旧几何体与新网格进行映射,从而为我新创建的线条提供相应的集合?

我期待任何帮助或方向。

1个回答

我搜索了 GMSH 的邮件列表,并在那里找到了您的问题。

实际上,您从 Christophe 那里得到了答案:

实际上,我们没有将物理组定义移至新实体。

试一试最新的开发快照:现在已实现。

有了这个,我发现这个提交到 GMSH 的 master 分支,应该可以解决你的问题。现在有充分的理由相信,随着 GMSH 的最新开发版本(还不是稳定版本),您的问题得到了解决。

更新:应该按照 4.5.2 稳定版正式支持