Xbeachとは
Xbeachは,オランダのデルフト工科大学を中心とするグループにより開発された2次元の波や海浜における土砂の輸送,地形変化をシミュレーションすることができるソフトウェア.
導入
ここからダウンロード可能(※Deltaresアカウントが必要).precompiled buildsを使えば環境構築などをせずすぐに使用可能.
今回は,precompiled buildのXBeach_v1.24_Halloween_win64_netcdf.zip
をダウンロードする.
_netCDFバージョンは,netCDF形式のデータの入出力が可能.
計算のしかた
ダウンロード後,zipを解凍すればすぐに実行可能.
実行ファイルは,xbeach.exe
.
param.txt
XBeachの実行にはこのparams.txt
というファイルが必要(xbeach.exe
と同じディレクトリに格納).
このファイル内には,格子や地形,水理条件などの情報が,keyward=value
の形式で格納されている.
各行あたり1つのパラメータを記述可能であり,=
のない行はコメントとして扱われる.
以下例
%%% %%%
%%% date: 01-Jan-2015 12:00 %%%
%%% function: xb_write_params %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Grid parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
depfile = bed.dep
posdwn = 0
nx = 265
ny = 0
alfa = 0
vardx = 1
xfile = x.grd
yfile = y.grd
thetamin = -90
thetamax = 90
dtheta = 15
thetanaut = 0
%%% Model time %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tstop = 3600
%%% Physical constants %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rho = 1025
%%% Tide boundary conditions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tideloc = 2
zs0file = tide.txt
%%% Wave boundary condition parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wbctype = jons
bcfile = filelist.txt
%%% Output variables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
outputformat = netcdf
tint = 3600
tstart = 0
nglobalvar = 3
zb
zs
H
モデルを動作させるために必要なパラメータは限定的で,必須パラメータ以外にはデフォルト値が自動的に適用される.
JONSWAPスペクトル(沿岸域での波を表す波浪スペクトルモデルの)を使った波浪シミュレーションを実施する際に必要な入力は,以下の5個.
-
格子
XbeachフォーマットもしくはDelft3Dフォーマットを使用可能.Xbeachフォーマットの場合は,keyword: xfile, yfile
を指定.Delft3Dフォーマットの場合は,keyword: xyfile
を指定.また,keyword: nx, ny
で格子の幅を指定する必要がある. -
地形ファイル
格子ファイルとして指定したファイルに適合するファイルをkeyword: depfile
に指定. -
計算時間
シミュレーション時間をtstop
で指定する. -
波向き
thetamin, thetamax, dtheta
に最小・最大角とビン幅を指定.ここでの向きというのは,波が進む向きである.仮に西から波が来る場合は,thetanaut=0(x軸正方向すなわち東が0°)-90°~90°を指定しておけばいい. -
計算モードの指定
wbctype
(Wave Boundary Condition Type)にjons
を指定すると,JONSWAPスペクトルを計算に使用する.(ほかのスペクトルを使う場合はここを変更.)※instat=jons
を要求してくる.
bcfile
は具体的な波の条件(ピーク周期,有義波高など)を記載したファイルを指定する.
できるだけ,入力するパラメータ数は少なくすることが推奨されている.
ログファイル(XBlog.txt
)に,設定したパラメータとデフォルト値が使用されたパラメータが出力される.
各種物理過程
XBeachでは,各種パラメータをON/OFFすることで多様な物理過程のシミュレーションが可能.
パラメータ名 | 説明 | デフォルト値 | 値の範囲 |
---|---|---|---|
advection | 移流項を含める | 1 | 0-1 |
avalanching | 斜面崩壊の有効化 | 1 | 0-1 |
cyclic | 周期境界条件の有効化 | 0 | 0-1 |
flow | 流れの計算の有効化 | 1 | 0-1 |
Iwave | 短波の作用を含める | 1 | 0-1 |
morphology | 地形変化を有効化 | 0 | 0-1 |
q3d | 準3次元の土砂輸送を有効化 | 0 | 0-1 |
sedtrans | 土砂輸送を有効化 | 1 | 0-1 |
setbathy | 与えられた地形変化の時系列を入力 | 0 | 0-1 |
swave | 短波を有効化 | 1 | 0-1 |
など
格子と水深
格子点数は,nx
(岸沖方向), ny
(沿岸方向)によって定義される.
したがって,計算格子の大きさは(nx+1)×(ny+1)
になる.
水深は,depfile
で指定されるファイルから与えられる.このファイルは,(nx+1)×(ny+1)
で作成する.
各セルに対して水深が与えられ,各行が岸沖方向のトランセクトに対応する.
値は正の値が水深を意味する.(posdwn
により変更可能`)
格子の種類
1. Fast 1D grid
沿岸方向のセルは1つだけ.ny=0
とし,depfile
は1行になる.
2. 1D grid
沿岸方向のセルは3つで,ny=2
とする.depfile
は3行になる.
3. 2DH grid
沿岸方向のセルは3つより多く,ny>2
とする.
地形ファイルは,スペース区切りで作成する.
格子は等間隔はもちろん非等間隔にも設定可能.
- 等間隔の場合
格子サイズをdx, dy
で指定 - 非等間隔の場合
vardx=1
とする.
格子内のx,y座標は,xfile, yfile
から与える.
(Delft3D用の格子も使用可能.その場合はgridform=delft3D
とし,xyfile
に格子ファイルを与える.)
波向き用の方向格子も設定する必要がある.
最小角度(thetamin
)、最大角度(thetamax
)、方向ビン幅(dtheta
)を設定する.
thetanaut
で角度の設定方法を定義する.0のときCartesian convention(計算格子のx軸に対する角度),1のときNautical convention(北を基準とする角度).
波のインプット
XBeachでは,外洋側の境界に波を強制的に与えることでモデリングを行う.
入射される波は,
- wave action balance
- wave dissipation model
- wave roller model
により記述される.
XBeachではいろいろな境界条件を持つ波に対応している.それは,大きく2種類(定常型とスペクトル型)に分けられる.
wbctype
によって,波の境界条件を選択できる.どんなタイプの波を使うべきかは,以下の画像に従って選択.
時間的空間的に変化する入力を行うことも可能.
スペクトル波境界条件
wbctype
をjons, swan, vardens, または jons_tableにすると有効になる.
bcfile
で定義した別のファイルのパラメータをもとに,スペクトル波を生成する.
rt
が生成する時系列の長さで,dtbc
が生成する波の分解能になる.
JONSWAPスペクトル
wbctype = jons
とすると,JONSWAPスペクトルで波が作られ,その性質はbcfile
で指定される.bcfile
の例は以下の通り.
Hm0 = 0.8
Tp = 8
mainang = 285.
gammajsp = 3.3
s = 10.
fnyq = 0.3
各種パラメータはすべてoptionalで,指定されなかった場合はデフォルト値が適用される.
wbctype = jons_table
とすることで,波の性質を時間変化させることも可能.この場合は,必要な全パラメータが記載されている必要あり.(詳細はマニュアル参照)
1Dシミュレーション時のparams.txt
とjonswap.txt
のオランダの場合の入力例は以下から確認できる.
基本的にはこのパラメータを使用し,地域に応じて適切に値を変更する.
ほかにもチュートリアルや例がマニュアルに多数掲載されているので,それをもとにパラメータを設定するとよい.