ゼロからはじめるParaView — [05]やりたいことを整理しての最短距離を探ってみる
さて、混迷の ParaVIEW ですが、それはこのアプリケーションが壮大に成長してしまったからかも知れません。手っ取り早く使おうとする私のような低俗な人間には、ルート整理が必要です。つまり、ParaVIEW を使うシチュエーションが何で、それをどうしたいか、です。
★ 数値計算結果を簡単に表示させたい
★ 欲を言えば、それ以外のデーターをそれなりに図示させたい
これが目的です。
ParaVIEW を使用するのであれば、データーをうまく読み込んでやれば、二つの作業の後半は共通作業です。ここでは、とりあえず前項について整理しておきます。
で、流れの計算を行って何がしたいのか。
- 流れ場を知りたい。
- 物理量のコンターが書きたい
- 速度から流線が描きたい
- ベクトルで速度場を描きたい
- 当然それらを計算領域に重ねて描きたい
まぁ、こんなところでしょうか。OpenFOAM なら、圧力、速度、にとどまらず、乱流に関するパラメーターや渦度などもデーターとして吐き出されますから、何を表示するかは、表示する物理量を選択するだけで切り替えできそうです。となれば、上記の各項目の異なった表示方法を調べておけば、オッケーです。
◆ 計算領域の表示
これは当たり前のようで、実は少し複雑です。何もしなければ、ParaVIEWは、モデル計算結果は領域なので、体積として扱っています。だから、せっかく頑張って他の物理量を表示させても、体積に埋もれて何も見えません。
単純に計算領域を表示する、と言っても、ヒトがするようにその外形を取捨選択する作業が必要です。これには素直に外形を表示する方法と、ひねくれて?、背景にある断面の形を表示する考えもあります。
計算領域を抜き出す
翼初心者向けに紹介されているのが、フィルターの Extract Surface です。表面の抽出。つまり、体積である計算領域の表面を抜き出してくれる訳です。本来はもっと高尚な別の目的があるようですが、確かに使えそうな響きです。簡単に言ってしまえば、シェル化してくれるわけですね。シェルになれば、適当な面で切り分ければ、中空の殻が作れます。
この図は、Extract Surface で体積様の計算領域をシェル化した後、後述の clip で背面近くで薄く切断しているところ、です。白い矢印軸に垂直な赤い平面が、クリップによる切断面です。この切断面から白矢印軸の方向に見た風景が表示されます。え!?向こう正面の壁面もいらないから縁だけでいい、って?うーん、なるほど、ごもっとも。その場合はクリップの応用です。クリップした後のシェルを、今度は反対方向(白矢印を逆)から枠の奥行きが薄くなるようにクリップしてはどうでしょう。
白い矢印が先のクリップと逆を向いているところが味噌です、肝です。なお、矢印向きの反転方法はわかっていませんので、地道に作業しました。
ちなみに、二度目のクリップは、最初のクリップに対してフィルターをかけないといけません。モデルツリー参照方。また、最終形でこの切り抜きになりますので、モデルに関する他のビューは不可視にしないといけません。念のため。意図的に活用できそうですね。
でも、この方法だと、斜投影っぽい図では、計算領域をワイヤーフレームでは表示できないんですよね。本当は、体積様のまま透明化してやる方がよいのかもしれません。っていうか、ここは clip より slice の方が適してるかも。(^◇^;)
断面を背景にする
賢明な学生さんなら、もうすでに前項を読んだだけで先を見通してしまったでしょう。最初に表示される体積領域を、clip で削り取ります。この例では、計算領域内のある線分を通る流線が表示されています。もし、体積領域をそのまま表示すれば、流線は領域に飲み込まれて見えなくなってしまします。したがって、領域を飲み込む部分を消し去ってやればよいわけです。流線が飲み込まれない程度に clip で体積要素を消してやりましょう。
計算領域のやや奥側で clip した面にコンターを表示した例。背景にしたければ、プロパティウインドウの物理量の選択の欄で solid color を選択すれば、単色になります。単色を背景色にすれば全く消えてしまって見えなくなるので、領域が確認できるような違う色で表示する方がよいでしょう。同時に表示した stream line は、その面から少し右側に浮いているのがわかります。ついでに、流涎は三次元精が出ているので、流速の遅い下流側(奥側)では、面外に曲線が伸びています。
透明化した場合
透明化は、プロパティの Display(GeometoryRepresentation) の styling にある Opacity の値を調整すれば透明化できます。
直方体フレームで表示
表示の選択肢に outline という直方体を表示する機能もあります。surface から outline に変更できます。ただし、形状表示とは少し違って、ザクっとした長方形しか表示しないみたいです、多分。ついでに wireframe もありますが、見た目は surface with edges とある意味大差ないです。もちろん、sueface がないですが。
素直にスライスする
結局、slice を利用するという手があるようです。slice は、clip とはちがって、面で立体を切り分けるんではなく、その面でサーフェイスのみを切り出します。だから、上述のような clip 二枚重ねのようなややこしい作業は不要です。スライスした面を透過させれば、スライス面の一を視覚化的作業には面の一を気にする必要はありません。カメラ位置のプロパティのデフォウルトの遠近表示をパラレルにチェックを入れれば、二次元流れには最適です。
◆ 物理値の分布(コンター)を描く
面を選択する
コンター(等高線表示)は、計算領域の値をカラーバーで表示します。厚さを持って擬2次元の計算をさせた場合、理想的にはどの断面でも同じ流れになっているはずです。三次元流れを計算させた場合には、当然、断面によって流れが異なります。前者では、計算領域の外壁面が表示されていても問題は小さいですが、後者では、意図した断面を抽出してその名ガレ場を可視化しないといけません。そこで、 clip です。clipアイコンをクリックすると、白矢印軸とそれに垂直な赤い面が表示されます。赤い面を選択すると緑系の色に変わりますが、この状態でマウス操作すれば、白矢印軸に沿って平行移動させることができます。面の向きは、白矢印軸を三次元的にマウスで操作しないといけません。表示の方向をアイコンの座標系選択で、あるいは、プロパティウインドウにある、x, y, z 各軸垂直にセットするボタンを利用するとよいかもしれません。clip 向きを簡単に 180度反転させる方法は、前述のように未解明です。
左下の循環領域は、流線が集まって高速回転してそうです。でも、速度の大きさコンターでは、右半分の領域と同じくらい速度は小さいことがわかります。これは、循環域を何度も同じ流線が回っているからです。
ちまみに流線(トレース線)が正面からみると重なって見えているのは、二次元流れになっていなかったからです。機械工学的には、コンター面はまだしも、流線を投影図で表記するなんて馬鹿げています、ゲスです。あ、言い過ぎた(°°;) 三次元構造をきちんと図示するならば、機械系エンジニアであれば、機械設計図面と同様に、複数断面を提示すべきです。確立されている製図法を尊重すべきです。三次元ステレオホログラムならまだしも、所詮二次元の投影図で三次元流れの流線を示すのは、概略を示すのにはよいですが、正確な形状は伝わらないと思っておく方がよいと思います。
◆ ベクトル値で流線を描く
あぁ、なんかここまで来たら、いいよね。推して知るべし、ですよね。そうです。流線アイコンを押せばよいのです。問題は、なぜか思うような流線がデフォウルトでは描かれないことが多いことと、あの白矢印軸が登場することです。このモードでの白矢印はどういう働きをしているかさえがわかれば、思い通りに近い流線を描けるでしょう、領域的に。
始点を線分で指定する
お察しの通り、流線は、速度馬をトレースして描かれています。三次元空間内の流線を全部書くととってもややこしいことになってしまいます。そこで、高度な使い方はわかりませんが、とりあえずは、三次元空間中にある白矢印をよぎる流体について、指定さた resolution (Number of Points ?)にちなんだ本数で流線を描きます。
デフォウルトでは、白矢印は、計算領域を三次元的な対角線で結んでいるようです。なので、みたい部分に流体粒子が通らなければ、そこには流線がなくなってしまいます。また、白矢印から離れると、長さ制限 Maximum Streamline Length で途切れてしまいますが、長すぎると、対流域や渦では、何周も回ってしまって線が集中するので、まるで速度が大きいかのように見えてしまいます。こういうときは速度の大きさコンターと合わせて表示すればよいかもしれません。 また、流線の本数 Number of Points はデフォウルトでは二桁くらい多すぎる?ので、50 位から始めてみる方が見やすいと思います。
これは、左右の中心あたりで縦に一本、白矢印を引いて書かせた流線です。上部の欠けのある細い流路で、右側で速度指定吸い出し、左側で速度指定吹き込みを境界条件にしましたが、吹き込みの流路にはあまり流線がありませんし、左の循環領域らしき部分も流線がありません。それは、上述の理由によります。
結局これらの問題は、おそらく一本の矢印で解決するのはやや難しそうということです。したがって、流線の描画を、想定される領域ごとに複数に分けて描画させて、それらを重ねて表示するのは一つの解決方法かもしれません。一発で書き上げるのに手間がかかりそうなら、一度検討してみてください。
緯度経度球で指定する
3次元流れの流線を白矢印線で指定するのも良いですが、もう少しザクっと空間的に通過点を指定する方法があります。プロパティの seeds(タネ)の seed type を High Resolution line source から point source へ切り替えると、画面上に球様にアイコンが現れます。この球アイコンあたりを追加する流線が得られます。適当に、画面をグルグル立体的に回して確認しながら、配置してみてください。球の大きさが変えられるかは、まだ調べてません。
追伸 ctrl + 右クリックしてからドラッグでできます。回転はどうでしょう?^o^
三次元流れの流線(もどき)を表示した図。地球儀は一つですが、実際は四つ使っています。複数の流線を追加しても、カラーコンター等は共通一元設定になります。
◆ベクトル値でベクトル分布を描く
さて、ベクトル図。2次元流れなら、要素は二つなので平面で表現できます。三次元流れならば、流線と同様、複雑になることはわかります。速度ベクトルをつなげた StreamTracer が速度の大きさの情報を持たない分、表現が難しいですが、大きさの情報のある速度ベクトルは、もう一つ面を設定すれば表現のやりようがあります。
二次元流れの場合
これは上述のように少しシンプルです。流線では、白矢印軸 を使用しましたが、ベクトル表示では glyph を利用します。
三次元流れの場合
3次元流れの場合、3D glyph が使用できます。
◆いろいろやりきった後で、あるいはやり残したときに
ParaVIEW の作業を保存する場合は、File メニューの Save State… を利用します。開けるときも、このメニューの Load State… を利用します。ここで ParaVIEW 専用の XML 形式 PVSM ファイルがやりとりされます。
でも、例えば エクスプローラーなどから関連付けでダブルクリックしてこの PVSMファイルを開かない方が無難のようです。ダブルクリックはデーターを開く機能に紐付いているので、PVSM に対応していません。老人に厳しいプルダウンメニューをいくら探しても PVSM形式はリストにありません。うっかり適当に ParaVIEW の何かとして開くと、データーも大きいようなので、固まって苦労します。
◆ ここまでの説明でおかしいところ
さて、ここまでの説明でおかしいところをまとめます。
まず、計算領域。これを体積用の領域、といってますが、 ParaVIEW でデフォウルトで描いた場合、大抵は surface になっています。そう、volume にはなっていないんです。しかも、volume に変更しようとすると、なんか脅されます。
これは surface で表示した領域に zoon in したところです。内部に入り込んだら、中空になっていることがわかります。でも、これをたぶん clip すると、切断面には surface が生成されるようです。だからやっぱり、exstract surface は必要なのかも。
最後に、ParaVIEW が強力なツールであることはいろんなところで紹介されていますが、私だけかもしれませんが、使いにくいのも確かではないでしょうか。その理由として、プロパティウインドウが使いにくいように思います。aply をする前と後でもプロパティの内容が変わっているような気もします。設定不能な項目を表示することで冗長になるのでそれを防ぐためどうかはわかりません。しかし、項目が消えて見失うのは、やはりちょっと混乱します。グレー表示であれば安心です。プロパティが縦に長くスクロールすることと相まって、わかりにくいと思います。
願わくば、プロパティの各カテゴリーをもっとタブにして操作性を向上してくれたらよいのに、と思います。しかしながら、aply するまでは対象を認識していないし、設定内容も違うのに、文句言うだけで、開発に貢献する能がないので、WEBの世界の片隅で、ちょっとぼやくくらいにしておきます。
[作成中]