軸対称解析モデルの結果を3Dに変換する
By K.Yoshimi
はじめに
ANSYS Fluentを使用して、 軸対称解析モデルで計算した後に、3次元で結果を見たいという要望がしばしばあります。
しかし、Fluentには、2次元と3次元の解析モジュールが分かれていることもあり、 軸対称解析モデルの結果を3次元的に見る機能が用意されおりません。
そのため、通常は、別途プログラムを書いて、軸対称モデルを3次元に変換してから可視化することが多いようです。
そこで、この記事では、オープンソースの可視化ソフトウェアであるParaViewを用いて、 Fluentの軸対称解析モデルの結果を3次元で可視化する方法を紹介します。
軸対称解析モデル
数値シミュレーションでは、3次元の物理現象でも、軸に対称な現象と考えられる場合は、 メッシュ数や計算時間を削減する目的で、軸対称解析モデルを採用するのが普通です。
例えば、Fluentのチュートリアルにある下図のような円筒形の燃焼器で、中央にある小さなノズルから高速のメタンを注入して、 周囲空気と燃焼させるような解析も、軸対称解析モデルで計算しています。
この解析結果のメタンの質量分率は、下図のように2次元で表示されます。
これを見ると、ノズルから注入されたメタンが、空気中の酸素と反応して、急速に消費されていく様子を確認できます。
また、温度のピークも2300Kにまで上がっています。
ノズル付近の流速ベクトルを表示すると、メタンの高速な噴流に、周囲の空気が巻き込まれ混合される様子が見られます。
このように、軸対称解析モデルの結果は、2次元で表示されますが、現象を分析するには十分です。
しかし、3次元の現象として想像するには、頭の中でこの面を軸中心に回転させる必要があるでしょう。 また、3次元化されたデータがあれば、より現象を理解するための助けになるかもしれません。
以下では、軸対称モデルから3次元モデルを作成する方法について説明します。
FluentからEnSight Gold形式への出力
まず、軸対称モデルの解析結果をFluentから出力する必要があります。
出力形式は、ParaViewで読み込めるものとして、EnSight Gold形式を選択しました。
Fluentのメニューから
File ⇒ Export ⇒ Solution
で、Export窓が開きます。Export窓において、
- File Type:EnSight Case Goldを選択
- Location:Cell Centerにチェック(セル中心データで出力)
- Cell Zones:出力するセルゾーン(解析領域)を選択
- Quantities:出力する変数を選択
を設定してから、Write…ボタンで出力します。
すると、*.encasファイルと、各変数に対応するファイルが出力されます。
ParaViewへの読み込み準備
出力したEnSight Gold形式は、ParaViewにそのまま読み込むことができません。
*.encasファイルの修正が必要です。
- *.encasファイルをエディターで開き以下を修正:
- 下記のSCRIPTS行の削除
SCRIPTS metadata: "*.xml"- ファイル名を囲んだダブルコーテーションの削除
"gascomb1.geo" ⇒ gascomb1.geo "gascomb1.scl1" ⇒ gascomb1.scl1 ... - ファイル拡張子の変更:*.encas ⇒ *.case
以上の修正で、ParaViewに読み込めるはずです。
ParaViewのプラグイン
ParaViewの開発に使用されているVTKライブラリには、2次元面を軸中心で回転させて3次元化する vtkVolumeOfRevolutionFilterが存在しますが、 ParaViewにこの機能は、まだ組み込まれていません。
そこで、Jonah Sedamさんが作成した組み込むためのプラグインを使用します。
VolumeOfRevolution.xmlを ダウンロードし、適当な場所に置きましょう。
次に、ParaViewを起動します。
ParaViewが起動しましたら、メニューバーから
Tools ⇒ Manage Plugins…
をクリックし、Pluging Managerを立ち上げます。
Plugin Managerにおいて、
- Load New…ボタンをクリック
- 先ほどダウンロードしたVolumeOfRevolution.xmlを指定しロード
- Closeボタンをクリック
で、VolumeOfRevolutionプラグインが登録されます。
ParaViewでの3次元化
それでは、やや煩雑ですが、ParaViewでの3次元化の操作を行います。
EnSight Gold形式の読み込み
ParaViewにEnSight Goldファイル(*.case)を読み込みます。
File ⇒ Open…
から、ファイルを選択してApplyボタンをクリックします。
次に、Mege Blocksフィルターで、データ形式をUnstructured Gridに変換し、簡略化します。
Filters ⇒ Alphabetical ⇒ Merge Blocks
をクリックし、そのままの設定でApplyボタンをクリックです。
ライン要素の削除
出力したEnSight Gold形式には、Line要素が含まれていますが、後の処理で邪魔になるため、ここで削除します。
まず、SpreadSheet Viewを開きます。
- Split Horizontal Axisアイコンをクリックし、ビューアを分割
- SpreadSheet Viewアイコンをクリック
SpreadSheet Veiwにおいて
- Showing:MergeBlocks1を指定
- Attribute:Cell Dataを選択
- Cell Typeのヘッダーをクリック
こうすると、要素の行を要素タイプごとに整列させることができます。
次に、Line以外の要素タイプの要素を選択し、抽出します。
- SpreadSheet VeiwでLine以外の行を、左クリックとShiftキーで選択
- Extract Selectionアイコンをクリック
- Applyをクリック
続けて、ExtractSelection1をPolygonデータに変換します。
- Pipeline Browser上で、ExtractSelection1を選択
- Filters ⇒ Alphabetical ⇒ Extract Surfaceフィルターをクリック
- Applyをクリック
最後に、ロードしたプラグインを用いて、軸対称モデルを3次元化します。
- Pipeline Browser上で、ExtractSurface1を選択
- Filters ⇒ Alphabetical ⇒ Volume Of Revolutionフィルターをクリック
- Propertiesタブにおいて:
- Axis Direction:回転軸をベクトルで指定
- Sweep Angle:回転角度(度)で指定(360度で一周)
- Axis Position:回転軸の始点を座標で指定
- Resolution:回転方向の解像度を指定
- Applyをクリック
これで、漸く軸対称モデルが3次元化されました。
データが3次元化されると下図のように、ボリュームレンダリング表示もできるようになります。
おわりに
Fluentで計算した軸対称モデルの解析結果をParaViewを利用して、3次元化する方法を説明しました。
軸対称なので、本来は、3次元化する必要はありませんが、3次元化すると少しだけ現象の理解の助けになるかもしれませんので、 よろしかったらお試しください😄
❗ 本当は、FluentからTecplot形式で出力した方が簡単ですが、 今回はやや複雑なEnSight Gold形式で出力した場合の方法を紹介しています。
弊社の解析事例
弊社の流体解析事例については、下記のリンクからご覧ください.