ユーザーガイド 1.5系 - 5.5 メッシュの変換

出典: OFWikiJa

[next] [prev] [up]

[編集] 5.5 メッシュの変換

ユーザは、他のパッケージを使用してメッシュを生成し、OpenFOAMが用いる形式にそれらを変換できます。 メッシュ変換コードは、命名規則に従います。 利用可能なメッシュコンバータは以下の通りです。

  • fluentMeshToFoamは、2次元、3次元両方の場合に動くFluent.mshメッシュファイルを読みます。
  • starToFoamは、STAR-CD PROSTARのメッシュファイルを読みます。
  • gambitToFoamは、GAMBIT .neuのニュートラルファイルを読みます。
  • ideasToFoamは、ANSYS .ans形式で書かれたI-DEASメッシュを読みます。
  • cfxToFoamは、.geo形式で書かれたCFXメッシュを読みます。

[編集] 5.5.1 fluentMeshToFoam

 Fluentは、.msh拡張子をもつ単一のファイルに、メッシュ・データを書き出します。 ASCII書式でファイルを書かなければなりませんが、それは、Fluentのデフォルトの選択ではありません。 2次元の幾何形状を含んでいる単一の流れのFluentメッシュを変換することは可能です。 OpenFOAMでは、2次元幾何形状は、現在のところ、3次元でメッシュを定義することで扱われます。 そこでは、前面と背面はempty境界パッチタイプと定義されます。 2次元のFluentメッシュを読みこむときに、コンバータは、自動的に3次元目の方向にメッシュを拡張し、frontAndBackPlanesと名づけ、空のパッチを加えます。

 また、以下の特徴が見られます。

  • OpenFOAMコンバータは、Fluentの境界条件の定義をできるだけ把握しようと試みるでしょう。しかしながら、OpenFOAMとFluentの境界条件の間に明確で、直接的な対応は全くないので、ユーザはケースを実行する前に境界条件をチェックするべきです。
  • 2次元メッシュから軸対称なメッシュを生成することは現在サポートされていませんが、ご要望があれば実装されるでしょう。
  • 複数の媒質からなるメッシュは受入れられません。もし複数の流体媒質が存在していると、それらは単一のOpenFOAMメッシュに変換されるでしょう。もし固体領域が検出されると、コンバータは、それを排除しようと試みるでしょう。
  • Fluentはメッシュの内部にパッチを定義することをユーザーに許しています。つまり、面の両側にセルが存在する場合です。そのようなパッチはOpenFOAMでは許容されていないので、コンバータはそれらを排除しようと試みるでしょう。
  • 現在、埋め込まれたインタフェースと細分化のツリーに関するサポートは全くありません。

 Fluent .mshファイルの変換は、必要なディレクトリーとファイルを作成することによってまず新しいOpenFOAMケースを作ることで始まります。ケースディレクトリはsystem のサブディレクトリにcontrolDict ファイルを含みます。そしてコマンド・プロンプトにおいて、ユーザは以下を実行することになります。

fluentMeshToFoam <meshFile>

ここで<meshFile>は絶対パスか相対パスを含む.mshファイルの名前です。

[編集] 5.5.2 starToFoam

 このセクションはSTAR-CDコードで生成されたメッシュを、OpenFOAMのメッシュのクラスが読むことができる書式に変換する方法を説明します。 メッシュはSTAR-CDとともに供給されるどのパッケージでも生成できます。 例えばPROSTAR、SAMM、ProAMおよびそれらの派生物です。 コンバータは、統合された任意のカップルマッチングを含むどんなただ一つの流れのメッシュも受け入れ、すべてのセルタイプがサポートされます。 コンバータがサポートしない特徴は以下の通りです。

  • 複数の流れのメッシュの仕様。
  • バッフル、すなわち、領域内に挿入された厚さなしの壁。
  • 部分境界、カップルマッチのうちの覆われていない部分は境界面であると考えられます。
  • スライドするインターフェース。

 複数の流れのメッシュに関しては、メッシュ変換は、別々のメッシュとしてそれぞれの個々の流れを書くことによって実現され、OpenFOAMでそれらを組み立て直すことができます。

 OpenFOAMは、セクション5.1で指定されたかなり厳しい妥当性評価基準に整合しているメッシュの入力だけを受け入れるという方針を採ります。 無効なメッシュを用いて実行されることはなく、それ自体が無効なメッシュは変換できません。 以下のセクションは、STAR-CDとともに供給されたメッシュ生成パッケージを用いてメッシュを生成する際に、OpenFOAM形式に変換できることを保証するために取らなければならない方法を説明します。 これからのセクションにおいて重複を避けるために、STAR-CDとともに供給されるメッシュ生成ツールは、STAR-CDという総称によって参照されることにします。


[編集] 5.5.2.1 変換における一般的なアドバイス

 ユーザはstarToFoamの変換を試みる前に、STAR-CDのメッシュをチェックするツールを動かすべきです。 そして、変換の後に、checkMeshユーティリティは新たに変換されたメッシュで実行されるべきです。 あるいはまた、starToFoamはユーザーが問題のあるセルをより近くで見ることができるようにするためのPROSTARコマンドを含む警告を発行するかもしれません。 問題の多いセルとマッチは、OpenFOAMを用いてメッシュを使おうとする前に、チェックされ修正されるべきです。 無効なメッシュはOpenFOAMで動きませんが、それが正当性評価基準を課さない別の環境では動くかも知れないということを覚えていてください。

 コンバータにおいて許容度を合わせることで、許容度のマッチングに関するいくつかの問題を克服できます。 しかしながら、有効性への限界があり、デフォルトレベルからマッチング許容度を増加させることが明らかに必要であるということは、オリジナルのメッシュが正確でないことを示します。


[編集] 5.5.2.2 不要なデータの消去

 メッシュ生成が終了したら、流体セルが作成されて、他のすべてのセルが取り除かれると仮定して、あらゆる不要な頂点を取り除き、セル境界と頂点番号を圧縮してください。これは以下のPROSTARコマンドで実行されます。

CSET NEWS FLUID
CSET INVE

 CSETは空であるべきです。 これがそうでないなら、CSETでセルを調べて、モデルを調整してください。 もしセルを本当に必要としていないなら、PROSTARコマンドを使用することでそれらを取り除くことができます。

CDEL CSET

 同様に、頂点も取り除かれる必要があるでしょう。

CSET NEWS FLUID
VSET NEWS CSET
VSET INVE

 これらの必要とされていない頂点を取り除く前に、必要とされていない境界面は、除かれる前に、集められなければなりません。

CSET NEWS FLUID
VSET NEWS CSET
BSET NEWS VSET ALL
BSET INVE

 BSETが空でないなら、必要とされていない境界面は以下のコマンドを使用して削除することができます。

BDEL BSET

 このとき、モデルは定義された境界面と同様に、流体セルとそれを支持する頂点だけを含むべきです。 すべての境界面はセルの頂点によって完全に支えられるべきです。 もしそうでないなら、すべてが正常になるまで幾何学形状を正常化し続けます。

[編集] 5.5.2.3 デフォルトの境界条件の削除

 デフォルトで、STAR-CDは明示的に境界領域に関連づけられていないどんな境界面に対して壁境界を適用します。 残っている境界面は、割り当てられた境界タイプ0としてdefault境界領域に集められます。 OpenFOAMは、人為ミスを誘発するので、意図的に未定義の界面のためのdefault境界条件の概念を持っていません。例えば、すべての関連付けられていない面にデフォルト条件を意図して与えたかどうかをチェックする手段は全くありません。

 したがって、メッシュが首尾よく変換されるために、各OpenFOAMメッシュに対するすべての境界を指定しなければなりません。 default境界は、以下で説明された手順を用いることで実体を持つものに変えられる必要があります。

  1. Wire Surfaceオプションで幾何学形状をプロットしてください。
  2. default領域0と同じパラメータで余分な境界領域を定義してください。そして、すべての見えている面を、境界ツールでゾーンオプションを選択して、モデルのスクリーンに描かれている全体の周りに多角形を描くことによって、10といった新しい領域に加えてください。PROSTARの以下のコマンドを発行することによって、これができます。
RDEF 10 WALL
BZON 10 ALL

3. 私たちはセットからすべての以前に定義された境界タイプを外すことになるでしょう。境界領域に行ってください。

BSET NEWS REGI 1
BSET NEWS REGI 2
... 3, 4, ...

境界セットに関連している頂点を集め、次に頂点に関連している境界面を集めてください。それらは元のセットのように2倍あるでしょう。

BSET NEWS REGI 1
VSET NEWS BSET
BSET NEWS VSET ALL
BSET DELE REGI 1
REPL

 これは境界領域1の上で定義された境界領域10の面を与えるはずです。BDEL BSETと共にそれらを削除してください。すべての領域にこれらを繰り返してください。

[編集] 5.5.2.4 モデルの再番号付け

 コマンドを使用することでモデルの番号を付け替えて、チェックしてください。

CSET NEW FLUID
CCOM CSET
VSET NEWS CSET
VSET INVE (Should be empty!)
VSET INVE
VCOM VSET
BSET NEWS VSET ALL
BSET INVE (Should be empty also!)
BSET INVE
BCOM BSET
CHECK ALL
GEOM

 内部のPROSTARの照合は、最後の2つのコマンドで実行されます。コマンドはいくつかの予見できない誤りを明らかにするかもしれません。また、PROSTARは幾何学形状にではなく、STAR-CDのために因子を適用するだけであるので、スケール因子に注意してください。因子が1でないなら、OpenFOAMのscalePointsユーティリティを使用してください。

[編集] 5.5.2.5 メッシュデータの出力

 メッシュがいったん完成されたら、モデルのすべての統合されたマッチをカップルタイプ1に置いてください。 他のすべてのタイプが、任意のマッチを示すのに使用されるでしょう。

CPSET NEWS TYPE INTEGRAL
CPMOD CPSET 1

そして、計算格子の構成要素をそれら自身のファイルに書かなければなりません。 これはコマンドを発行し、境界に対してPROSTARを用いることで行われます。

BWRITE

デフォルトでは、これは.23ファイル(3.0の前のバージョン)か.bndファイル(バージョン3.0以降)に書きます。 セルに対しては、以下のコマンド、

CWRITE

がセルを.14.celファイルに出力します。頂点に対しては、以下のコマンド、

VWRITE

.15.vrtファイルに出力します。 現在の既定の設定では、ASCII書式でファイルを書き出します。 カップルが存在しているなら、拡張子.cplを持つ追加カップルファイルが以下のコマンドをタイプすることによって書きだされる必要があります。

CPWRITE

 3つのファイルに出力した後に、PROSTARを終了するか、ファイルを閉じてください。 パネルに目を通して、すべてのSTAR-CDのサブモデル、材料、および流体の特性に注目してください。 材料の特性と数学的モデルは、OpenFOAM辞書ファイルを作成し、編集することで設定される必要があるでしょう。

 PROSTARファイルを変換する手順は最初に、必要なディレクトリを作成することで新しいOpenFOAMのケースを作ることです。 同じディレクトリの中にPROSTARファイルを格納しなければなりません。 そして、ユーザはファイル拡張子を変えなければなりません。 .23.14.15(STAR-CDバージョン3.0以前)か、.pcs.cls.vtx(STAR-CDバージョン3.0以降)から、それぞれ.bnd.cel、および.vrtに変えます。

[編集] 5.5.2.6 .vrtファイルの問題

 .vrtファイルは、フリー・フォーマットというよりむしろ指定された幅に関するデータ列で書かれています。 座標値が続く頂点番号を与えるデータの典型的な行は、以下の通りであるかもしれません。

19422   -0.105988957   -0.413711881E-02   0.000000000E+00

縦座標が科学表記法で書かれていて、負であるなら、値の間には、スペースが全くないかもしれません。例えば以下のような状況です。

19423   -0.953953117E-01-0.338810333E-02 0.000000000E+00

starToFoamコンバータは、縦座標の値を区切るためにスペースを区切り文字としてデータを読むので、前の例を読むとき、問題になります。 したがって、OpenFOAMは必要なところで値の間にスペースを挿入するための簡単なスクリプト、foamCorrectVrtを含んでいます。 すると、それが前の例を以下のように変換するでしょう。

19423   -0.953953117E-01 -0.338810333E-02  0.000000000E+00

したがって、必要ならばstarToFoamコンバータを動かす前に、以下のようにタイプすることでfoamCorrectVrtスクリプトを実行するべきです。

foamCorrectVrt <file>.vrt
[編集] 5.5.2.7 OpenFOAMのフォーマットへのメッシュの変換

 ここで、OpenFOAMの実行に必要な境界、セル、およびポイントファイルを作成するために、変換ユーティリティstarToFoamを実行できます。


starToFoam <meshFilePrefix>


<meshFilePrefix>は、メッシュファイルの絶対か相対パスを含んでいる接頭語の名前です。 ユーティリティの実行後に、OpenFOAM境界タイプはboundaryファイルを手で編集することによって指定されるべきです。

[編集] 5.5.3 gambitToFoam

 GAMBITは.neu拡張子を持つ単一のファイルにメッシュ・データを書き出します。 GAMBITの.neuファイルを変換する手順は、最初に新しいOpenFOAMケースを作成し、そしてユーザがコマンド・プロンプトで以下のコマンドを実行します。

gambitToFoam <meshFile>

ここで<meshFile>は絶対か相対パスを含む.neuファイルの名前です。

 GAMBITファイル形式は例えば、壁、対称面、周期境界といったような境界パッチの種類に関する情報を提供しません。 したがって、すべてのパッチがタイプパッチとして作成されます。 メッシュ変換の後に必要に応じてリセットしてください。

[編集] 5.5.4 ideasToFoam

OpenFOAMはI-DEASによって生成されたメッシュを変換できますが、.ansファイルとしてANSYS形式で書きだされます。 .ansファイルを変換する手順は最初に新しいOpenFOAMケースを作成し、そしてユーザがコマンド・プロンプトから以下のように実行します。

ideasToFoam <meshFile>

ここで<meshFile>は絶対か相対パスを含む.ansファイルの名前です。

[編集] 5.5.5 cfxToFoam

 CFXは.geo拡張子を持つ単一のファイルにメッシュ・データを書き出します。 CFXのメッシュ形式は、ブロック構造です。 すなわち、メッシュは相互の関係と頂点の位置の情報を持つブロックの組として指定されます。 OpenFOAMはメッシュを変換して、できるだけよくCFX境界条件を得ようと試みるでしょう。 単一のOpenFOAMメッシュに変換される全ての領域とともに、多孔質や固体領域などに関する情報を含むCFXの3次元の‘パッチ'定義は無視されます。 CFXは‘デフォルト'パッチの概念をサポートし、そこでは、境界条件が定義されていない外部の面のそれぞれが壁として扱われます。 これらの面はコンバータで集められ、OpenFOAMメッシュのdefaultFacesパッチに入れられ、タイプwallが与えられます。 もちろん、それに続けてパッチタイプを変えることができます。

 CFXでのOpenFOAMの2次元幾何形状は、1つのセルの厚さ[**]の3次元メッシュとして作成されます。 もしユーザがCFXによって作成されたメッシュで2次元のケースを動かしたいなら、前後の面に関する境界条件はemptyとして設定されるべきです。 ユーザは、計算面の他のすべての面に関する境界条件が正しく設定されていることを確かめるべきです。 現在、2次元のCFXメッシュから軸対称の幾何形状を作成するための機能はありません。

 CFXの.geoファイルを変換する手順は最初に新しいOpenFOAMケースを作成し、そしてユーザがコマンド・プロンプトから以下のように実行します。

cfxToFoam <meshFile>

ここで<meshFile>は絶対か相対パスを含む.geoファイルの名前です。

[next] [prev] [up]