SuWAT


高潮波浪結合モデル(SuWAT)の構成,使用に際する注意点など
スーヨルさんの解説書(英語)参照


SuWAT概要

 SuWATとは波浪モデルであるSWANに高潮モデルを加えたFrotran90のプログラムのこと.元間瀬研ポスドク・現鳥取大助教の金洙列先生(スーヨルさん)が,波浪モデルSWANに高潮モデルをくっつけて作った.どうしても分からないことは最終的にスーヨルさんにメールすることが多い.

波浪と高潮はStormSurgeなどの形で相互に影響するので単独で計算してはいけない.SuWATでは計算上波浪モデルと高潮モデルは分かれているが,一定時間ごとに値を交換して,影響を考慮している.また,粗い格子で広範囲の計算を行い,その結果を境界条件としてより細かい格子で小さい範囲の計算を行うという「ネスティング」をしている.このときの領域をDomainという.

準備

 実際に使うには,プログラム実行ファイルと入力用フォルダとデータ,出力用フォルダを用意しなくてはならない.プログラムについては,使用するDomain数に応じて若干違うようだが,既に前の人が作ったものがあるので自分と同じDomain数のケースの実行ファイル(***.exe)(※複数あるが,releaseフォルダの中に作られた実行ファイルが良い)を計算フォルダ内にコピペすればそのまま使える.
 実行ファイルと同じフォルダ内で,マニュアル通りに決まった場所に初期条件や境界条件のデータ,その他プログラムに必要なファイルを入れていく.データや計算条件を自分の目的に合わせて書き換えたら準備完了.

SuWATフォルダ構成

例)フォルダ「work1」内の構成
入力用に用意すべきファイル・フォルダは
出力されたファイル,出力用のフォルダは
※ただし,出力用のフォルダはプログラム実行前に決まった名前の空フォルダを作っておく必要がある.

Dat_st データfor高潮
+ ...
 ****.dep
 ****.map
 ****.tf
 ****.srt
 ****.pnt
 ****.reg
 ****.tf
Dat_swan データforSWAN
+ ...
 ****.dep
 ****.map
 ****.tf
 ****.srt
 ****.pnt
 ****.reg
 ****.tf
Filename.con
****.con
****.nest
****.swn
****.con


実行

guiMPIRun上でフォルダ内の実行ファイル***.exeを実行.
(1)Applicationの枠内で***.exeを指定.
(2)Number of processes でドメイン数を指定.
(3)Runをクリック


runしたけど・・・

  • 'CFLX'とか表示されてすぐ止まった
数値計算のCFL条件(クーラン・フリードリヒ・ルーイの条件)が満たされていないので不安定.
タイムステップを短くする,もしくは計算格子を大きくすると解決される.
=> CFL条件

  • なんかすぐ止まって動かん。
◇st**.depやst**.mapファイルと***.conなどで格子数は一致している?

  • 計算時間がやけに長いよ。
◇ample-timeファイルと台風ファイル(T******.str)、wrfの風・気圧ファイルの総時間はすべて一致してなくてはならない。台風ファイルやwrfファイルがample-timeよりも長い場合は、問題なく動くけど計算結果が途中でおかしくなる。(足りないときは動かない?)
例えば、風・気圧の読み込みをwrfから行う場合、台風のデータは使ってないはずだけど時間を合わせておかないと余分に計算してしまい、途中から風のない状態で計算が進む。

  • 右上の格子(海)が常に潮位偏差0になってる。隣接格子には影響ありませんが
◇質問の応えですが,solid boundary(閉境界)を2列にしてください。
つまり,右,左,上の閉境界を2列づつに設定してください。特に,このような簡単な地形を考慮する時にです。
数値解析方法に空間計算の流れは下から上,左から右方向です。
matrixを考えると(左,下)が(1,1)と(右,上)が(ig,jg)です.ig,jg=imax,jmaxです。
水面の計算は(2,2)から(ig-1,jg-1)までです。流れは(2,2)から(ig-2,jg-2)までです。
しかし,(ig-1,jg-1)のgridはx方向とy方向の流れはほとんど0です。だから,水面の変動も0ですね。
これは開境界(open boundary)の問題(radiation condition)を解決する方法のために流れの計算を(2,2)から(ig-2,jg-2)までやっています。
今からは簡単な地形の場合,solid boundary(閉境界)を2列にしてください。
byスーヨルさん

  • 閉境界(壁ぎわ)の波が異常に大きくなって変な挙動をする
k:波数
A:波高
とすると、k*A<<0.1~0.2じゃないと砕波しまくってしんどいことになる

  • SWANで閉境界の条件を入れる方法がわからない.
高潮計算では閉境界になっているものの,SWANで開境界として計算してしまってるようで,SWANを入れると領域外に水が流れていく.(12/3takada)
=> SWANでは閉境界条件を固定端にするオプションがない。(スポンジみたいな波を減衰させる壁になっているらしい。)
surgeでは固定端(rigid)を選択できる。
今回の場合、SWANとsurgeの計算で固定端の設定が異なっていたため、湾の奥で実際には起こらないような波形が生じた。
これを解決するために、surgeの境界を開境界条件に設定して計算し直した。
当初考えていたような三方を壁に囲まれた湾の計算ではなくなったが、不可解な振動はなくなる・・・はず(12/9 takada)



その他注意点

  • SuWATコンパイル時の注意
基本はスーヨルさんのマニュアルどおりにやればできる。
リンカの設定は他の人のやつを真似ればいい。

  • 流れ
SuWAT内の流れは,水深方向に積分した2次元平均流をあらわす.

  • ***.conのLINE3「OB_CON」について
surgeにおける開境界の扱いを決定するパラメータ.
OB_CON=1の場合,Flather(1994)の水位と流れを用いる方法を採用する.
OB_CON=0の場合,大きいドメインと小さいドメインから水位が決定される(?).
OB_CON=1推奨

※スーヨルさんのコメント
1の場合は吸い上げと流れを考慮していて,実際の地形の場合によく合う.
0の場合は吸い上げしか考慮されておらず,テストランの場合はよく合う.
境界条件は数学的に難しい問題なので,ケースに合わせていろいろ試してみる必要があるかも.
(12/10 takada)

☆☆マニュアルにない大事な注意点・・・・
Developer Studio でコンパイル時、Build→Set active configulation→でdebugじゃなくreleaseを選択しておかないといけない。
出来る実行ファイルがdebagの場合とreleaseの場合で異なるようで、計算結果も全然違う(releaseの方が正常)。同じソースのはずがなぜこんなことに?


☆☆これもマニュアルには書いていない・・・・
  • WRFdataの指定(filename_wind&pr#において)
WRFの風と気圧のpathを書きます.ここで重要なのは,その順番です.
1行目は風です.
2行目は気圧です.
これを間違えるとrunしません.(12/3sakunaka)

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年04月14日 18:04
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。