dynamicsoar's log

主に研究関係のメモ

メモ: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 という認識になって、壁面とかを選択できるようになる。