Fluent 18.1 で、定常RANS で予備計算 → LES で本番計算

確実に忘れるのでメモ。

  1. 定常 RANS の計算を普通にやる。ここでは(Workbench ではなく)スパコンでやったとする。ある程度収束した時点での .cas[.gz] と .dat[.gz] を保存しておく。
  2. Workbench に、新しい Fluent モジュールをドロップして起動する。Parallel で 1 CPU にしておく。当然 Double Precision.
  3. 定常RANS で保存しておいた収束したっぽい時点での case & data を import する。
  4. TUI で、/solve/initialize/init-instantaneous-vel を実行。これは LES に変える前に行う必要がある。Version 18.1 では LES に変えたらそもそもコマンドが消えるが、過去のバージョンでは違った模様。
  5. General:
    • Transient に変える
  6. Models:
    • Viscous を LES に変える。
  7. Boundary Conditions(必要なら):
    • Inlet の流入境界条件を変更する。
      1. General > Display... で inlet のメッシュを表示しておく(してないと次の数が表示されない)。
      2. 上のリボンの SEtting Up Domain の一番右、Surface 欄の Manage... から inlet の 2D Facets の数を調べる(これを N と呼んでおく)。
      3. inlet の境界条件の一番下、No Perturbation を Vortex Method に変更し、Number Of Vortices に N/4 の値を入れる。この数は ANSYS 公式の資料から。また、Spectral Synthesizer よりもこちらが推奨らしい。
        • TUIからのみアクセスできる隠しパラメータとして、流れの主流方向の fluctuation のオンオフが可能。
    • 外側境界条件を symmetry から変更する(LES では対称境界はダメらしい)。ここでは periodic にすることにする。
      1. まず、対象となる境界の boundary condition を Interface に変える。
      2. 左に Mesh Interfaces が表示されるので、ここで周期境界を作成する。注意事項として、offset はふつう translational だと思うが、automatic は信用できないことがある(特に2回目以降)ので、手入力を推奨。また、この値には符号があるので注意。たとえば「y座標の正が右」の場合、boundary 1 に left, boundary 2 に right を選んで、その距離分の「正の値」を入れる。もし、boundary 1 に right, boundary 2 に left を選んだ場合、距離分の「負の値」にしないといけない。
  8. Monitors:
    • History (report) ファイルの設定を変える。定常のときは per iteration で出力していたと思うが、transient なので per timestep で出力するのが普通だと思う。Report Definitions に自動的に delta-time, flow-time, iters-per-timestep が追加されているので、必要なものを追加し、per timestep での出力にする。なお、per iteration 用の設定は削除しなくても、 deactivate しておけばよい。
    • Residual から、convergence criteria を変更する(必要があれば)。Transient なので、continuity を 1e-4 程度に緩和して、かつ、relative or absolute にするのがいいだろうか。
  9. Calculation Activities:
    • Auto save 間隔を決める(計算回数と dt に応じて)。
  10. Run Calculation:
    • 時間刻み (dt)・計算回数・内部iteration 回数を決める。
    • Extrapolate Variables で予測による加速を ON に(しない方がいい場合というのがちょっとわからない)。原因不明の異常振動に悩んでいたのだが、こいつも要因であった可能性がでてきた。もしこれを使う場合は ON, OFF 両方やってみて発散したり値の異常振動がおきたりしないことを確実にチェックしたほうが良い。
    • Data File Quantities を設定する。Initialize は TUI からやっているので、既に選択できるようになっているはず。ここで選択しすぎると data ファイルのサイズがどんどん増大するので、本当に必要なものだけにする。また、流れ場が落ち着いてから追加計算するなら、そのときに増やしてもいいと思う。
  11. その他に必要な設定があればする。
  12. Run Calculation の一番上の Check Case... をする。問題がなければ良い。
  13. case & data を export する。このとき保存ファイル名は .cas.gz を付けておけば、同名の .dat.gz も保存される。
  14. スパコンで journal file を実行する。手順としては case を読み込み → 並列パーティション切り(まだ切ってなければ)→ data を読み込み → 計算。

本当はこれを全て journal でやるのが理想。そのうちやりたいが、設定項目が多すぎて手順を編み出すのにちょっと時間がかかりそう。

2017-12-28 UPDATE: 全部 journal でできるようにした。後でまた書く予定。

参考

  • "Quick Guide to Setting Up LES-type Simulations" でググって。

わからないこと

  • auto save される data ファイルが .gz 圧縮されない。と思うと、極稀にされる。どうなっているのかがよくわからない。まぁ、計算終わってから $ nohup gzip foo-*.dat & とかするから別にいいっちゃいいんだけど…