我今天有一个简单的问题。我是 GMSH 的新手,目前正在学习如何使用该软件程序。我正在使用 GMSH 3.0.4。
我要做的是为我的 2D 几何体中的不同面设置不同的网格大小。作为测试,我正在创建两个相邻的正方形。左侧的正方形将具有由选项对话框中的元素尺寸因子设置的网格尺寸。
我一直在对此事进行一些研究,并在发布时遇到了这个问题:
http://onelab.info/pipermail/gmsh/2009/004647.html
我还阅读了用户手册中的第 6.3.1 节。在本节中,指出:
A MathEval field specifies the size of the mesh using an explicit mathematical function.
所以,我去了 Mesh->Define->Size Fields 然后 New->MathEval 然后在框中输入 0.001。我还通过转到 New->restrict 来设置一个限制字段。我输入了我想要限制该字段的边缘列表和人脸列表。由于这个我想限制我的第一个 Mesh 字段,我在 IFields 框中输入了 1。
我还确保将 2D 网格算法设置为 Delauney。
但是,我仍然难以设置自定义网格尺寸。我正在尝试将面绑定到特定的网格大小。我在这里发布我的 .geo 文件,以便其他人可以查看。
我的问题是:为了将不同的面绑定到不同的网格尺寸,我可以在 GUI 上执行的最佳方法是什么?
请注意,当前元素大小因子设置为 1。另请注意,我正在生成一个只有四边形的网格。
我的 .geo 文件:
//+
SetFactory("Built-in");
//+
Point(1) = {0, 0, 0, 1.0};
//+
Point(2) = {1, 0, 0, 1.0};
//+
Point(3) = {1, 1, 0, 1.0};
//+
Point(4) = {0, 1, 0, 1.0};
//+
Line(1) = {1, 4};
//+
Line(2) = {4, 3};
//+
Line(3) = {3, 2};
//+
Line(4) = {2, 1};
//+
Line Loop(1) = {2, 3, 4, 1};
//+
Plane Surface(1) = {1};
Recombine Surface{1};
//+
Point(5) = {2, 1.2, 0, 1.0};
//+
Point(6) = {2, 0, 0, 1.0};
//+
Line(5) = {3, 5};
//+
Line(6) = {5, 6};
//+
Line(7) = {6, 2};
//+
Line Loop(2) = {5, 6, 7, -3};
//+
Plane Surface(2) = {2};
//+
Field[2] = Restrict;
//+
Field[2].EdgesList = {5, 6, 7, 3};
//+
Field[2].FacesList = {2};
//+
Field[1] = MathEval;
//+
Field[1].F = "1.0";
//+
//Background Field = 1;
//+
//+
Field[1].F = "0.01";
//+
Background Field = 1;
//+
Background Field = -1;
//+
Field[1].F = "0.001";