#author("2020-01-22T18:20:18+09:00","default:Miyashita","Miyashita")
#author("2020-01-22T18:22:28+09:00","default:Miyashita","Miyashita")
*setrun.py Memorandums [#m87b0cbc]
#contents
特に重要な変数を書き出してみる.~
~

**clawdata [#ec21a730]
-clawdata.lower (list of float)~
計算領域の端点の設定.~
clawdata.lower[0] は西端の x (または lon), ~
clawdata.lower[1] は南端の y (または lat). ~
~

-clawdata.upper (list of float)~
計算領域の端点の設定.~
clawdata.upper[0] は東端の x (または lon), ~
clawdata.upper[1] は北端の y (または lat). ~
~

-clawdata.num_cells  (list of int)~
~

-clawdata.bc_lower, clawdata.bc_upper~
境界条件の設定.~
名前とリストが意味するものはそれぞれ以下の通り.
#codeprettify{{
# Choice of BCs at xlower and xupper:
#   0 => user specified (must modify bcN.f to use this option)
#   1 => extrapolation (non-reflecting outflow)
#   2 => periodic (must specify this at both boundaries)
#   3 => solid wall for systems where q(2) is normal velocity
clawdata.bc_lower[0] = 'extrap' # Western,  x-direction
clawdata.bc_upper[0] = 'extrap' # Southern, y-direction
clawdata.bc_lower[1] = 'extrap' # Eastern,  x-direction
clawdata.bc_upper[1] = 'extrap' # Northern, y-direction
}}
入力値は数値でもテキストでもOKで,以下のように対応している.
 1 <-> "extrap"   
 2 <-> "periodic" 
 3 <-> "wall"     
~

-clawdata.t0 (float)~
計算開始時の時刻設定.~
基本的には 0.0 で良いが,storm-surge の計算でハリケーン上陸時刻を 0.0 という基準にすると,計算開始時の時刻はマイナスになる.~
ike の examples を参照.~
~

-clawdata.tfinal (float)~
計算終了時刻.ただし,下にある clawdata.output_times の方が優先される.~
リストで指定した clawdata.output_times の最後の出力時刻が clawdata.tfinal より早ければ,clawdata.output_times の最後の時刻をもって計算が終わる.~
~

-clawdata.output_t0 (boolean)~
True なら計算開始時のファイルを出力する.~
~

-clawdata.num_output_times (int)~
計算開始から計算終了までに出力を行う回数.~
計算時間を指定した値で等分割した間隔で出力される.
#codeprettify{{
# Output nout frames at equally spaced times up to tfinal:
clawdata.num_output_times = 36
}}
~
~

-clawdata.output_times (list of float)~
出力の回数を指定するのではなく,出力する時間をリストで指定する.~
等間隔でなくても良い.
#codeprettify{{
# Specify a list of output times.
clawdata.output_times = [0.5, 1.0, 2.0]
}}
~
~

-clawdata.output_step_interval (int)~
出力の回数や時刻を指定するのではなく,出力するステップ数を指定する.~
AMR では相性がよろしくなくあまり使わないような気がする(debug 時には便利).~
#codeprettify{{
# Output every iout timesteps with a total of ntot time steps:
clawdata.output_step_interval = 1
}}
~
上記の3つの変数
 clawdata.num_output_times (int)
 clawdata.output_times  (list of float)
 clawdata.output_step_interval (int)
はいずれか一つを指定すればよい.重複しないように.~
~

-clawdata.dt_variable~
#codeprettify{{
clawdata.dt_variable = True # variable time steps used based on cfl_desired
}}
~

-clawdata.dt_initial~
~

-clawdata.dt_max~
~

-clawdata.cfl_desired~
~

-clawdata.cfl_max~
~

-clawdata.steps_max~
~
~

**amrdata [#q824883c]
-amrdata.amr_levels_max~
分割するレベルの数.Level 1 を一番粗いレベルとして,Level 4 までの 4種類のメッシュサイズとする場合は 4 を入れる.~
~

-amrdata.refinement_ratios_x~
Level k から Level k+1 となる時の, x 方向のメッシュサイズの比.\( \frac{\Delta x_{k+1}}{\Delta x_{k}} \)のこと.~
したがって,Level 1 から 4 まである場合は 3要素のリストになる.~
\( \frac{\Delta x_{2}}{\Delta x_{1}}, ~ \frac{\Delta x_{3}}{\Delta x_{2}}, ~ \frac{\Delta x_{4}}{\Delta x_{3}}, ~ \dots \) の順番で書く.~
~

-amrdata.refinement_ratios_y~
上に同じで,y 方向のレベル間のメッシュサイズ比. \( \frac{\Delta y_{k+1}}{\Delta y_{k}} \)のこと.~
~

-amrdata.refinement_ratios_t~
上に同じで,\( \frac{\Delta t_{k+1}}{\Delta t_{k}} \)のこと.~
時間クーラン数を考慮すると,一般的には上の2変数と同一の値にするべき.~

~
例えば 2430m → 810m → 270m → 90m という分割をしたい場合は以下のようになる.
#codeprettify{{
# ---------------
# AMR parameters:
# ---------------
amrdata = rundata.amrdata

# max number of refinement levels:
amrdata.amr_levels_max = 4

# List of refinement ratios at each level (length at least mxnest-1)
amrdata.refinement_ratios_x = [3,3,3]
amrdata.refinement_ratios_y = [3,3,3]
amrdata.refinement_ratios_t = [3,3,3]
}}
~
~

**geo_data [#u625663a]
-geo_data.coodinate_system~
座標系の指定.X,Y で計算するか lon, lat で計算するか.~
ここを変更する場合は併せてコリオリの設定を変更する必要がある.
#codeprettify(lang-python){{
geo_data.coodinate_system = 1 # for Cartesian x-y in meters
geo_data.coodinate_system = 2 # for latitude-longitude on the sphere
}}
~
~

**topo_data [#tfa16dc1]
#codeprettify(lang-python){{
# topotype: format style
# fname: filename of the topography
topo_data.topofiles.append([topotype, minlevel, maxlevel, t1, t2, fname])
}}
topotypeの2はheaderが6行,7行目から1行1メッシュずつのデータ.~
topotypeの3はheaderが6行,7行目からmy(nrows)行mx(ncols)列のデータ.~
1は古い形式らしく,4はnetCDF.~
dtopoのtopotypeも同じ.~
~
~

**dtopo_data [#vec3d296]
#codeprettify(lang-python){{
# topotype: format style
# fname: filename of the topography
dtopo_data.dtopofiles.append([topotype, minlevel, maxlevel, fname])
}}

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes