Help us understand the problem. What is going on with this article?

OpenFOAM用メッシュをGmshで作成し変換する方法(gmshToFoam)

More than 3 years have passed since last update.

リンク

Gmshのインストール

Ubuntuの場合は

$ sudo apt-get install gmsh

とすればgmsh-2.8.3をインストールできます。最新版(2016年7月現在はgmsh-2.12.0)を得るにはGmshのホームページから直接ダウンロードしてください。

$ wget "http://gmsh.info/bin/Linux/gmsh-2.12.0-Linux64.tgz"   # Gmsh-2.12.0をダウンロード
$ tar zxvf gmsh-2.12.0-Linux64.tgz                            # 解凍
$ cd gmsh-2.12.0-Linux                                        # ディレクトリを移動
$ sudo su                                                     # 管理者へ移行
$ cp bin/gmsh /usr/bin/                                       # 以下、各ファイルをコピー
$ cp -r share/doc/gmsh /usr/share/doc/
$ cp share/man/man1/gmsh.1 /usr/share/man/man1/
$ gmsh -version                                               # バージョンを確認 >> 2.12.0が返ってくる

2.8.3から2.12.0までの変更点はGmsh Version Historyを確認してください。(2.9.2からSurfaceに組み込まれたPoint/LineをExtrudeすることが可能となっていますので、その機能が必要な場合は最新バージョンをインストールしてください。)

説明

Gmshの使い方については上のリンクを参照してください。gmshToFoamはGmshで作成したメッシュをOpenFOAMのメッシュ形式に変換するユーティリティーアプリケーションです。ケースのルートディレクトリにおいて

$ gmshToFoam <gmshFileName>

と入力すればGmshのメッシュがOpenFOAM形式に変換されconstant/polyMesh/に保存されます。例えばディレクトリ構造が以下のようになっているケースの場合

gmshToFoam実行前のディレクトリ構成
case/
  |---0/
  |   |---p
  |   |---U
  |
  |---constant/
  |   |---polyMesh/
  |
  |---system/
  |   |---controlDict
  |   |---fvSolution
  |   |---fvScheme
  |
  |---preProcess/
      |---gmsh.geo

Gmshを使ってメッシュを作成し、gmshToFoamでOpenFOAM形式に変換するには次のようにコマンドを入力します。

Gmshでメッシュを作成しOpenFOAM形式に変換
$ cd preProcess/
$ gmsh -3 gmsh.geo                  # 3Dメッシュファイルgmsh.mshが作成される
$ cd ..
$ gmshToFoam preProcess/gmsh.msh    # メッシュ変換
gmshToFoam実行後のディレクトリ構成
case/
  |---0/
  |   |---p
  |   |---U
  |
  |---constant/
  |   |---polyMesh/
  |       |---sets/
  |       |---boundary
  |       |---points
  |       |---faces
  |       |---owner
  |       |---neighbour
  |       |---pointZones
  |       |---faceZones
  |       |---cellZones
  |
  |---system/
  |   |---controlDict
  |   |---fvSolution
  |   |---fvScheme
  |
  |---preProcess/
      |---gmsh.geo
      |---gmsh.msh

Gmsh内で定義されたPhysical SurfaceおよびPhysical Volumeは、定義された名前のままそれぞれ

  • Physical Surface --> boundary(outer surfaceの場合)またはfaceZones(internal surfaceの場合)
  • Physical Volume --> cellZones

と変換されます。ただしgmshToFoamには、Gmshで定義されたinternal surfaceの名前を認識できずfaceZone_#という名前でfaceZone内に保存するというバグがあります。これはgmshToFoam2を使うと避けることができるようですが、gmshToFoam2はfoam-extend-3.2には標準で含まれておらず、またファイル・クラス・関数の定義名がgmshToFoam作成時から変化しておりMakeファイルおよびソースコードの修正が必要です。

shohirose
2015年8月からテキサス大学オースティン校の石油工学科博士課程に留学し、2019年12月にPhDを取得しました。現在は東京に住んで東京本社で働いています。専門は貯留層工学、フラクチャー力学、数値計算あたりです。プログラミング言語はc++, matlab, pythonを主に使用しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした