Gmsh で OpenFOAM 用メッシュを作る

2015年11月22日

はじめに

Gmsh を使って OpenFOAM 用メッシュを作ってみる。

使用バージョン

Gmsh 2.11.0 Windows 版

ファイル

サンプル STL ファイル

mixing_elbow.stl.gz (FreeCAD で作成)

Gmsh で STL からメッシュを作る

以下のような ".geo" ファイルを用意する。

mixing_elbow.geo

Merge "mixing_elbow.stl";

CreateTopology;

ll[] = Line "*";
For i In {0: #ll[]-1}
  Compound Line(newl) = ll[i];
EndFor

ss[] = Surface "*";
s = news;
For i In {0 : #ss[]-1}
  Compound Surface(s+i) = ss[i];
EndFor

Surface Loop(1) = {s : s + #ss[] - 1};
Volume(1) = {1};

Physical Surface ("in1") = {s};
Physical Surface ("in2") = {s+1};
Physical Surface ("out") = {s+2};
Physical Surface ("side") = {s+3};
Physical Volume ("fluid") = {1};

Mesh.CharacteristicLengthMin = 0.;
Mesh.CharacteristicLengthMax = 0.002;

Geometry.HideCompounds = 0;

"Merge" で STL を取り込んでいる。"Compound Line", "Compound Surface" は、STL のラインやサーフェイスからまとまったラインとサーフェイスを作る。こうしないと、メッシュ分割がもとの STL のパッチに依存していまう。その後にボリュームを作り、サーフェイスとボリュームに名前を付け、最後にメッシュサイズを指定している。

Gmsh を起動し、メニュー [File]-[Open...] で ".geo" ファイルを読み込む。ツリーの [Mesh]-[Define]-[3D] を押すとメッシュが作成される。メッシュができたら、続けて [Optimize 3D (Netgen)] を押す。

STL の線が邪魔な場合は、メニュー [Tools]-[Visibility] の [List browser] で表面を見えなくすればよい。

メニュー [File]-[Save Mesh] で ".msh" ファイルが保存される。

できたメッシュ。

変換

gmshToFoam で OpenFOAM 用メッシュに変換する。

$ gmshToFoam mixing_elbow.msh