\(\require{physics}\)
FantomRefinedマニュアル
利用方法や注意点をここにまとめます.
数値計算で研究を行う際のコツ(FantomRefinedに限らず)
- 動作するサンプルがあれば,そのサンプルを「1つずつ」変更して「結果を確認しながら」自分の目的に近づける.
- 単純な境界条件と低解像度の地形で結果を確認し,徐々に境界条件を増やしたり,解像度を上げたりする.初期の試行錯誤が迅速にできる.
- 数値計算では,何かが壊れてしまうことはないので,色々とチャレンジする(バックアップは取る).
- 計算設定ファイルのファイル名はどのような計算内容かがわかるような名前にする.
- 計算結果が「なんかおかしい」という直感は合っていることが多い.
- 計算結果の問題点を見つける簡単な方法は,保存性,対称性をチェックすること.
- 計算が全て終わるまで待たないで,途中の計算結果で合理的に計算が進んでいるか確認する.つまり,ゆっくり休むのは計算が軌道に乗ってからが良い.
- 計算結果を簡単&迅速&視覚的に確認できる環境を整える.Excelで数値を確認しグラフ化するより,Pythonで一気にグラフで確認できるようにした方が良い.
- 手作業は時間もかかるし間違いが起こる可能性が高いので,可能な限りプログラムで自動化した方が良い.後輩も手作業の手順を受け継ぐよりもプログラムを受け継ぐ方が嬉しい.
- 計算が不安定だということで無闇に時間ステップdtを小さくしない.計算が不安定な時は,地形に無理があったり,境界条件が間違っていることも多い.
- 無闇に高解像度で計算しない.自分の着目している現象の空間スケールに対して十分なグリッド解像度があれば良い.
- 失敗したと思った計算結果も有用な情報を含んでいる可能性があるので,すぐに消さない.
Fantom Refinedに関する注意事項(適宜追加)
- 気象,河川流入などの境界条件の時系列テキストデータは,区切りは必ずタブ,エンコードはUTF-8,改行コードはLFとする.1行目に項目名(time, surface, temperature, salinity,...)を記述することを忘れずに.
- 時系列テキストデータの一行目は項目名で,列数は物理量の数+1(time)でなければならない.各行の右側(行末)に余計なタブ等が含まれると読み込みエラーとなる.
- 水面変動が計算領域の上端を越えないように,余裕を持って領域の鉛直方向範囲(dzの総和)を設定する.
- 水位の開境界条件を与える場合には,境界付近において底面がフラットであることが好ましい.
- (静水圧3次元計算の場合)初期に水平方向に密度分布を与える際には,密度流の発生が計算を破綻させる可能性があるので,緩やかに密度を変化させる.
-
PlaybackParticleTrackingの時は,Fantom内部で変数(u,v,wその他)を作成するので,lua文で自ら追加(set_var)しないこと.
-
水温や塩分の初期鉛直分布として不安定成層を与えないこと.計算途中で不安定成層になることはあるが,その場合は渦粘性とバランスしているため計算は安定して計算が進むが,乱流が発達していない初期状態で不安定成層を与えると発散することがある.
-
外洋などの開境界に用いるPartiallyClampedRadiationBoundaryは陽的に離散化されているので,長波の波速がCFL<1,つまり,$\frac{\sqrt{gh}\Delta t}{\Delta x}<1$を満足する必要がある.つまり水深$h$が大きい部分では長波の波速が
大きくなるので注意が必要である.
Utilities
可視化
簡単な計算ツール
モデル拡張