ユーザーガイド 1.5系 - 6.1 paraFoam

出典: OFWikiJa

[next] [prev] [up]

[編集] 6.1 paraFoam

OpenFOAMで提供されているメインのポスト・プロセス用のツールは,オープンソースの可視化アプリケーションであるParaViewで走る読み込みのモジュールです。 モジュールはOpenFOAMにより提供されているParaViewのバージョン3.3を用いている2つのライブラリであるPV3FoamReaderとvtkPV3Foamにコンパイルされています。 最新のバイナリでリリースされているソフトウエアについても適切に走るはずですが,このバージョンのParaViewをお使いになることを推奨します。 ParaViewに関する詳細な内容およびドキュメントについては http://www.paraview.orghttp://www.kitware.com/products/paraviewguide.html のサイトから入手することができます。

ParaViewはそのデータ処理とレンダリングのエンジンに可視化ツールキット(VTK)を使っているため、VTKフォーマットであれば,どのようなデータでも読み込むことができます。 OpenFOAMにはfoamToVTKユーティリティがあり,ネイティブな書式のデータをVTKの書式に変換することができ,このことは,VTKベースの画像ツールであれば,OpenFOAMのcaseのポスト・プロセスとして使えることを意味しています。 このことは,OpenFOAMでparaViewを使うことの代替法を提供しています。 ユーザーには高度な使い方,並列処理における可視化を経験してほしいことから,フリーのVisltを推奨します。これは, http://llnl.gov/visit/ から入手できます。

要約すると,OpenFoamのポスト・プロセス用のツールとしては,paraViewの読み込みモジュールを推奨します。 代わりの方法としては,OpenFOAMのデータをparaViewに読み込ませるためにVTKフォーマットに変換する方法と,VTKベースのグラフィックツールを用いる方法があります。

[編集] 6.1.1 paraFoamの概要

paraFoamは,OpenFoamで提供されている読み込みモジュールを用いて,ParaViewを立ち上げる厳密なスクリプトです。 他のOpenFoamのユーティリティ同様に,ルートディレクトリのパスまたは-caseオプションと,引数としてのcase名を入力して実行されます:

paraFoam -case <caseDir>

ParaViewが立ち上がり,オープンすると図6.1 のようになります。 caseは左側のパネルでコントロールされますが,それには次のような項目があります:

  • Pipeline Browserは,paraViewの中でオープンしているモジュールをリストアップしており,選択されたモジュールは黄色にハイライトされ,このモジュールに関するグラフィックスは,脇のeyeボタンをクリックすることにより,有効/無効の切り替えができます。
  • Properties panelには,時間や領域,およびフィールドなどのcaseに関する入力条件の選択項目があります。
  • Display panelは,カラー等の選択されたモジュールの可視化の描画をコントロールします。
  • Information panelはメッシュのジオメトリとサイズのようなcaseの統計値を表示します。

図6.1 paraFoamの画面

ParaViewはツリー構成に基づいた構造で操作するようになっており,その中で,トップレベルのcaseのジュールからサブモジュールのcaseを作成するフィルターをかけることができます。 例えば,圧力のコンターのプロットは,すべての圧力データを持つcaseモジュールのサブモジュールとすることができます。 ParaViewの長所は,ユーザーが数多くのサブモジュールを作ることができることと,画像やアニメーションのどちらでも作ることができるという点にあります。 例えば,ソリッドのジオメトリー,メッシュおよび速度ベクトル,圧力のコンターのプロットなどが追加できますし,これらアイテムについては必要に応じてオン/オフすることができます。

システムの一般的な操作は選択をし,Properties panelの緑の Applyボタンをクリックすることを基本としています。 追加項目ボタンとしては、必要に応じてGUIのリセットを行うResetボタン、アクティブになっているモジュールを削除するDeleteボタンがあります。

[編集] 6.1.2 プロパティパネル

caseモジュールのProperties Panelにはタイムステップや領域,およびフィールドの設定の機能があります。 コントロール方法については,図6.2に説明を記載しています。 現在の読み込みモジュールにおいて,ディレクトリ内のデータをParaViewに書き込むことは、特に価値はありません。 6.1.4節に書いてあるように、現在の読み込みモジュールにおいて、Current Time ControlsあるいはVCR Controlsツールバー内のボタンで、表示のための時間データを選択することができます。 paraFoamの操作においては,何らかの変更を行った時にはAcceptをクリックする必要があります。 このAcceptボタンは,ユーザーが変更するつもりがなかった場合を考慮して,警告を与えるために緑色にハイライトされます。 この操作方法は,承諾する前に多くの選択ができるという長所を持っており,特に,大きなcaseでは,データ処理が最小限で行えるという便利さがあります。 しばしばファイルのcaseデータが変更され、(たとえばフィールドデータが新しい時間ディレクトリに書き込まれたりしたために)ParaViewを書き換える必要がある場合があります。変更を書き込む際には、Propertiesパネル一番上のUpdate GUIボタンをチェックすることによって変更します。

図6.2 caseモジュールのプロパティパネル

[編集] 6.1.3 表示パネル

Displayパネルには,与えられたcaseモジュールのデータの可視化に関する機能があります。

図6.3 Displayパネル

以下が特に重要な点です:

  • データのレンジは,フィールドのmax/minの限界に対して自動的に更新はされませんので,特に,初期のcaseモジュールをロードした時には,適切なインターバルをRescale to Data Rangeで選択するように注意する必要があります。
  • Edit Color Mapボタンでは、2つのパネルによるウィンドウが開きます。

1:Color Scale パネルではスケールの色を選択することができます。標準の青~赤のCFDスケールを選択するには、Choose presetをクリックし、 Blue to Red Rainbox HSVを選択します。
2:Color Legend パネルでは カラーバーの凡例の色を切り替えたり、フォントのような凡例のレイアウトを決定します。

  • 基本となるメッシュはRepresentationメニューのWriteframeを選択することにより表示されます。
  • Writeframeが選択されている場合のメッシュのようなジオメトリはColor byメニューからSolid Colorを選択し,Set Solid Colorウィンドウで指定することにより可視化することができます。
  • イメージはOpacityの値(1=solid,0=invisible)を修正することにより半透明にすることができます。

[編集] 6.1.4 ボタンツールバー

ParaViewの各機能はメインウインドウ上部のメニューバーのプルダウンメニューだけでなく、その下にあるボタンツールバーから選択することもできます。 表示するツールバーはViewメニューのToolbarsから選択することができます。各ツールバーの初期設定の配置は図6.4のようになっており、それぞれどのプルダウンメニューの項目に対応するかを示しています。多くのボタンの機能はアイコンから明快ですし、Helpメニューのtooltipsにチェックがされていればポインタを上に置いたときに簡潔な注を表示させることができます。

図6.4:ParaViewのツールバー

[編集] 6.1.5 ビューの操作

本セクションでは,paraFoamにおけるオブジェクトのビューの設定と取り扱いに関する操作について説明します。

[編集] 6.1.5.1 View settings

View SettingsEdit menuから選択すると、General, Lights, Annotationの3項目からなるRender View Optionsウインドウが表示されます。Generalには開始時に設定すべき以下の項目があります。

  • 背景色、印刷物には白が望ましい
  • CFD、特に2次元のケースではparallel projection(平行投影)が通常用いられる

LightsにはLight Kitパネルに光源の詳細設定があります。Headlightパネルでは直接光をコントロールします。Headlightボタンを白色光の強度1にすれば鮮明な色の画像を得られるでしょう。

Annotationでは、ビューウィンドウにおける軸や原点などの注釈の表示の有無を設定します。Orientation Axesでx,y,z軸の色など、軸の表示設定をします。

[編集] 6.1.5.2 General settings

SettingsEditメニューから選択するとGeneralRender Viewの項目からなるOptionsウインドウが表示されます。

GeneralパネルではParaViewの挙動の初期値を設定します。特に、Auto AcceptをチェックするとPropertiesウインドウで行った変更がApplyボタンをクリックすることなく自動で表示に反映されるようになります。大きな解析ケースではこのオプションは使わない方がよいでしょう。というのもいくつもの変更を行う際にそのつど再描画されるのは煩わしく、一度で反映させた方がよいと思われるからです。

Render ViewパネルにはGeneral, Camera, Serverの3つの項目があります。Generalパネルではlevel of detail (LOD)で回転や平行移動、サイズ変更といった操作時のレンダリングの精度を設定できます。レベルを下げることで多数のセルからなるケースにおいても視点操作時の再描画速度を早くすることができます。

Cameraパネルでは3Dまたは2Dにおける視点の移動を設定します。回転、平行移動、ズームといった操作をマウスとshiftキー、controlキーを組み合わせて行うことができますが、割当ては任意に設定することができます。

[編集] 6.1.6 コンターのプロット

コンターのプロットは,上部のメニューバーのFilterメニューからContourを選択することにより作成することができます。 フィルターはあたえられたモジュール上で役割を果たすことから,モジュール自体が3Dのcaseの場合には,コンターはconstant valueを表す2D表示(同一面:アイソサーフェス)に設定されます。 コンターに関するPropertiesにはユーザーが編集できるIsosurfacesのリストがあり,New Rangeウィンドウにより使いやすくなっています。スカラーフィールドはプルダウンメニューにより選択することができます。

[編集] 6.1.6.1 cutting planeの使い方

希に,同一面でのコンターの作成でなく,断面のコンターを作成したい場合があります。 このためには,最初にSliceフィルターを用いて,コンターをプロットしたい切断面を作成する必要があります。 このSliceフィルターにより,ユーザーはそれぞれcenternormal/radiusを使って,Slice Typeメニューの中にPlane,BoxまたはSphereのカッティングを指定することができます。 マウスを使っても同じように切断面の操作を行うことができます。

その後,コンターのラインを作成するために,切断された面でContourフィルターを実行することができます。

[編集] 6.1.7 ベクトルのプロット

ベクトルのプロットはGlyphフィルターを用いて作成します。 フィルターはVectorsで選択されたフィールドを読み込み,Arrowによりクリアなベクトル画像を提供するためのGlyph Typesのレンジを用意します。それぞれのグリフは,ユーザーが最も効果的にパネルをコントロールするために選択されています。 Promertiesパネルのリマインダーには、グリフのための主要なScale Modeメニューがあります。その中でも最もよく使うオプションは、ベクトルの大きさに比例したグリフの長さのVector、各々のグリフの長さが同じにするOff、また、Set Scale Factorはグリフの基本的な長さをコントロールします。

[編集] 6.1.7.1 セルの中心でのプロット

ベクトルは,デフォルトによりセルの頂点上に作成されますが,セルの中心にプロットデータを作成したい場合もあります。 この場合には,最初にcaseモジュールに対してCell Centersを適用し,その後セルの中心の計算結果のためにGlyphフィルターを適用します。

[編集] 6.1.8 流線

流線は,Stream Tracerフィルターを用いて作成されたトレーサーラインを用いて作成されます。 トレーサーのSeed画面で,Line SourceあるいはPoint Cloud全般のトレーサポイントの配分を指定します。ユーザーは線のようなトレーサーソースを見ることができますが、白で表示させている場合は背景を変更しなければなりません。 トレーサーの軌跡の間隔とトレーサーのステップの長さはStream Tracerパネルの下にあるテキストボックスで指定します。 望み通りのトレーサーのラインを作成するプロセスは大部分が試行錯誤であり,ステップの長さを減少させることによりと同じように円滑にはっきりと表示することができますが,反面計算時間が長くなります。 トレーサーのラインが作成できた後は,よりり高品質な画像を作り出すためにTubesフィルターをTracerモジュールに適用することができます。 このtubesは各々のトレーサーのラインをたどっており,厳密な円筒型にはなっていませんが,固定された側面と半径の数値を持っています。 上述のように側面の数値が10に設定された時,tubesは円筒型として表示されますが,くどいようですが,これには計算コストがかかります。

[編集] 6.1.9 画像の出力

画像を出力する最も簡単な方法はFileメニューからSave Screeshotを選択することです。選択すると、保存する画像の解像度を指定するウインドウが現れます。自動的に解像度が設定されるよう、アスペクト比を固定するボタンがあります。ピクセル解像度を設定すると画像が保存されます。より高画質で保存するには、解像度を幅1000ピクセル以上にするとよいでしょう。A4サイズの書面やPDFの図として、シャープな仕上がりになります。

[編集] 6.1.10 アニメーション出力

アニメーションを作成するには、まずFileメニューからSave Animationを選択します。解像度などいくつかの項目を設定するダイアログウインドウが表示されるので、必要な解像度を指定します。それ以外では、タイムステップごとのフレーム数が重要です。これは直感的には1と設定するでしょうが、アニメーションのフレーム数を多くするためにより大きな値にしてもかまいません。この方法は特に、mpegなど、動画プレイヤーの再生速度に制限がある場合に、アニメーションの速度を遅くしたいときに有効です。

Save Animationボタンを押すと、ファイル名やファイル形式を設定する別のウインドウが現れます。OKを押すと、"<ファイル名>_<画像番号>.<拡張子>"という名前で一群の画像ファイルが保存されます。例えばanimationというケースの3番目の画像は、"animation_0002.jpg"となります。(画像番号は0000から始まります)

一連の画像が保存されると、適当なソフトを使って動画に変換することができます。ImageMagickパッケージに含まれる変換ユーティリティは、以下のようにコマンドラインから実行できます。

convert animation*jpg movie.mpg

mpeg動画を作成する際に初期設定のquality-90%から動画のクオリティを上げるといいでしょう。これによって粒状ノイズを削減することができます。

[next] [prev] [up]