メッシャーの問題がひと段落したので、いよいよ計算という感じであるが、ここから泥臭い作業が続くのだろうなと覚悟しておく。
その前に、Dakotaで計算する場合、特定のCFD計算が発散したりしてエラーになる場合、それを飛ばして次の計算に移る仕組みを調べておく必要がありそう(リスタートとは別物・・・リスタート機能もちゃんと調べないとな)。
で、ちょっと調べてみた。
おそらくこのあたりだろうと思うが、以下のキーワードを設定すると良さそう。
Dakota Reference Manual: failure_capture
interface>analysis_drivers>failure_capture
- abort (the default)
- retry
- recover
- continuation
デフォルトではabortになっているので、各設計変数での計算が失敗した場合は、そこでdakotaも終了ということになる。retryはもう一度analysisを実行。recoverは、一緒に指定した”reals for specifying the dummy function values”をダミーで出力して次のanalysisへ進む。cotinuationは良く分からないが、それまでに成功した設計変数から、失敗した設計変数のanalysisに近い設計変数を生成し再トライするような感じである。
ということで、recoverでダミー目的関数値をしておくことで後からそれらを弾けば良さそうである。
続いてリスタートであるが、dakotaは黙っていても、dakota.rstというリスタートファイルを作成してくれる。ファイル名を指定したければ、
dakota -i dakota.in -write_restart my_restart_file
このファイルを読み込む場合は、
dakota -i dakota.in -read_restart my_restart_file
で良いとのこと。-write_restart
と -read_restartで同時にファイルを指定すると、-write_restartの指定にappendする。
さらに、
dakota -i dakota.in -r dakota.rst -s 50 -w dakota_new.rst
とすると、dakota.rstの最初の50個のevaluationを読み込み、計算を続行する。