ソルバーコンソールで計算がうまくいっているか見分けられたらもう一人前です。見方のコツを教えます。
iRICはフリーの河川数値シミュレーションプラットフォームです。
実行の制御とコツ
実行に関して操作するツールは、Run、Stop、Reload Calculation Resultボタンです。ただしRiver2DではRunボタンしかきちんと動作しません!(他のソルバーではきっときちんと動くと思います。)
Stopボタンは実行停止です。普通に動いているときは、確かに止まります。でも止めたい時って、いつ終わるかわからない状態に陥っている時ですよね?そんなときはまず止まりません。運よく止まっても、もうデータファイルが壊れていてそのプロジェクトは使えなくなっていることもよくあります。
大切な計算なら、プロジェクトをフォルダごとコピーしてバックアップしてから計算した方がいいわよ!
Reload Calculation Resultボタンは、計算途中経過を保存して、計算中でもそこまでの経過をビュワーで見ることができるようにするボタンです。非常に残念ですが、River2Dではこのボタンも機能しません!諦めてください。
ですので、River2Dでは計算条件設定が大切になります。計算が進まなくなったら、いったいどこまで計算できたのかをソルバーコンソールで確認してからRiver2Dを強制終了させ、そのプロジェクトフォルダを破棄してバックアップしていたプロジェクトをコピーして立ち上げ、Calculation Timeで問題なく計算できた時間までで止まるように設定して再度計算し、結果を調べて改善点を考察していく、という流れになります。
ソルバーコンソールの見方
ソルバーコンソールは計算実行中はどんどん上に流れていきますが、最終的にTotal InflowとTotal Outflowの値が同じぐらいになり、Solution Changeが小さい値に安定すればうまく計算できたことになります。良い計算だと、7000程度の格子数でも10から20分、小さなモデルだとあっという間に収束に達します。
一方、悪い計算だと何時間経ってもCurrent Timeがほとんど増えません。まれに数日放置していたら収束することもありますが、SKラボは1,2時間たってもCurrent Timeが増えない=Time Differenceが小さいようならもう計算をあきらめて、地形や格子、境界条件の問題点を探します。この判断は、経験がものを言うところですので、よく動きを観察してください。
Time Differenceが10-6とか10-7になったら、まあ1時間くらいは様子を見てもいいけど、9割方ダメだと思うわ。良い計算だと、計算開始してすぐは不安定になりやすいのでTime Differenceが小さくなることもあるけど、そのうちべき乗のつかないTime Differenceに戻ってどんどん計算が進むようになるわね。
問題の見つけ方
上でも書いたように、確実に計算ができているCurrent Timeをメモしておき、バックアップからコピーしたプロジェクトで計算できる時間を終了時刻に設定して同じ計算を行います。今度は止まるはずです。
止まるはずの時刻を設定しても、止まらないことがまれにあるわ。たぶんその時点までに計算ステップを使いすぎて保存するためのデータが莫大になり、メモリかファイル容量を消費しすぎているんじゃないかな。Calculation TypeのPlot Incrementを大きな値に変更して保存するデータを少なくしてやれば計算できることがあるわよ。
計算が止まればポストプロセスのビュワーで流れの状態を見ることができますので、色分け表示で異常に流速や水深が大きい場所はないか、ベクトル表示で流向がクルクル変化している場所はないか調べます。その周辺の格子を小さくする/大きくするなどの対策をとり、問題が解決しないか少しずつ試していきます。特に流量(流速)が大きい時、地形の再現性は諦めて格子を大きくした方が安定しやすいです。
Solution Changeも小さく、計算はそこそこ安定しているように見えるのにInflowとOutflowがどうしても微妙に違う値になって気持ち悪いことがあるんだけど・・・
それはたぶん、上流端か下流端が射流に近い流況になっているからでしょう。射流条件下ではちょっとした流速、水深の誤差で計算される流量が大きく変わってしまいます。上流端・下流端は常流部に置け、というルールを思い出してください。
少し経験を積めばすぐ良い計算か悪い計算かわかるようになりますので、最初のうちはソルバーコンソールをじっくり眺める習慣をつけてください。 Have fun!
コメント