OpenFOAM 用メッシュの作成

2014年4月20日

OpenFOAM 用メッシュの作成

OpenFOAM 用のメッシュを作成するには、以下の方法がある。

  • 商用ソルバー用のメッシュを OpenFOAM 用のメッシュに変換する。
  • メッシュ作成ソフトで OpenFOAM 用のメッシュを作る。

商用ソルバーのユーザーであれば、商用ソルバー用のメッシュを流用する (商用ソルバー用のメッシャーを使う) のが簡単である。そうでなければ、メッシュ作成用のソフトを用意する必要がある。メッシュ作成用のソフトは、以下のタイプに分けられる。

  • 形状は別に用意して、メッシュだけ作成できるもの。
  • 形状作成からメッシュ作成までできるもの。

メッシュだけ作成できるソフトは、形状として 3D CAD ファイルを要求する。形状は 3D CAD ソフトなどで作成する必要がある。

あえてオープンソースのソフトでメッシュを作成しようとするならば、以下のようなソフトがある。

形状作成

メッシュ作成

形状およびメッシュ作成

商用ソルバー用メッシュの変換

OpenFOAM では、商用ソルバー用のメッシュを使用するために、それらを OpenFOAM 用のメッシュに変換するユーティリティが用意されている。たとえば、FLUENT のメッシュを OpenFOAM で利用するするためのものとして fluentMeshToFoam や fluent3DMeshToFoam がある。

形状作成ソフト

Blender

  • プロジェクトページ: blender.org
  • 対応環境: Linux, Windows, Mac OS X
  • ライセンス: GNU GPL
  • 3D CG 用モデラー。
  • STL ファイルの作成に利用できる。
  • 操作方法が 3D CG 用モデラーとしても特殊だが、ソフトウェアとしての完成度は高い。
  • OpenFOAM 用メッシュを作成するアドオン (SwiftSnap) が存在する。

参考

FreeCAD

  • プロジェクトページ: FreeCAD
  • 対応環境: Linux, Windows, Mac OS X
  • ライセンス: GNU LGPL など
  • 発展途上の 3D CAD ソフト。

参考

メッシュ作成ソフト

blockMesh

  • OpenFOAM 標準ユーティリティ。
  • モデルを六面のブロックの集合として表現する。それぞれのブロックは格子状にメッシュが作られる。
  • テキストベース。

以下のようなファイルをケースディレクトリに用意する。

constant/polyMesh/blockMeshDict (抜粋)

...

vertices
(
    (0 0 0)
    (1 0 0)
    (1 1 0)
    (0 1 0)
    (0 0 0.1)
    (1 0 0.1)
    (1 1 0.1)
    (0 1 0.1)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (10 10 1) simpleGrading (1 1 1)
);

...

点を定義して、それからブロックを定義する。ブロックは 10x10x1 で分割されるように指定してある。

簡単なモデルならこれで十分かもしれない。

参考

snappyHexMesh

  • OpenFOAM 付属ユーティリティ。
  • STL ファイルをもとにほぼ六面体のメッシュを自動作成する。
  • パラメタがたくさんあり、調整が難しい。

参考

Netgen

  • STL ファイルなどから四面体メッシュを自動作成する。
  • 他のメッシャーのライブラリとして使われていることが多い。
  • OpenFOAM 用メッシュを出力可能。

参考

enGrid

  • STL ファイルなどから四面体メッシュを自動作成する。
  • 境界層メッシュを挿入する機能がある。
  • OpenFOAM 用メッシュを出力可能。

参考

形状・メッシュ作成ソフト

Gmsh

  • プロジェクトページ: Gmsh
  • 対応環境: Linux, Windows
  • ライセンス: GNU GPL
  • ごく簡単な形状であれば作成可能。
  • STL などをもとにメッシュを作ることができる。
  • gmshToFoam で OpenFOAM 用メッシュに変換できる。

参考

SALOME

  • I-DEAS Universal ファイルを出力可能。OpenFOAM の ideasUnvToFoam で OpenFOAM 用メッシュに変換できる。
  • ヘキサも切れる。ヘキサとテトラの混在も可能。ヘキサ-テトラの接続にはピラミッドが使われるが、I-DEAS Universal ファイルが対応していないため、一旦 MED で書き出して Gmsh で Gmsh 形式に変換する必要がある。

参考