#author("2020-08-03T14:48:56+09:00","default:Miyashita","Miyashita") #author("2020-08-03T14:49:17+09:00","default:Miyashita","Miyashita") * dtopo setup [#sc7e3d53] dtopo は津波の初期水位を指定するファイルのこと. #ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/GeoClaw/test_kinematic.gif) ** dtopo ファイルのフォーマット [#o9f16c50] 基本的なフォーマットは topo のと同じ.~ ヘッダーの情報と行数が topo とは違う. -ヘッダーの例~ #codeprettify{{ 2160 mx 1620 my 30 mt -959000.000000 xlower -1206000.000000 ylower 0.00e+00 t0 8.100000e+02 dx 8.100000e+02 dy 10.000000 dt }} 上の例は,0秒破壊開始(t0),10秒(dt)ごとの水位変動過程が 30回分(mt)あるという意味.~ ~ ~ -初期水位情報~ topotype=3 と同じ.~ mt が 2 以上の場合は,2次元配列を i=1,2,...mt の分だけファイルに入れる.時間ステップ間で空行を入れないように.~ 破壊過程の時間ステップ n の情報は,時間ステップ 1 から n までの累積の水位変動量でなければならない点に注意.~ ステップ n-1 から n までの水位の差分ではない.~ ~ **setrun.py での dtopo 設定 [#p1178f85] 以下は例. #codeprettify{{ # == setdtopo.data values == dtopo_data = rundata.dtopo_data # for moving topography, append lines of the form : (<= 1 allowed for now!) # [topotype, minlevel,maxlevel,fname] dtopo_data.dtopofiles.append([3, 1, 5, os.path.join(dtopodir, 'dtopo_test.dat')]) dtopo_data.dt_max_dtopo = 5.0 }} **動的破壊 (mt>1) の時のメモリ不足? [#n4f959bb] 動的破壊を考慮して計算したら,とてつもなく大きなメモリを消費して計算が終了することがあった.~ 原因はdtopo指定時の #codeprettify{{ dtopo_data.dtopofiles.append([3, 1, 5, os.path.join(dtopodir, 'dtopo_test.dat')]) }} という箇所にあった.~ 上のように setrup.py に記述した場合,dtopo がカバーしている領域を最高でレベル5まで計算するようになっている.~ topo で指定した minlevel, maxlevel に関わらず,dtopo が作用している時間では dtopo の minlevel, maxlevel が優先されるらしい.~ dtopo の領域が広いか沿岸域に近い場合,dtopo の maxlevel の値を下げることは難しいので,region で領域ごとに解像度レベルを制限する必要がある.~ ~ minlevel, maxlevel の設定の優先順位は region > dtopo > topo ということがわかる.~