さつまろぐ

CAEとかプログラムとか、出来たことの記録など、誰かのお役に立てれば幸い。

Gmshでモデルのメッシュを切る

Gmshでモデルを作成したら、そのままメッシュを切ることができます。 下図の立方体のモデルを作成し、メッシュ作成の過程を見てみます。

f:id:satsuma4801:20200919070100p:plain
立方体モデル

とりあえず切ってみる

モデルの準備ができたら、とりあえずメッシュを作成してみます。 画面左から[Modules]-[Geometry]-[Mesh]-[2D](または [3D] )を選択します。( [1D] はあまり使わないと思われます。 )

  • 2D : 線と面を分割します。体積が有ってもメッシュは作成されません。
  • 3D : 2D + 体積を分割します。

いきなり[3D]でもよいですし、[2D]で大まかな分割具合を確認してから[3D]でもいいと思います。

f:id:satsuma4801:20200919070856p:plain
メッシュを切る

とりあえず [3D] で切ってみます。

f:id:satsuma4801:20200919073241p:plain
とりあえず [3D] でメッシュ作成

デフォルトの設定では、3角形1次要素で作成されるようです。メッシュの状態(要素の種類と数)を確認するには、メニューバーから[Tools]-[Statistics]を選択、Statisticsの画面が出てくるので、[Mesh]タブを選択します。下図では、三角形要素が24、四面体要素が24あるようです。

f:id:satsuma4801:20200919074128p:plain
メッシュの状態(要素の種類と数)を確認

要素形状を変更する

解析には四角形要素もよく使われるので、要素形状を四角形(六面体)に変更します。メニューバーから[Tools]-[Options]を選択、Options画面が出てくるので、[Mesh]メニュー、[General]タブを選択します。Subdivision algorithmの欄を、「All Hexas」に変更します。

f:id:satsuma4801:20200919080904p:plain
オプションで要素形状を変更

この状態で再度メッシュを切ってみます。(前のメッシュの存在が気になる場合は、[Modules]-[Geometry]-[Reload script]でファイルを再読込することでメッシュが消えます)

f:id:satsuma4801:20200919082342p:plain
四角形(六面体)要素でメッシュ作成

四角形(六面体)要素に分割することができました。

もう少しきれいなメッシュにしたい

メッシュは切れましたが、あまりきれいなメッシュではありません。メッシュの状態は解析の精度に影響してくるので、できればきれいなメッシュを作成したいところです。

立方体メッシュの作成

ここでは、[Modules]-[Mesh]-[Define]-[Transfinite]-[Curve] ( [Surface] [Volume] ) と[Modules]-[Mesh]-[Define]-[Recombine]を使います。

f:id:satsuma4801:20200920021438p:plain
Transfinite と Recombine を使用

下記の手順でメッシュを整えます。オプションのSubdivision algorithmは、「None」にしておきます。(「All Hexas」でも構いません)

  1. Transfinite curve

    [Modules]-[Mesh]-[Define]-[Transfinite]-[Curve]を選択します。現れるMesh Context の Number of points 欄に1辺に作成するノード数を入力します。数値は自由です。適用する線(ここでは全ての線)を選択し、線が赤くなったらキーボード「e」で適用します。

    f:id:satsuma4801:20200920023408p:plain
    Transfinite curve

  2. Transfinite Surface

    [Modules]-[Mesh]-[Define]-[Transfinite]-[Surface] を選択します。Mesh Context が現れますが変更はしません。面を1つ選択し、面が赤くなったらキーボード「e」で適用します。複数の面を選択できないので、1面ずつ6回繰り返します。

  3. Recombine

    [Modules]-[Mesh]-[Define]-[Recombine]を選択します。コンテキスト画面はでないので、すべての面を選択し、赤くなったらキーボード「e」で適用します(ここは複数面の選択が可能)。この状態で 2D のメッシュを切ると、立方体の表面はきれいな四角形になっています。3D のメッシュはまだ美しくありません。

  4. Transfinite Volume

    [Modules]-[Mesh]-[Define]-[Transfinite]-[Volume]を選択します。ここでは、1つの体積と8つの点を選択します。選択する順番に注意が必要です。

    • まず体積を選択
    • 任意の面を1周するように点を選択
    • 反対の面を↑の順に対応する順で点を選択

    下図の①~⑨が選択する順番となります。

    f:id:satsuma4801:20200920031059p:plain
    Transfinite Volume

    選択したら、キーボード「e」で適用します。そして 3D でメッシュを切ると、きれいな立方体で分割されたメッシュを得ることができました。

    f:id:satsuma4801:20200920032110p:plain
    きれいなメッシュができた

もう少し簡単に作りたい

上記の1~4までの作業は、マウス操作が多く手間がかかります。また、.geoファイル上には次のように記録されています。

Transfinite Curve {11, 6, 7, 3, 12, 9, 10, 5, 4, 8, 1, 2} = 5 Using Progression 1;
Transfinite Surface {1};
Transfinite Surface {3};
Transfinite Surface {2};
Transfinite Surface {5};
Transfinite Surface {4};
Transfinite Surface {6};
Recombine Surface {5, 6, 2, 4, 1, 3};
Transfinite Volume{1} = {1, 5, 6, 2, 4, 8, 7, 3};

点や面の番号を直接しているので、モデル形状が修正され番号が変わってしまうと、同じ命令は使えません。そこで、上記を削除し、下記の命令に置き換えます。

Transfinite Line "*" = 5 Using Progression 1;
Transfinite Surface "*";
Recombine Surface "*";
Transfinite Volume "*";

これでマウス操作をしなくても、立方体メッシュを作成できます*1

モデル作成段階から

Extrude を使ってモデルを作成すると、上記の Transfinite を使った設定は不要です。この辺はまた別の機会に書こうと思います。

以上


上記は、私がネットの情報やマニュアルを調べたり試行錯誤した上で、「こうやったらできた」というものであり、スマートな方法ではないかも知れません。内容に誤りや、「もっとこうしたほうがいい」という点がありましたら、コメントにて指摘いただければ幸いです。

広告