メモ:Fluent case & data files --> EnSight format --> read in ParaView
前置き
ハマったところを中心にメモ。
状況としては、既に結果ファイルの cas & dat (時系列データ)があるが ParaView で開きたい、そしてどうやら EnSight 形式じゃないとまともに読めないっぽい、なんとかしたい、という感じ。
環境
- Windows 10, 64 bit
- Fluent 18.1
- ParaView 5.4.0-RC2 64bit
手順
Fluent データの下準備
準備が必要。まず、gzip 圧縮されたデータファイルはなぜか変換してくれないので、全部解凍しておく必要がある。面倒だが仕方がない。次に、ファイル名について、詳しくはマニュアル(https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/flu_ug/flu_ug_file_export_esight.html でも多分大丈夫)を読めばいいのだが、簡単に書いておく。
「メッシュの変形や移動がなく、case ファイルが一つだけの場合」を考える。このとき、case ファイルは[一つ目の data ファイルと同じ名前].cas」にしておく。具体例をあげると、
- test-001.cas
- test-001.dat
- test-002.dat
- test-003.dat
- test-004.dat
という感じにリネームしておくとTUI上での作業が楽。
Fluent 上
まず適当な workbench(新規でもいい)を開いて、新たに fluent モジュールを適当なところにおいて、Solution の方をダブルクリックして起動。というか直接 fluent 起動してもいいのかな。おそらくここで、たぶん case ファイルを読み込んだほうがいいが、読み込まなくてもなんとかなった。まぁどうせコマンド入力してる途中で読むんだけど。
TUIウィンドウをクリックしてコマンド入力モードに移る。
ここでまずつまずいたのだが、実はこいつ、pwd で現在のディレクトリ確認できる。すると、なんか変なところにいるはず(いつもの作業フォルダの dp0/FLU みたいなとこね。WBで確認できる場所)。じゃあ pwd ができるんなら cd もできるよね、とやるとできなくて死にたくなる。 Change current working directory with a text command? -- CFD Online Discussion Forums によると正しいコマンドは sync-chdir [path] だという。知るかよ…。とにかくそれで所望のファイルがあるディレクトリへ移動する。
あとは https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/flu_ug/flu_ug_file_export_esight.html などにあるとおりに、コマンドを入力していけばよい。
具体的には、まず
file/transient-export/ensight-gold-from-existing-files
を入力する。すると、色々ときかれるので答えていく。
たとえば以下のようにする:
- EnSight Case Gold file name test_ensight
- Case / Data file selection by base name? [yes]
- Case / Data file base name test
- Specify Skip Value [0](黙ってEnter)
- Cell-Centered? [no](黙ってEnter)
- Write separate file for each time step for each variable? [no](黙ってEnter)
- Write in binary format? [yes](黙ってEnter)
- Specify Data File Frequency [1](黙ってEnter)
- Separate case file for each time step? [yes] no(今は case ファイルが1つしか無いので)
- Read the case file? [yes](黙ってEnter)
- Case file name ["test-0-001.cas"] test-001.cas(違うファイル名をサジェストされたので変更)
ここで一度ケースファイルが読まれて、グリッドが読まれる。
- cell zone id/name(1) [*](黙ってEnter...よくわからんけど行けた)
- cell zone id/name(2) [()] (黙ってEnter...よくわからんけど行けた)
Interior Zone Surfaces(1) [()] (黙ってEnter...よくわからんけど行けた)
Select the variables to be exported
- EnSight Case Gold scalar(1) else q to continue>
これは「どの変数を export するか」ということ。何も書かずに Enter したらリストが出るのでそこから選ぶ。pressure とか x-velocity, y-velocity, z-velocity とかすればいいんじゃないかな。選択が終わったら q と書いて Enter すれば変換が始まる。
UPDATE 2018-01-05
TUI を使う処理は journal file で自動化できるはず。あとでやってみるかも。
ParaView
出てきたファイルのうち、.encas というのが ParaView で読むべきケースファイル、なのだが、このままでは ParaView の reader が認識しないので、拡張子を .cas に変える。実は、いちおう、選択肢の一番下にある All files を表示させ、.encas を開いてから、reader として EnSight を選べば同じことはできるが、単に時間がかかるので、もう変えちゃったほうが早いと思う。
ParaView で開いたら、そのままでは流体領域が全部見えていて(というか外側境界だけ見えているはず)全然使えないので、 Recovering Fluent surfaces in ParaView -- CFD Online Discussion Forums にあるとおり、Extract Block フィルタをかましてやると、Multi-block Dataset という認識になって、壁面とかを選択できるようになる。