\(\require{physics}\)

非一様風の利用方法

まず,非一様風を利用するためには以下のようにNonUniformWeatherというオブジェクトを生成する. 初めに通常の気象と同様にweatherモジュールを読み込む.
require("weather")
その後,
weather = weather.NonUniformWeather("uniform_wind_data.inp", "./wind_folder/x_dir_folder", "./wind_folder/y_dir_folder", 0.0, 36000.0)

このオブジェクトには,風以外の気象を与えるための通常の気象ファイル(一様風のデータと同じ.このファイルの 風情報は利用しない),x方向の風のデータを含むディレクトリー,y方向の風のデータを含むディレクト リー,計算開始時間(通常0.0),風データの時間間隔(サンプルでは10時間,36000秒)を与える.ディレクトリー構造は任意であるが,この例では 一様風データは実行のluaファイルと同一ディレクトリー,非一様風の風データのディレクトリー構造は下の図のように なっている.

風の空間解像度はコンテナと同一になっている.つまりコンテナ内では風は一定である.従って風ファイルはコンテナと同じ形のマトリックスとなる.風ファイルを用意する際のルールがいくつかあり,風のファイルは,x方向,y方向別々のフォルダーにそれぞれ同じ数だけ入れる.ファイル名は名前でソートした時に時間経過と 同じ順番になるように名前をつける.陸域の風速は99999ではなく,ゼロとする.

実行するためには,通常の気象オブジェクトのように時間ループの中に以下の行を追加する.

  weather:apply(water_body, time)

その他,非一様な風応力だけを与えて,熱の計算をしないNonUniformWindオブジェクトもある.このオブジェクトは lua_weatherと組み合わせることができる(この場合,lua_weatherの風応力分はコメントアウトしておかなけれなならない).

weather = weather.NonUniformWind("./wind_folder/x_dir_folder", "./wind_folder/y_dir_folder", 0.0, 36000.0)