ハウツー¶
gmshのメッシュをインポート¶
次のようにファイル quad.geo にパラメータ化されたメッシュがある場合
1lc = 0.05 ;
2
3Point(1) = {0,0,0,lc};
4Point(2) = {1,0,0,lc};
5Point(3) = {1,1,0,lc};
6Point(4) = {0,1,0,lc};
7
8Line(5) = {1,2};
9Line(6) = {2,3};
10Line(7) = {3,4};
11Line(8) = {4,1};
12
13Line Loop(9) = {5,6,7,8};
14Plane Surface(10) = {9};
15
16Physical Line(101) = {7};
17Physical Line(102) = {5};
18Physical Line(103) = {8};
19Physical Line(104) = {6};
20
21Physical Surface(201) = {10};
次のように実行します.
$ gmsh -2 quad.geo -format msh1
ファイル quad.msh が作成され,メッシュとその領域のエンコーディングが格納されます.このファイル (quad.msh) をgetfemにインポートできます.
import getfem as gf
m = gf.Mesh('import','gmsh','quad.msh')
print m.regions()
2番目のコマンドでは, regions ids が表示されます.メッシュをインポートすると,次のような警告が表示される場合があります.
Level 3 Warning in getfem_import.cc, line 137:
All regions must have different number!
これは, Gmsh .geo file で行われるメッシュのパラメータ化で,各領域に 異なる 番号を割り当ててくださいという意味です. 問題が発生するのは, Gmsh では "領域の種類" が異なるためです.例えば Gmsh では "物理面 (200)" と "物理線 (200)" が共存できます. GetFEM には "領域の種類" が1つしかないため,この状態にはなりません.