dynamicsoar's log

主に研究関係のメモ

ANSYS Fluent の autosave 間隔 n は「計算開始(再開)時点から n ステップごと」ではなく「現在ステップ/n が割り切れたら出力」の仕様っぽい

たとえば、非定常計算で、

;; Autosave Every (time step)
file/auto-save/data-frequency
10
solve/set/time-step
0.02
solve/dual-time-iterate
50
30

として 1 s まで計算したとする。こうすると、タイムステップが 10, 20, 30, 40, 50 のときに autosave で .dat ファイルが出力される。計算が終わるタイムステップはもちろん 50 だ。

次に、この計算に続けて(あるいはリスタートして)、

;; Autosave Every (time step)
file/auto-save/data-frequency
100
solve/set/time-step
0.002
solve/dual-time-iterate
2000
30

のように、dt を 1/10 にして、autosave 間隔も 10 倍の 100 に変えるとどうなるか。「計算開始(再開)時点のタイムステップから始まって 100 ステップごと」に autosave されるので、

  • 150
  • 250
  • 350
  • 450
  • 550
  • 650 ...

となると思っていた。違った。実際には

  • 100
  • 200
  • 300
  • 400
  • 500
  • 600 ...

が出力される*1。つまり、「計算開始(再開)時点のタイムステップから始まって 100 ステップごとに保存」されるというのは間違いで、「単に、各時点でのタイムステップを autosave frequency で割って、割り切れたら保存」としているようだ。

やっていないが、おそらく定常計算での iteration 間隔での保存でも全く同様なのだろう。

この仕様はいまの自分の計算的には不便で、残念だ。しかしそれとは別の話として、このソフトにはこういう「やってみるまで挙動がわからない(マニュアルにも書いていないか、書いていても絶望的に見つけづらい)仕様」が多すぎて、つらいところがある。

*1:と思われる。自分がやったのはこの数字ではなかったが、とにかく「現在のステップから」ではなく「割り切れる値」のときになった。