基本事項(共通事項)
ここではUTTモデルにおける基本事項に関して述べる.
UTTにおけるトレーサーの位置情報の記述方法
UTTにおいて用いられるトレーサーの位置は流下方向および横断方向の無次元座標を用いて表される. 例えば, 河川や水路で境界適合座標を用いた場合, Figure 1 に示すように, 水路下流方向に \(\xi\), 横断方向に \(\eta\) のいずれも0から1の範囲の 無次元パラメータでトレーサーの位置情報を表すことになる.
乱流の影響を考慮したランダムウォークモデル
Callies(2011), McDonald and Nelson(2020)によれば, 対象トレーサーの 位置ベクトル \(\boldsymbol{r}\) は次式で表される.
\[\boldsymbol{r}(t+\Delta t) = \boldsymbol{r}(t)+ \boldsymbol{U} \Delta t + \boldsymbol{U}_p \Delta t + \boldsymbol{L}\sqrt{2K\Delta t}\]
ここで, \(\boldsymbol{U}\) は流れの流速ベクトル, \(\boldsymbol{U}_p\) は トレーサーの流速ベクトル(トレーサー自身の持つ推進速度ベクトル), \(\boldsymbol{L}\) はその値が, 平均値0で標準偏差1になるようなガウス分布ベクトル, \(\Delta t\) は計算時間ステップ, \(K\) は乱流拡散係数である.
\(\boldsymbol{L}\) はBox-Muller変換 (Box and Muller, 1958)を適用すると, 2次元の場合は以下のように表される.
ここで, \(U_1\) と \(U_2\) は互いに独立な0~1の正規乱数であるり, これらを適用することにより, ゆわゆるRandom Walkモデルとなる. \(K\) 渦動粘性係数 \(\nu_t\) の線形関数とし次式で与える.
UTTモデルでは, 上式の \(a\) および \(b\) をパラメータとして与える. \(\nu_t\) に関しては, 流れの計算結果から自動的に読み込まれる.
.._cloning00:
トレーサーのクローニングについて
上流から供給されるトレーサーは流れに乗って下流に輸送されるが, 流れの状況によってはトレーサーが 十分に流れてこない領域が発生する. 特に流れが淀む場所, 剥離域, 分流した場合の一方などでは, 上流から大量のトレーサーを供給しても, 対象領域にはなかなか到達できない場合がある. 一般に, 上流からの供給数には上限があり, 無限に供給出来る分けではないので, 何等かの工夫が必要になる. そこでUTTでは, トレーサーの数が少ないセル(もしくはトレーサーが存在しないセル)に新たなトレーサーを 発生させ(分割させ)トレーサーが十分に無い領域でも流れの様子を追跡しつつ, トレーサー濃度を管理する という手法を採用している. 例えば,
– あるセルでトレーサーの数が1個になったら, 2分割させる. – ただし, 重みは1/2とし, これを記憶する – Cloningは何度でも繰り返し可能とするが, 所定の世代(Generation)で打ち切ることも可能とする – オプションとして, トレーサーがゼロのセルには1個発生させることも可能とする. この場合のトレーサーの 重みはゼロとするが, 可視化は可能なので, 流れの可視化用のトレーサーとしては有効となる.
トレーサーの分割の様子を模式的に Figure 2 に示す.
最初に投入されたトレーサーを第1世代, 初回の分割で発生したものを第2世代, その次を第3世代… と定義すると, 第2世代では重みは1/2, 第3世代では重みが1/4, 第 \(n\) 世代では \(2^{n-1}\) 回の分割を経験していることを考慮すると, その重み \(W=\cfrac{1}{2^{n-1}}\) となる. これを利用して各セル内の重み付きトレーサーの重み付き総個数をカウントすることにより, 濃度の算定が可能となる. 従って, たとえば第10世代では \(n=10\) で \(W=\cfrac{1}{2^9}=0.000195\), \(n=20\) で \(W=\cfrac{1}{2^{19}}=0.00000195\) となる.
UTTで使用される2次元流れの計算結果
UTTでは2次元の「流れ」に乗ったトレーサーの追跡をラグランジェ的に行うので, 「流れ」の計算結果は予め用意しておく 必要がある. UTTではデフォルトで2次元構造格子の格子各点上で定義され, CGNSファイルとして保存 された2次元の流速場を読み込む. iRICのソルバーでこの条件を満たすソルバは現時点(2021年4月1日現在) では, Nays2dH, Nays2dFlood, Nays2d+, FastMechである( Figure 3 ). iRICで使用可能な流れの計算モデルについてはiRICのWebsite(https://i-ric.org/)を参照されたい.
UTTで使用する流れの計算結果が格納されたCGNSファイルは バーの「計算条件」「設定」「流れの計算結果を読み込むCGNSファイル」から指定する. (Figure 4)
UTTで使用される計算格子
UTTでは流れの計算結果にトレーサーを乗せてその軌跡の追跡を行うが, ほとんどの場合, 計算格子は前記の計算結果GNSファイルに含まれるものからインポートして使用する. Figure 5 に示すように, 「プリプロセッサー」ウィンドウの「オブジェクトブラウザ」 から, [格子(データ無し)]を右クリックし, [インポート]を選択した後に, Figure 6 で格子情報を含むCGNSファイルを選ぶ. なお, iRICの場合は通常[Case1.cgn] というファイル名になっている. .
UTTから流れの計算プロジェクトのCGNSファイルに含まれる格子データを読もうをすると, Figure 7 のような警告が出る. これは, 現在起動中のプロジェクトが UTTであるにも関わらず, 別のプロジェクト(流れの計算プロジェクト)の格子 ファイルをインポートしようとしていることに対する警告であるが, 構わず「OK」を 押して次へ進むと, Figure 8 のような対象の流れの計算結果から 格子がインポートされ, その結果が表示される.
この後は下記の手順でUTTによトレーサーの計算と結果の表示がおかなわれるが, 具体的には次節の事例集でその実例を示す.
・計算条件設定
・計算実行
・計算結果を表示