FLUENT ユーザーのための ParaView 入門

2014年12月25日

はじめに

FLUENT の計算結果を可視化するために ParaView を使う方法を説明する。ParaView のバージョンは 4.1 以下を想定する。

データを開く

  1. ParaView は一応 FLUENT のデータを直接開くことができるが、ここではそうしないで、まずデータを FLUENT で読み込み、EnSight 形式で Export する。その際、書き出すデータの種類は適切に選択する。多くのデータを選択すると時間がかかる上にファイルが大量になる。
  2. 書き出されたファイルの中に拡張子が ".encase" となっているものがあるはずなので、その拡張子を ".case" に変更する。
  3. ParaView を起動する。
  4. 左上の開くボタンを押す。
  5. case ファイルを選ぶ。パスに日本語は含まないほうがよい。
  6. 左の "Apply" ボタンを押すと、モデルが表示される。

時系列データの場合

FLUENT で計算する前に EnSight の時系列データを出力するように設定しておけば、計算時に時系列データが出力されるのでそれを読み込めばよい。計算時にデータを出力していない場合は、時系列データを表示させるための EnSight ファイルを用意する必要がある。まず、すべての時刻のデータを EnSight 形式で書き出す (これはジャーナルを使えば自動でできる)。そして次のようなデータを用意する。

test.case

FORMAT
type:  ensight gold
GEOMETRY
model: test-****.geo
VARIABLE
scalar per node: water_vof                 test-****.scl1
vector per node: velocity                  test-****.vel
TIME
time set: 1
number of steps: 10
filename start number: 10
filename increment: 10
time values: 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

ケースに合わせて設定を修正する。

"model" はメッシュを指定する。メッシュが変化していく場合は、上のように "test-1-****.geo" などとする。ここで "*" は任意の 1 文字に対応する。たとえば出力データが "test-0010.geo"、"test-0020.geo"、などとなっていたら、上のように "test-****.geo" とする。メッシュが変化しない場合は "test-0010.geo" などと 1 つのファイルを指定すればよい。

VARIABLE 以下は変数の設定である。ここではスカラー値ファイル .scl1 のデータを water_vof (水の VOF)、ベクトル値ファイル .vel のデータを velocity (速度) としている。ここで "scalar per node" の "node" は、FLUENT で EnSight ファイルを節点値で出力した場合で、セル値の場合はこれを "element" に変える。

TIME 以下は時系列データの設定である。ファイル名が "test-0010", "test-0020" などと変化していき、対応する時刻がそれぞれ 0.1, 0.2 などで 10 個のデータがあるとすると、上のような設定になる。"time values" の数字の列は改行できる。1 行であまり多くの数字を書くと ParaView が落ちるようなので、適度に改行を入れたほうがよい。

ParaView の概念

ParaView の概念を簡単に説明する。用語として "ソース" と "フィルター" というものがある。データが "ソース" で、それを加工するものが "フィルター" である。"フィルター" を通した結果もまた "フィルター" にかけることができる。ParaView は "ソース" → "フィルター" → "フィルター" … の結果をレンダリング (描画) する。このつながり ("パイプライン") は枝分かれすることもできる。その様子は画面左の "Pipeline Browser" に表わされる。

上の図は、読み込んだデータ "cavity3d-52.case" に対してフィルター "Extract Surface" を使い、さらにそれに重ねてフィルター "Feature Edges" を使っていることを表わしている。また、それとは別に "cavity3d-52.case" に対して "Stream Tracer" を使っていることも表わしている。"Feature Edges" と "Stream Tracer" の結果が表示されている (目のマークで色が濃いものが "表示" を表わす)。

ソースおよびフィルターは、メニューの "Sources", "Filters" でそれぞれ追加することができる。フィルターはどのソースに適用するかによって結果が変わる。フィルターを適用するときにはどのソースに適用すべきか考える必要がある。基本はファイルを開いた時にできるソースである。フィルターにフィルターを重ねれば、細かい処理を行うことができる。

モデルの表示

モデル表示画面上でマウスをドラッグすると、視点が動く。

  • 左ボタンドラッグ: 回転
  • 中央ボタンドラッグ: 平行移動
  • 右ボタンドラッグ/ホイール: 拡大・縮小

画面の上にある次のボタン群でもカメラを操作できる。

一番左のボタンはモデル全体を画面に合わせる。左から 2 番目のボタンは、選択範囲を拡大する。残りはカメラを座標軸に沿わせるボタンで、一番右のボタンを押すとカメラが初期状態と同じ方向を向く。

モデルの表示のしかたにはいくつかある。よく使うものは "Surface" と "Surface With Edges" である。切り替えは画面左の "Object Inspector" の "Display" タグの "Style" で行うか、画面の上にある次のコントロールで行う。

サーフェイスの色の種類は、画面の上にある次のコントロールで切り替える。

"Solid Color" の色は、次のボタンで選択することができる。

また、サーフェイスを半透明にすることができる。"Object Inspector" の "Display" タグの "Style" にある "Opacity" の値を 1 より小さく (0.5 などに) すれば、サーフェイスが半透明になる。

背景色が気に入らない場合は、モデル画面左上にある小さなボタンの中の次のボタンを押す。

表示されるダイアログの "General" で背景色を選択できる。また、その下の "Use Parallel Projection" で透視投影/平行投影を切り替えることができる。

特徴線の表示

FLUENT における Feature 表示と同様の表示を行うには、次のようにフィルターを適用する。

  1. メニュー [Filters]-[Alphabetical] から "Extract Surface" を選んで "Apply" ボタンを押す。
  2. メニュー [Filters]-[Alphabetical] から "Feature Edges" を選んで "Apply" ボタンを押す。
  3. Extract Surface の表示が必要ないならば、画面左の "Pipeline Browser" の Extract Surface の結果の左にある目のマークをクリックして非表示にする。

フィルターを選ぶには、Ctrl+Space を押してフィルター名を入力する方法もある。タイピングが速い人であれば、そちらのほうがメニューから選ぶよりも速いかもしれない。

任意の境界だけを表示する

任意の境界だけを表示させたい場合は、フィルター "Extract Block" を使う。境界がブロックとしてリストアップされるので、表示したいものだけチェックして "Apply" ボタンを押す。

セル値・節点値の作成

流線やベクトルを描くには節点データが必要である。もしデータがセルデータしか含んでいない場合は、フィルタの "Cell Data To Point Data" を使ってセルデータから節点データを作ることができる。逆に節点データからフィルタ "Point Data To Cell Data" でセルデータを作ることもできる。

値の分布の表示

速度や温度、圧力などの分布を表示させるには、サーフェイスの色の種類を "Solid Color" の代りに表示したい値に切り替えるだけでよい。

カラーバーを表示するには、画面左上のボタンを押す。

次のボタンを押すと、色の範囲が全範囲に調整される。

色の範囲の調整などを行うには、"Solid Color" の色を設定するのに使った次のボタンを押す。

色の範囲を調整するには、表示されたダイアログの "Automatically Rescale to Fit Data Range" のチェックをはずし、"Rescale" ボタンを押して出てくるダイアログで設定する。また、色が気に入らない場合は、"Choose Preset" ボタンを押して出てくるダイアログで変更することができる。

流線の表示

流線を表示するには、フィルターの "Stream Tracer" を使う (節点の流速ベクトルが必要)。メニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブの "Vectors" で速度ベクトルを選び、"Apply" ボタンを押すと流線が表示される。

流線の発生のしかたには 2 通りあり、それは "Object Inspector" の "Properties" タブの "Seed Type" で選択できる。"Point Source" は点というより大きさをもった球から流線を発生させる。"Line Source" は線分から流線を発生させる。点や線分はマウスでつかんで移動させることができる。

FLUENT のように面から流線を発生させるには、フィルター "Extract Block" で面を用意して、フィルター "Stream Tracer With Custom Source" を使う。メニューからフィルターを選ぶと "Input" と "Source" をどのソースにするか聞かれるので、"Input" には節点値の流速ベクトルデータを含むものを、"Source" には Extract Block で作ったものを選ぶ。

流線の長さが足りない場合は、"Object Inspector" の "Properties" タブの "Maximum Streamline Length" の値を大きくする。

"Stream Tracer" にはさらに "Ribbon" や "Tube" などのフィルターを適用できる。

ベクトルの表示

ベクトルを表示するには、フィルターの "Glyph" を使う (節点の流速ベクトルが必要)。メニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブの "Vectors" で速度ベクトルを選び、"Apply" ボタンを押すとベクトルが表示される。"Vectors" の下の "Glyph Type" でベクトルの表示の種類を選ぶことができる。FLUENT 風な表示にするには、"2D Glyph" を選ぶとよい。

上記のベクトルは節点に表示される。FLUENT のようにセル中心でベクトルを表示させるには、フィルター "Cell Centers" を適用し、それにフィルター "Glyph" を適用する ("Cell Centers" を適用するソースにはセルの速度ベクトルが含まれる必要がある)。

スライス

モデル断面の値の分布を見るには、フィルターの "Slice" を使う。メニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブで断面位置を設定し、"Apply" ボタンを押すと断面の分布が得られる。断面の位置は画面上でマウスでつかんで動かすこともできる。画面の断面表示が邪魔なときは、"Show Plane" のチェックをはずせば見えなくなる。

クリップ

モデルをクリップするには、フィルターの "Clip" を使う。メニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブで断面位置を設定し "Apply" ボタンを押すと、断面の法線方向にある断面以降の部分だけが表示される。断面の位置は画面上でマウスでつかんで動かすこともできる。画面の断面表示が邪魔なときは、"Show Plane" のチェックをはずせば見えなくなる。

等値面の表示

値の等値面を表示させるには、フィルターの "Contour" を使う。メニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブの "Contour" の "Contour By" で表示に使用する値を選び、"Isosurfaces" で値を設定して "Apply" ボタンを押すと、等値面が表示される。

値が任意の範囲にあるセルだけを表示

フィルター "Threshold" を使うと、ある値の範囲にあるセルだけを表示させることができる。フィルターをメニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブの "Scalars" で対象とする値を選び、"Lower Threshold" と "Upper Threshold" を設定して "Apply" ボタンを押すと、設定した範囲に値が含まれるセルだけが表示される。

任意の式による値の表示

FLUENT の "Custom Field Functions" のような機能を、フィルター "Calculator" で実現できる。フィルターをメニューから選ぶか、画面の上にある次のボタンを押す。

"Object Inspector" の "Properties" タブの電卓のようなコントローラで式を作り、"Apply" ボタンを押すと、新しい値が作成される。

これによってたとえば、ケルビン単位の温度から摂氏単位の温度を作ったり、あるいはベクトルからスカラーを作ることもできる。

数値の取得

任意の位置の数値を知りたい場合は、フィルター "Probe Location" を使う。フィルターをメニューから選び、値を取りたい点を設定し、"Apply" ボタンを押す。見た目では何も起こらない。

値を見るには、スプレッドシートを表示する。モデル画面の右上にある小さなボタンから、"Split Horizontal" か "Split Vertical" を押す。画面が縦あるいは横に割れる。

新しい画面が出てきてボタンが表示されるので、"Spreadsheet View" を押す。スプレッドシート上に、選んだ点の値が表示されているはずである。"Probe Location" の点の位置を変えるに応じてスプレッドシートの値が変わるのを確認できる。

また、データを直接スプレッドシート表示することで、任意のセルや点の値を調べることもできる。スプレッドシートの行を選択すると、対応するセルや点にマーカーがつく。ただ、これでは目的の場所の値を見つけにくいときがある。その場合は表示範囲を直接画面で選択する。つぎのようなボタンで点やセルを選択できる。

メニュー [View]-[Selection Inspector] を表示させてセルや点を選択すると ID がわかるので、スプレッドシートで選択部分の値を調べることができる。また、画面に情報を直接表示させることもできる。"Selection Inspector" の下のほうにある "Display Style" の "Cell Label" や "Point Label" で "Visible" を有効にすると、選択部分にラベルとして ID などが表示される。表示される内容は "Label Mode" で ID や速度などを選ぶことができる。

セルや点の値の最大値や最小値が必要なときは、スプレッドシートの項目をクリックしてソーティングすればよい。行を選択すればマーカーがつくが、それでわかりにくい場合は、フィルター "Extract Selection" を使って選択した部分だけを表示させることができる。

グラフの表示

フィルター "Plot Over Line" で、線分上の値のグラフを描かせることができる。フィルターをメニューから選んで、"Object Inspector" の "Properties" タブで線分の設定をし"Apply" ボタンを押すと、グラフ画面が表示されてグラフが描画される。

グラフの設定は、"Object Inspector" の "Display" タブか、グラフ画面左上の小さなボタンの中の "Edit View Options" で行う。"Object Inspector" の "Display" は、モデル画面が選択されているかグラフ画面が選択されているかで挙動が変わるので注意する。画面の選択は画面のクリックで切り替わる。選択されている画面は、青い線で囲まれている。

フィルター "Plot Selection Over Time" で、セルや点、スプレッドシードなど選択部分に対して時系列のグラフを描かせることができる。

値の積分

ボリュームやサーフェイスで値を積分するには、フィルター "Integrate Variables" を使う。フィルターをメニューから選び "Object Inspector" の "Properties" タブの "Apply" ボタンを押すと、スプレッドシートが表示され、そこから各種積分値が得られる。

スプレッドシートの "Attribute" を "Cell Data" にすると、積分領域の体積や面積を得ることができる。値の平均値を求めたい場合は、積分値をこの体積や面積で割る。"Integrate Variables" フィルターで作ったソースに "Calculator" フィルターを適用すると、セルのスカラー値として体積や面積を使用できるので、"Calculator" で平均値を計算させることもできる。

サーフェイスに "Surface Flow" フィルターを流速ベクトルに適用すると、サーフェイスの体積流量を得ることができる。値はスプレッドシートから得られる。密度がわかっているのであれば、得られた体積流量に密度をかけるか、密度に速度をかけたベクトルを "Calculator" フィルターで作りそれに "Surface Flow" フィルターを適用することで、質量流量を得ることができる。

数値をファイルに書き出す

数値をファイルに書き出すには、メニュー [File]-[Save Data] で CSV 形式を選ぶ。オプションにより時刻歴データをすべて書き出すこともできる。

画面を画像として保存する

画面を画像として保存するには、メニュー [File]-[Save Screenshot] を使う。

アニメーション

アニメーションを行うには、時系列のデータを用意する。たとえば、データを "case-1-1.case", "case-1-2.case", "case-1-3.case", ... などと用意して同じフォルダに入れておけば、ParaView はそれを "case-1-..case" なるひと続きの時系列データとみなす。それを読み込めばアニメーションデータの準備は完了である。

アニメーションの操作には、画面の上にある次のボタン群を使う。

アニメーションを保存するには、メニュー [File]-[Save Animation] を使う。

カメラ情報の保存と読み込み

カメラの位置を保存したり、読み込んだりするには、モデル画面左上にある小さなボタンの中の次のボタンを押す。

表示されるダイアログの "Configuration" の "save" でカメラの情報を保存、"load" で情報を読み込むことができる。

可視化の設定の保存と読み込み

可視化の設定を保存したり、読み込んだりするには、メニュー [File] の [Save State] と [Load State] を使う。

もっと学ぶために

ParaView をもっと使いこなすために、ここ にあるチュートリアルを学ぶとよい。