GELATOマニュアル・事例集のページへようこそ!

_images/ishikari_kako.gif

はじめに

GELATO(GEneralized LAgrangian Tracking with Optimization)はiRICに実装されている様々な流れの計算ソルバーの計算結果 を用いて、その上にユーザーが指定する様々な物質を乗せてその軌跡を追跡、可視化するツールである。 対象とする輸送物質は完全に流れに乗って移動する場合以外に、物質自体が巡行能力を持つような場合 (典型的な例としては魚)その能力・特性を指定することによって、その動きを表現することが 可能となっている。

GELATOではトレーサー粒子の流体内の任意の位置における濃度(密度)を判断して 必要に応じて分裂(Clone)もしくは結合(Amalgamate)する機能を持つ。これによって通常はトレーサー 粒子がなかなか入りこめない剥離域やでの表示や、粒子が蓄積されて極端に見にくくなった領域での すっきりとした可視化が可能となる。

さらに、GELATOでは分裂や結合を考慮した重み付き粒子濃度の表示も可能となっており、これにより 実質的なラグランジェ的手法による濃度解析が可能となっている。

なお、GELATOでは流れの計算ソルバーではソルバー内でモデル化されている格子スケール以下の乱れの 影響をランダムウォークモデルを導入することにより再抽出し、格子以下乱れスケールの影響を 粒子の追跡に反映させることが可能となっており、これによってより現実的な粒子追跡や濃度拡散 の検討が可能となっている。

GELATOでの追跡対象トレーサーは基本的には以下の3種類である。

  1. 通常のトレーサー(粒子の位置のみ追跡する)

  2. 特別トレーサー(自分指針の位置とその軌跡も記録し表示する)

  3. 魚トレーサー(自分自身に推進力を持たせた魚類のトレーサー)

この他に棒状の形状で、自身の移動の他に回転も追跡できる

  1. 流木トレーサー

も可能であるが、(4)流木トレーサーはGELATOとは別のNaysDw2(2次元流木追跡ソルバ、 Nays Drift Wood 2D)によって行われる。

GELATOでの計算は以下の手順で行われる。

  • 流れの計算ソルバーによる流れの計算(Nays2dh、Nays2dFlood、Nays2d+など)

  • 流れの計算結果の保存(CGNSファイル)

  • GELATOの起動

  • トレーサーの投入条件および追跡条件の設定

  • 上記CGNSファイルを用いてのレーサーの追跡計算

  • 計算結果の表示

_images/ishikari_kako.gif
_images/yasu.png
_images/iric.jpg

基本事項(共通事項)

ここではGELATOモデルにおける基本事項に関して述べる。

GELATOにおけるトレーサーの位置情報の記述方法

GELATOにおいて用いられるトレーサーの位置は流下方向および横断方向の無次元座標を用いて表される。 例えば、河川や水路で境界適合座標を用いた場合、Figure 1 に示すよう、 水路下流方向に \(\xi\)、横断方向に \(\eta\) のいずれも0から1の範囲の 無次元パラメータでトレーサーの位置情報を表すことになる。

_images/xi_eta.png

:トレーサーの位置の無次元表示方法

乱流の影響を考慮したランダムウォークモデル

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次元の場合は以下のように表される。

\[L_0 = (-2 \log U_1)^{1/2} \cos (2\pi U_2)\]
\[L_1 = (-2 \log U_1)^{1/2} \sin (2\pi U_2)\]

ここで、\(U_1\)\(U_2\) は互いに独立な0~1の正規乱数であるり、これらを適用することにより、 ゆわゆるRandom Walkモデルとなる。\(K\) 渦動粘性係数 \(\nu_t\) の線形関数とし次式で与える。

\[K= a \nu_t + b\]

GELATOモデルでは、上式の \(a\) および \(b\) をパラメータとして与える。\(\nu_t\) に関しては、 流れの計算結果から自動的に読み込まれる。

トレーサーのクローニングについて

上流から供給されるトレーサーは流れに乗って下流に輸送されるが、流れの状況によってはトレーサーが 十分に流れてこない領域が発生する。特に流れが淀む場所、剥離域、分流した場合の一方などでは、 上流から大量のトレーサーを供給しても、対象領域にはなかなか到達できない場合がある。 一般に、上流からの供給数には上限があり、無限に供給出来る分けではないので、何等かの工夫が必要になる。 そこでGELATOでは、トレーサーの数が少ないセル(もしくはトレーサーが存在しないセル)に新たなトレーサーを 発生させ(分割させ)トレーサーが十分に無い領域でも流れの様子を追跡しつつ、トレーサー濃度を管理する という手法を採用している。例えば、

  • あるセルでトレーサーの数が1個になったら、2分割させる.

  • ただし、重みは1/2とし、これを記憶する

  • Cloningは何度でも繰り返し可能とするが、所定の世代(Generation)で打ち切ることも可能とする

  • オプションとして、トレーサーがゼロのセルには1個発生させることも可能とする。この場合のトレーサーの重みはゼロとするが、可視化は可能なので、流れの可視化用のトレーサーとしては有効となる。

トレーサーの分割の様子を模式的に Figure 2 に示す。

_images/bunkatsu.gif

:トレーサーの分割(クローニングのイメージ)

最初に投入されたトレーサーを第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\) となる。

GELATOで使用される2次元流れの計算結果

GELATOでは2次元の「流れ」に乗ったトレーサーの追跡をラグランジェ的に行うので、「流れ」の計算結果は予め用意しておく 必要がある。GELATOではデフォルトで2次元構造格子の格子各点上で定義され、CGNSファイルとして保存 された2次元の流速場を読み込む。iRICのソルバーでこの条件を満たすソルバは現時点(2021年4月1日現在) では、Nays2dH、Nays2dFlood、Nays2D+、FastMechである( Figure 3 )。 iRICで使用可能な流れの計算モデルについてはiRICのWebsite(https://i-ric.org/)を参照されたい。

_images/flow.png

: GELATOによる計算の流れ

GELATOで使用する流れの計算結果が格納されたCGNSファイルは バーの「計算条件」「設定」「流れの計算結果を読み込むCGNSファイル」から指定する。 (Figure 4)

_images/cgns_file.png

: 流れの計算結果が格納されたCGNSファイルの指定

GELATOで使用される計算格子

GELATOでは流れの計算結果にトレーサーを乗せてその軌跡の追跡を行うが、ほとんどの場合、 計算格子は前記の計算結果GNSファイルに含まれるものからインポートして使用する。 Figure 5 に示すように、「プリプロセッサー」ウィンドウの「オブジェクトブラウザ」 から、[格子(データ無し)]を右クリックし、[インポート]を選択した後に、 Figure 6 で格子情報を含むCGNSファイルを選ぶ。 なお、iRICの場合は通常[Case1.cgn] というファイル名になっている。

_images/import_grid.png

: GELATOで使用する計算格子を流れの計算結果CGNSファイルからインポートする。

_images/import_grid_1.png

: GELATOで使用する計算格子を流れの計算結果CGNSファイルを選ぶ

GELATOから流れの計算プロジェクトのCGNSファイルに含まれる格子データを読もうをすると、 Figure 7 のような警告が出る。これは、現在起動中のプロジェクトが GELATOであるにも関わらず、別のプロジェクト(流れの計算プロジェクト)の格子 ファイルをインポートしようとしていることに対する警告であるが、構わず「OK」を 押して次へ進むと、Figure 8 のような対象の流れの計算結果から 格子がインポートされ、その結果が表示される。

_images/import_grid_2.png

: 警告メッセージ

_images/import_grid_3.png

: 格子インポートの完了

この後は下記の手順でGELATOによトレーサーの計算と結果の表示がおかなわれるが、 具体的には次節の事例集でその実例を示す。

・計算条件設定

・計算実行

・計算結果を表示

計算事例集

ここでは実際にGELATOによる計算例を示す。

[計算例 1] 直線水路におけるトレーサーの輸送

Nays2DHによる流れの計算

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面で、 [Nays2DH]を選んで[OK]ボタン押すと、

_images/Select_Nays2dh.png

: ソルバーの選択

「無題- iRIC 4.x.x.xxxx [Nays2DH iRIC4X 1.0 64bit]」と書かれた Windowが現れる。

_images/mudai.png

: 無題

計算格子の作成

Figure 10 のウィンドウで、[格子]→[格子生成アルゴリズムの選択]から現れる、 「格子生成アルゴリズムの選択」ウィンドウ で[簡易直線・蛇行生成ツール]を選んで[OK]を押す。

_images/kanni.png

: 格子生成アルゴリズムの選択

Figure 12 の画面で、「水路形状」を選択し、 「水路主要部の形状」を[直線水路]、「X方向長さもしくは流下方向延長(m)」を[5], 「X方向の格子数」を[100]、「Y方向長さもしくは水路幅(m)」を[0.5]、 「Y方向または横断方向格子数」を[20]、 「主要部の河床勾配」を[0.005],「下流端の河床高(m)」を[-0.5]に 設定し、他はすべてデフォルトなので、「格子生成」をクリックする。

_images/koushi_1.png

:水路形状

すると、Figure 13 確認ウィンドウが現れるので,[はい(Y)]を押すと格子が生成され、 Figure 14 が表示される。

_images/koushi_3.png

:確認(マッピング)

_images/koushi_4.png

:格子生成完了

Nays2dHによる流れの計算条件の設定

次に計算条件の設定を行う。メニューバーから「計算条件」→「設定」を選ぶと、 計算条件設定ウィンドウ Figure 15 が表示される。

_images/joken_1.png

:計算条件

Figure 16 の「境界条件」の「上流端流量と下流端水位の時間変化」で[Edit]を クックして、流量ハイドログラフ入力ウィンドウ Figure 17 に 移る。

_images/joken_2.png

:流量設定

_images/joken_3.png

:流量下流端水位設定ウィンドウ

Figure 17 において、「時間」「流量」のハイドログラフを入力する。 ここでは、0~100秒まで、0.001㎥/sの一定流量を与える。設定が終わったら[OK]を押して ウィンドウを閉じる。

_images/joken_4.png

:時間に関するパラメータ

「時間」を選択し、パラメーターは Figure 18 のように設定し、 「OK」をクリックする。

Nays2dHによる流れの計算実行
_images/jikko.png

:計算実行中の画面

[計算]→[実行]を指定すると、「計算開始する前に、プロジェクトを保存しますか?」 など聞かれるので、「はい(Y)」を選択しプロジェクトを適当な名前で保存する。 この時。プロジェクトはiproファイルで保存せずに必ずフォルダで保存すること。 計算中は Figure 19 のような画面が表示され、計算が修了すると、 終了すると、Figure 20 のような画面が現れるので、 [OK]を押して、計算は終了となる。

_images/keisan.png

:計算の終了

重要 計算が終わったら必ず Figure 21 のメニューバーの「ファイル」「保存」を 選んで計算結果を保存すること。この結果は後に行うGELATOによる解析で重要となる。

_images/hozon.png

:計算結果の保存

計算結果の表示

計算の終了後、[計算結果]→[新しい可視化ウィンドウ(2D)を開く]を選ぶことによって、可視化ウィンドウが現れる。

_images/kekka_0.png

: 計算結果の表示

流速ベクトルの表示

オブジェクトブラウザーで、[ベクトル][Velocity]に☑マーク入れて、 [ベクトル]をフォーカスさせてマウス右ボタン[プロパティ]をクリックすると、 「ベクトル設定」ウィンドウ Figure 23 が現れる。ここで、赤線で 囲った部分の設定をして[OK]を 押すと Figure 24 が表示される。Figure 24 は水深平均流速ベクトル である。等流状態で一様の流速分布となっている。

_images/kekka_2.png

: ベクトル設定

_images/kekka_6.png

: 水深平均流速ベクトル表示

パーティクルの表示

オブジェクトブラウザーの「ベクトル」を一旦アンチェックし、「パーティクル」と「Velocity」 に☑マークを入れる。( Figure 25 )

_images/kekka_9.png

: パーティクル(1)

Figure 26 のように「パーティクル」右クリックして「プロパティ」を選ぶと、

_images/kekka_10.png

: パーティクル(2)

Figure 27 のような「パーティクルの設定」画面が現れるので、図の赤囲いのように パーティクスの発生位置を指定する。

_images/kekka_11.png

: パーティクルの設定

Figure 27 に示すように、タームバーをゼロに戻し、メインメニューから、 「アニメーション」「開始/停止」を選ぶことにより、 Figure 29 のようなパーティクルの動きが表示される。

_images/kekka_12.png

: アニメーションの再生

_images/nays2d_particle.gif

: Nays2dhによるパーティクルアニメーション

Figure 29 からわかるよに、流れの計算結果をそのままパーティクル表示すると、 乱流による乱れ成分が含まれていないので、何の変哲も無い 単純で退屈な 表示しかされない( ^^) _U~~

GELATOよるトレーサーの追跡

GELATOの起動

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面で、 「GELATOとても便利な多機能トレーサー追跡ツール・魚も追跡できます」を選んで、「OK」を クリックする。( Figure 30 )

_images/GELATO_kido.png

: GELATOの選択と起動

「無題 -iRIC 4.x.x.xxxxx [GELATO(旧 UTT)]」 と書かれたウインドウが現れ、GELATOセッションが開始される。(Figure 31 )

_images/GELATO_openning.png

: GELATOの起動

この状態の「プリプロセッサー」の「オブジェクトブラウザー」の「格子」の部分には [データなし]と表示されている( Figure 31 ) ので、まずは前記 (Figure 14)で作成したものをインポートする。

_images/GELATO_import.png

: 格子データのインポート

「格子(データーなし)」を右クリックして「インポート」を選ぶ (Figure 32 ).

_images/GELATO_koshi_1.png

: 格子データファイルの選択

Figure 33 に示すように前述の「Nays2DHによる計算結果」を セーブしたプロジェクトフォルダーの中にある 「Case1.cgn」を選択して、「開く」をクリックする。

_images/GELATO_wng.png

: 警告

Figure 34 「このCGNSファイルは・・・ナンチャラ・・・・インポートしますか?」 と出るが、細かいことは気にせずに「はい(Y)」と答えると、 Figure 35 のように格子のインポートが完了する。

_images/GELATO_grid.png

: 格子のインポート完了

2個のトレーサーの追跡(乱流拡散無し)
計算条件の設定

Figure 36 に示すように、メインメニューから「計算条件」「設定」を選ぶ。

_images/joken_0.png

: 計算条件の設定(0)

以下に示すように計算条件を設定していく。

「基本設定」の「流れの計算結果を読み込むCGNSファイル」には前記の「Nays2DHの計算結果」 が格納されているCGNSファイルを指定する。

_images/GELATO_joken_1.png

: 基本設定

_images/GELATO_joken_2.png

: プライマリートレーサーの供給条件

_images/GELATO_joken_3.png

: セカンダリートレーサーの供給条件

_images/GELATO_joken_4.png

: 通常トレーサーの時間設定

_images/GELATO_joken_5.png

: 乱れの影響

他の条件はデフォルトの値を使用する。

計算の実行

メインメニューから、「計算」「実行」を選ぶと、「保存しますか?」 のようなメッセージが出るので、「はい(Y)」を選んで、プロジェクトを保存する。 保存が終了すると、計算が実行され、Figure 42 のようなウィンドウが 表示される。

_images/GELATO_jikko_1.png

: 計算の実行

計算が終了すると、Figure 43 のようなウィンドウが 表示されるので「OK」を押す。

_images/GELATO_jikko_2.png

: 計算の実行

計算結果の表示

メインメニューから、「アニメーション」「開始/停止」を選ぶ( Figure 44 ) とアニメーションが開始される。( Figure 45 ) トレーサーはプライマリーとセカンダリーそれぞれのプロパティから色を設定することができる。

_images/GELATO_kekka_1.png

: 計算結果の表示

_images/GELATO_00.gif

: トレーサーの動き(拡散無し)

当然、乱流拡散なしの場合は Figure 45 のような単純な結果となる。

2個のトレーサーの追跡(乱流拡散有り)
計算条件の設定

計算条件を変更し、乱流拡散の影響を考慮する。メインメニューから「計算条件」→「設定」を選択し、 Figure 46 の「計算条件」の設定ウィンドウを表示し、 「乱れの影響」の「ランダムウォークによるセル以下スケールの乱れの考慮」を「する」に設定し、 パラメーターの「Aの値」を[1]に設定し、「OK」を押す。

_images/GELATO_joken_6.png

: 乱れの影響

計算の実行と結果の表示

前記と同様に計算を実行して結果をアニメーション表示すると、Figure 47 のような 結果となる。

_images/GELATO_01.gif

: トレーサーの動き(拡散あり A=1)

さらに Aの値を10とすると、Figure 48 となり、明らかに乱れの影響が大きくなる。

_images/GELATO_10.gif

: トレーサーの動き(拡散あり A=10)

[計算例 2] 単純な湾曲水路の浮遊物追跡

Figure 49 に示すような直線+湾曲+直線水路実験の流量解析およびトレーサーの追跡計算を行う。 この実験は水路全幅約1.8mで、左岸側半分が高水敷、右岸側半分が低水路の複断面水路で、右岸側のみが 移動床となっている。平面形状および断面形状の概略を Figure 50 に示す。 この実験は 寒地土木研究所 の委託により。 (株)建設技術研究所 によって行われたものである。

_images/jikken.gif

: 実験状況の動画

_images/heimen.png

: 実験水路の形状

以下の計算事例では以下の手順で計算を実施する。

  1. Nays2DHにより河床変動計算を実施し、河床変動がほぼ定常に達すた状態の河床形状を得る。

  2. Nays2d+により準3次元流れ場の計算をする。

  3. GELATOによりトレーサーの追跡を行う。乱流拡散強度パラーメーターを変更してその影響を比較する。

Nays2DHによる流れと河床変動の計算

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面で、 [Nays2DH]を選んで[OK]ボタン押すと、

_images/Select_Nays2dh.png

: ソルバーの選択

「無題- iRIC 4.x.x.xxxx [Nays2DH iRIC3X 1.0 64bit]」と書かれた Windowが現れる。

_images/mudai.png

: 無題

計算格子の作成

[格子]->[格子生成アルゴリズムの選択]で現れるウィンドウで、 [2次元単純円弧格子作成ツール(複断面対応版)]を選んで[OK]を押す。 (Figure 53 )

_images/koshi1.png

: 格子生成アルゴリズムの選択

[格子生成]のグループ[水路形状]、[断面形状]、[追加水路]、[粗度と河床状態]を それぞれ、 Figure 54Figure 55 , Figure 56 , Figure 57 のようにパラメータを設定して、最後に[格子生成]を押す。

_images/koshi2.png

: 格子生成(1)

_images/koshi3.png

: 格子生成(2)

_images/koshi4.png

: 格子生成(3)

_images/koshi5.png

: 格子生成(4)

「マッピングを実行しますか?」と聞かれるので[はい(Y)]を押す。 ( Figure 58 )

_images/mapping.png

: 確認

オブジェクトブラウザーの[格子][セルの属性][固定床と移動床]に☑マークを入れると、 Figure 59 のように固定床部分が赤、移動床部分が青で示された 格子の図が示される。

_images/koshi6.png

: 固定床と移動床

低水路と高水敷の境界の固定床は護岸を想定しているが、本実験での護岸は湾曲部を含むその上下流のみ なので、Figure 60 に示すように[固定床と移動床]をフォーカスして、 直線部の護岸部分(この例では格子番号101より上流の赤色の格子部分)を選んで右クリックして、 属性を[移動床]に変更すし、[OK]を押す。

_images/koshi7.png

: 固定床と移動床の属性変更

また下流端は固定床なので、Figure 61 に示すように拡大、回転して 最下流の格子属性を[固定床]に変更する。

_images/koshi8.png

: 最下流端の格子を固定床に変更

計算条件の設定

メインメニューから[計算条件]->[設定]で現れる[計算条件]ウィンドウの、 [グループ]において、 [ソルバー・タイプ]、[境界条件]、[時間]、[河床材料]を それぞれ、 Figure 62Figure 63 , Figure 64 , Figure 65 のようにパラメータを設定する。

_images/joken1.png

: 計算条件(ソルバー・タイプ)

_images/joken2.png

: 計算条件(境界条件)

_images/joken3.png

: 計算条件(時間)

_images/joken4.png

: 計算条件(河床材料)

なお。Figure 63 の[境界条件]においては、 [上流端流量と下流端水位の時間変化]で[Edit]を押して現れる、 Figure 66 の[流量時間変化設定ウィンドウ]で時間と流量の関係を与える。

_images/joken5.png

: 計算条件(流量の時間配分の設定)

計算条件の設定が終了したら、[計算条件]ウィンドウで[OK]を押す。

計算の実行

計算を実行する前に、メインメニューから[ファイル]->[名前を付けてポロジェクトに保存]を選択して、 新しいフォルダを作成し、そのフォルダを選択することによりプロジェクトを保存しておく。 ここでは、[Nays2DH_flow_bed]という名前で保存する。( Figure 67 )

_images/save_project.png

: 計算プロジェクトの保存

メインメニューから[計算]->[実行]を選択すると、今保存したばかりなのにしつこく[保存しますか?] と聞かれるので(Figure 68 ) [はい]を選ぶと計算が開始される。(Figure 69 )

_images/jikko1.png

: 「保存しますか?」

_images/jikko2.png

: 「計算実行中」

計算が終了したら、メインメニューから[計算結果]->[保存]を選択して計算結果を保存しておく。

計算結果の表示

オブジェクトブラウザーから[iRICZone]->[スカラー]->[ElevationChange(m)]に☑マークを付け、 [ElevationChange(m)]を右クリックして[プロパティ]を選択して、[スカラー設定]を Figure 70 のように設定する。

_images/hyoji1.png

: 「スカラー設定」

オブジェクトブラウザーから[ベクトル]->[Velocity(ms-1)]に☑マークを付け、 [ベクトル]を右クリックして[プロパティ]を選択して、[ベクトル設定]を Figure 71 のように設定する。

_images/hyoji2.png

: 「ベクトル設定」

メインメニューに[タイムスケールバー]をゼロに戻し、[アニメーション]->[開始/停止]を選択する ( Figure 72 )

_images/hyoji3.png

: 「アニメーションの実行」

Figure 73 のようにアニメーションが表示され、河床変動がほぼ定常に達していることが分かる。

_images/hyoji4.gif

: 「河床変動と流速ベクトルのアニメーション」

計算結果のエクスポート

計算で得られた河床形状を次節で行うNays2d+による準3次元流れの計算の境界条件に使用するために 計算結果をテキストファイルにエクスポートする。Figure 74 に示すように、メインメニューから、 [ファイル]->[エクスポート]->[計算結果]を選ぶ.

_images/export.png

: 「計算結果のエクスポート(1)」

[計算結果のエクスポート]ウィンドウ( Figure 74 )が表示されるので、 [形式]を[地勢データファイル形式(tpo)]に設定する( Figure 75 )。

_images/export2.png

: 「計算結果のエクスポート(2)」

出力フォルダは任意の名前で、 [全タイムステップ]の前にあるチェックボックスの☑を外し、[開始][終了]を10,800に設定して、[OK]をクリックすると、計算結果のエクスポートが完了する( Figure 76 )。

_images/export3.png

: 「計算結果のエクスポート(3)」

エクスポートされた計算結果は、( Figure 77 )に示すように、水深、流速、流砂量、河床高。。。。 など種類別に様々なファイルに保存されているが、このうち次節の計算に使用するのは河床高のみであるので、 [Results_1_Elevation(m).tpo]という名前のファイル以外は不要なので消しても構わない。

_images/export4.png

: 「計算結果のエクスポート(3)」

Nays2d+による準3次元流れの計算

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面 ( Figure 78 )で[Nays2d+簡単に3次元の流れの計算が出来ます] を選択して[OK]を押す。

_images/select2.png

: 「ソルバーNays2d+の選択」

計算格子と河床形状のインポートとマッピング
格子のインポート

メインメニューから[インポート]->[格子]を選択し、前記のNays2DHのプロジェクトフォルダー [Nays2DH_flow_bed]の中の[Case1.cgn]を選ぶ。 Figure 79 のような警告が出るが、「余計なお世話です」と心の中で思いながら、 構わず[はい]をクリックすると、格子のインポートが完了する。 ( Figure 80 )

_images/koshi10.png

: 「警告」

_images/koshi11.png

: 「格子のインポート完了」

河床高のインポート

メインメニューから[インポート]->[地理情報]->[河床高]を選択する( Figure 81 ).

_images/import2.png

: 「河床高のインポート」

インポートファイルの選択画面が現れる(Figure 82 )ので、前節のNays2dHの計算結果として エクスポートした [Results_1_Elevation(m).tpo]を選択して[開く]。

_images/import3.png

: 「河床高のインポート(ファイルの選択)」

Figure 83 のようにデータを間引くかどうか来かれるが、特に間引く必要がなければ、そのまま [OK]を押すと[河床高]のインポートが完了する( Figure 84 )

_images/import4.png

: 「河床高のインポート(間引き設定)」

_images/import5.png

: 「河床高のインポート完了」

マッピング

インポートした河床高データをインポートした格子上にマッピングを行う。

Figure 85 のように[格子]->[属性のマッピング]->[実行]を選ぶ。

_images/mapping2.png

: 「マッピング」

Figure 86 マッピングする[地理情報]を聞かれるので、 [河床高(m)]に☑を入れて[OK]をクリックすると

_images/mapping3.png

: 「マッピングする情報の選択」

マッピングが完了する( Figure 87 )ので、[OK]をクリックして 完了。

_images/mapping4.png

: 「マッピングの完了」

Nays2d+の計算条件の設定

メインメニューから[計算条件]->[設定]で現れる[計算条件]ウィンドウの、 [グループ]において、 [流量および下流端水位の設定]、[時間および浸食に関するパラメータパラメータ]、 [境界条件]、[他の計算条件]、[3次元流速分布]を それぞれ、 Figure 88Figure 89 , Figure 90 , Figure 91 , Figure 92 のようにパラメータを設定する。

_images/joken6.png

: 計算条件(流量および下流端水位の設定)

_images/joken7.png

: 計算条件(時間および浸食に関するパラメーター)

_images/joken8.png

: 計算条件(境界条件)

_images/joken9.png

: 計算条件(他の計算条件)

_images/joken10.png

: 計算条件(3次元流速分布)

なお。Figure 88 の[流量および下流端水位の設定]においては、 [流量と下流端水位の時系列]の隣の[Edit]を押して現れる、 Figure 93 の[流量時間変化設定ウィンドウ]で時間と流量の関係を与える。

_images/joken11.png

: 計算条件(流量の時間配分の設定)

計算条件の設定が終了したら、[計算条件]ウィンドウで[OK]を押す。

Nays2d+の計算の実行

計算の実行方法は前節[Nays2DHによる計算の実行]と全く同じで、タダでさえ長いのに これ以上同じことをクドクド書くと嫌われそうなので省略する。 ただ、計算の実行の前に、必ず、プロジェクトを保存しておくことを推奨する。 ここでは、[Nays2d+Flow]とう名前のプロジェクトに保存する。

_images/save_project2.png

: プロジェクトの保存(Nays2d+Flow)

計算結果は[Case1.cgn]というCGNSファイルに保存されるが、次のGELATOで使用するのはこの フォルダに保存される[Case1.cgn]を使用する。 計算の実行が終わった時も必ず[計算結果]->[保存]で結果を保存すること。

GELATOによる仮想トレーサーの追跡計算

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面 ( Figure 95 )で[GELATO] を選択して[OK]を押す。

_images/select_GELATO.png

: 「ソルバーGELATOの選択」

格子のインポート

Figure 96 のようにオブジェクトブラウザーの[格子(データなし)]を右クリック して、[インポート]をクリックする。

_images/import_grid1.png

: 「格子のインポート(1)」

ファイル選択ウィンドウが現れるので、先ほど[Nays2d+]の計算結果を保存したフォルダ [Nays2d+Flow]の中の[Case1.cgn]を選ぶ( Figure 97)

_images/import_grid2.png

: 「格子のインポート(2)」

お馴染みの Figure 98 の警告が表示されるが、構わず[はい]を押して進むと 格子のインポートが完了する。( Figure 99)

_images/import6.png

: 「お馴染みの警告」

_images/import7.png

: 「格子のインポート完了」

GELATOによるトレーサー追跡計算
計算条件の設定

[計算条件]->[設定]で表示される[計算条件]ウィンドウで、

[基本設定]、[プライマリートレーサーの供給条件]、[通常トレーサーの時間設定]、[乱れの影響] をそれぞれ、 Figure 100Figure 101Figure 102Figure 103 のようにパラメータを設定する。ここではまず、[乱れの影響]を考慮しない場合のトレーサー追跡を行う。

_images/joken20.png

: 「GELATOの計算条件(1)」

_images/joken21.png

: 「GELATOの計算条件(2)」

_images/joken22.png

: 「GELATOの計算条件(3)」

_images/joken23.png

: 「GELATOの計算条件(4)」

なお、Figure 100 中の[流れの計算結果を読み込むCGNSファイル]は前節[Nays2d+による流れの計算] の結果を保存した[Nays2d+Flow]プロジェクトフォルダにある[Case1.cgn]を選択する。

計算の実行

メインメニューから[計算]->[実行]を選択すると、「プロジェクトの保存がお勧めされる」ので、 ここは大人しく言うことを聞いて、新たにプロジェクトを保存しておく ( Figure 104).

_images/save_project3.png

: 「GELATOプロジェクトの保存(1)」

[ファイルに保存(ipro)]か[プロジェクトとして保存]どちらでも良い。

_images/save_project4.png

: 「GELATOプロジェクトの保存(3)」

計算が始まるとお馴染みの Figure 106 この画面が登場し。終了すると、これまたお馴染みの Figure 107 が表示されるので、[OK]を押す。

_images/jikko20.png

: 「計算の実行(1)」

_images/jikko21.png

: 「計算の実行(2)」

計算結果の表示

メインメニューから[計算結果]->[新しい可視化ウィンドウ(2D)を開く]を選択すると、計算結果が表示される。 (Figure 108 )

_images/kekka20.png

: 「可視化ウィンドウ(2D)」

本章冒頭に示した実験の画像 Figure 49 と向きが反対なので、Figure 108 に 矢印で示す(小さく分かりにくいが)90°回転のマークを2回クリックして180°回転させる ( Figure 109).

_images/kekka21.png

: 「可視化ウィンドウ(180°回転)」

時刻表示が小さくてメチャ見にくいので、オブジェクトブラウザーの[時刻]->[プロパティ]で [時刻設定]を表示させて( Figure 110) フォントサイズを適当に大きくする。

_images/jikoku.png

: 「時刻表示設定」

Figure 111 に示すように[時刻バーを戻し]、メインメニューから [アニメーション]->[実行]でトレーサーの流動アニメーションが開始される ( Figure 112)

_images/anime1.png

: 「アニメーションの開始」

_images/GELATO00.gif

: [トレーサーのアニメーション(乱流拡散強度A=0)」

トレーサーは殆ど拡散せずに、線状に流れて行くのが分かる。

乱流拡散強度の違いの比較

Figure 113 [計算条件]->[設定]の、[グループ][乱れの影響]で、 [ランダムウォークによるセル以下スケールの乱れ考慮]を[する]にして、[Aの値]を[1]にして 再度[計算を実行]、[計算結果のアニメーション表示を]すると、 Figure 114 のようになる。

_images/A01.png

: 「ランダムウォークパラメータ(A=1)の設定」

_images/GELATO01.gif

: [トレーサーのアニメーション(乱流拡散強度A=1)」

同様に、[A=5]、[A=10]、[A=50]でランダムウォークをやってみると。。。

_images/GELATO05.gif

: [トレーサーのアニメーション(乱流拡散強度A=5)」

_images/GELATO10.gif

: [トレーサーのアニメーション(乱流拡散強度A=10)」

_images/GELATO50.gif

: [トレーサーのアニメーション(乱流拡散強度A=50)」

Figure 49 の実験と比較すると、[A=10]位の感じであることが分かる。

トレーサーのクローン

Figure 118 [計算条件]->[設定]の、[グループ] [トレーサーのクローニング(分割)と再結合]の設定で[クリーニング]を[する]、 [方法の選択]を[トレーサーが1個のセルだけ新規トレーサーを発生させる]、 [最大クローニング世代数]を[20]に設定すし、 [乱れの影響]は[A=10]として再度計算を実行し、結果を表示する( Figure 119 )

_images/clone01.png

: [トレーサークローンの設定」

_images/clone10.gif

: [トレーサークローン表示(最大20世代、A=10)」

トレーサーの拡散範囲は Figure 49 の実験動画の緑色染料の拡散範囲に近くなっている。 ここで、オブジェクトブラウザーで、[粒子]->[スカラー]->[Generations]に☑マークを入れると、世代が表示される。 これをアニメーション表示すると、 Figure 120 のようになる。

_images/clone10_gen.gif

: [トレーサークローン表示(最大20世代、A=10、世代色別表示)」

基本事項(共通事項) で述べたように、実質の重みは10世代目で \(W=0.00195\)、20世代目だと \(W=0.00000195\) なので、 Figure 120 おける、緑・黄・赤等のトレーサー 濃度は中心部の青色系のトレーサーに比べ対数的に低いことになる。 格子内のトレーサー数に重みを乗じて、実質の濃度を見るには、

1.オブジェクトブラウザーで[スカラー]の☑マークを外す( Figure 121).

_images/concent1.png

: [スカラー」の☑マークを外す

2.オブジェクトブラウザーで[スカラー(セル中心)][Weghted numbers of tracers]に☑マーク を入れる(Figure 122).

_images/concent2.png

: [Weighted numbers of tracers]に☑マークを入れる

3.[Weighted numbers of tracers]を右クリックして[プロパティ]を押す。

_images/concent3.png

: [Weighted numbers of tracers]->[プロパティ]

4.[スカラー設定]ウィンドウで、以下のように設定して[設定]を押す。

_images/concent4.png

: スカラー設定

Figure 125 の[可視化ウィンドウ:2D]が表示されるので、 タイムバーをゼロに戻してメインメニューから[アニメーション]->[開始/停止]を 押すと、 Figure 126 のアニメーションが開始される。

_images/concent7.png

: アニメーションの実行

_images/concent8.gif

: 重みを考慮したトレーサー濃度のアニメーション

Figure 49 の実験動画の緑色染料の拡散状況に類似した拡散状況が再現された。

トレーサークローンを利用した流れの可視化

トレーサーのクローンツールを用いた流れの可視化の例を示す。

[Weighted numbers of tracers]の☑マークを外し、メインメニューの[計算条件]->[設定]を開く。 Figure 127 および Figure 128 のように条件を設定して保存する。 ここで、Figure 128 の[トレーサーの無いセルはすべて発生させる] によって、可視化用の多数の トレーサーを発生さる。

_images/settei1.png

: 計算条件の設定(1)

_images/settei2.png

: 計算条件の設定(2)

設定終了後、計算を実行し、 オブジェクトブラウザーの[粒子]と[スカラー]の☑マークを入れて、[Generations]の☑マークを外した後に [アニメーション]->[開始/停止]で Figure 129 のようにアニメーションが表示され、水路全体にトレーサーが 満遍なく配置された可視化となる。

_images/kashika.gif

: トレーサーを用いた可視化

魚の遊泳シミュレーション

[計算条件]->[設定]で以下の設定を行う。

_images/fish1.png

: 魚の条件設定(1)

_images/fish2.png

: 魚の条件設定(2)

_images/fish3.png

: 魚の条件設定(3)

_images/fish4.png

: 魚の条件設定(4)

_images/fish5.png

: 魚の条件設定(5)

この条件で、[計算]->[実行]を行った後に、オブジェクトブラウザーで[ポリゴン]->[Fish]->[Type]に☑マークを入れて [アニメーション]->[開始/停止]を選択すると、Figure 134 が再生される。

_images/fish6.png

: アニメーションの設定

_images/fish.gif

: 魚の遊泳アニメーション

NaysDw2による流木の追跡計算

本節では2次元流木追跡ソルバNayswd2により流木の追跡を行う。

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面 ( Figure 137 )で[NaysDw2シンプルな2次元流木追跡ツール] を選択して[OK]を押す。

_images/select_Dw2.png

: 「ソルバーNaysDw2の選択」

格子のインポート

Figure 138 のようにオブジェクトブラウザーの[格子(データなし)]を右クリック して、[インポート]をクリックする。

_images/import_grid3.png

: 「格子のインポート(3)」

ファイル選択ウィンドウが現れるので、先ほど[Nays2d+]の計算結果を保存したフォルダ [Nays2d+Flow]の中の[Case1.cgn]を選ぶ( Figure 139)

_images/import_grid4.png

: 「格子のインポート(4)」

Figure 98 の警告が表示されるが、構わず[はい]を押して進むと 格子のインポートが完了する。( Figure 141)

_images/import8.png

: 「警告」

_images/import9.png

: 「格子のインポート完了」

計算条件の設定

[計算条件]->[設定]で以下の設定を行う。 Figure 142 [基本設定]の[流況計算結果を読み込むファイル名]を選ぶ

_images/dw1.png

: [基本設定]->[計算結果を読み込むファイル名](1)

Figure 143 前節[Nays2d+]の計算結果の[Case1.cgn]を選ぶ

_images/dw2.png

: [Cgnsファイルの指定]

[基本設定]の他のパラーメタは Figure 144 のようにパラメータを設定する。

_images/dw3.png

: [基本設定]

[流木の供給条件]パラーメタは Figure 145 のようにパラメータを設定する。

_images/dw4.png

: [流木の供給条件]

[流れおよび流木に関する]パラーメタは Figure 146 のようにパラメータを設定する。

_images/dw5.png

: [流れおよび流木に関するパラメーター]

[DEM(個別要素法)パラメーター]は Figure 147 のようにパラメータを設定して、最後に [OK]をクリックする。

_images/dw8.png

: [DEM(個別要素法)パラメーター]

流木追跡計算の実行

Figure 148 メインメニューから[計算]->[実行]を選択。

_images/dw6.png

: [計算]->[実行]

Figure 149 [プロジェクトを保存しますか?]と聞かれるので、[はい]を選んで保存する。

_images/dw7.png

: [プロジェクトを保存しますか?]

[プロジェクトを保存方法の選択]が問われるので、ここでは [プロジェクトとして保存]を選択して[OK]を押し、保存するフォルダ(空のフォルダ)を指定して、[フォルダの選択]をを押す

計算が開始されると、Figure 150 の画面が表示され、終了すると Figure 151 が表示されるので[OK]をクリックする。

_images/dw10.png

: [計算の実行]

_images/dw11.png

: [計算の終了]

流木追跡計算結果の表示

Figure 152 メインメニューから[計算結果]->[新しい可視化ウィンドウ(2D)を開く]を選択

_images/dw12.png

: [可視化ウィンドウの表示]

Figure 153 オブジェクトブラウザーで、[iRICZone][スカラー(格子点)][Res-Velocity]に☑マーク を入れて、[右クリック]->[プロパティ]を選択

_images/dw13.png

: [スカラーの表示]

Figure 154 [スカラー設定]ウィンドウを図のように設定して[OK]を押す。

_images/dw14.png

: [スカラー設定]

Figure 155 タイムバーをゼロに戻し、[アニメーション]->[開始/停止]を押す。

_images/dw15.png

: [アニメーションの開始]

Figure 156 のようなアニメーションが表示される。

_images/dw.gif

: [流木追跡のアニメーション]

[計算例 3] 実河川の流れとトレーサーの追跡計算

実河川で行われた浮子観測の結果をもとに再現を行う。 洪水時に浮子投下機から浮子を投下し、100m区間の流下時間を測定、流速を算定している。 観測水位・流速から求められた流量2640m3/sを対象に、Nays2d+を用いて表面流を算定後、 GELATOによる浮子の再現を行う。

Nays2d+による流れの計算

ソルバの選択

iRIC起動画面より、[Nays2d+]を起動する。

_images/001.png

: ソルバーの選択

計算格子と河床形状の作成
1) 河床高のインポート

[インポート] → [ 地理情報] → [河床高(m)] より、tikei.tpo(点群データ)を読み込みます。 次に点群データの間引きを選択します。ここでは間引きは行わず、1を選びます。

_images/002.png

: 河床高選択

_images/003.png

: 点群データ読み込み

_images/004.png

: 間引き

読み込んだ地形データを示します。

_images/005.png

: 地形データ

2) 背景の設定

[ ファイル ] → [ プロパティ ] を選択し、プロパティ画面より座標系を選択します。

_images/006.png

: プロジェクトプロパティ

検索からJapanを打ち込み、EPSGのJapan VIを選択します。

_images/007.png

: 座標系の選択

オブジェクトブラウザより、[背景画像(インターネット)] → [ 国土地理院(標準地図)]を選択します。

_images/008.png

: 背景の表示

オブジェクトブラウザより、[点群データ1]を右クリック → [ プロパティ]から[TIN]で[点]を選択して点群表示にします。

_images/008_2.png

: 点群の表示の変更

3) 計算格子の選択

[ 格子 ] → [ 格子生成アルゴリズムの選択 ] → [ 折れ線と格子幅から生成 ]を選択する。

_images/009.png

: 格子アルゴリズムの選択

上流側から下流へ向けて中心位置を選択する。

_images/010.png

: 中心線の選択

格子生成画面より、格子数 nI:290、nJ:56、幅W140mとする。格子サイズは2.5m×5.0m程度となる。

_images/011.png

: 格子生成

_images/012.png

: 格子形状

4) 橋脚の設定

画面左のオブジェクトブラウザより、地勢データ1を非表示にし、 [ 障害物 ] → [ 追加 ] → [ ポリゴン] を選択し、橋脚位置を障害物設定する。 また、全格子をポリゴンで囲み通常格子とする。このとき、通常セルは障害物セルより 下層のレイヤーに配置する。

_images/013.png

:障害物

_images/014.png

:障害物セル

5) 粗度係数の設定

[マニングの粗度係数]よりポリゴンから全格子囲みn=0.030を入力する。

_images/015.png

:粗度係数

6) 属性のマッピング

[ 格子 ] → [ 属性のマッピング ] → [ 実行 ]を選択する。

_images/016.png

:属性マッピング

_images/017.png

:属性マッピング実行

計算条件の設定

メニューの[ 計算条件 ]より計算条件をを設定する。 各種条件を図に示す。

_images/018.png

:流量および読み込みファイル

_images/019.png

:流量と下流端水位の時系列データ

_images/020.png

:時間および浸食に関するパラメータ

_images/021.png

:境界条件

_images/022.png

:他の計算条件

_images/023.png

:三次元流速分布

計算の実行

名前を付けてプロジェクトを保存し、計算を実行する。 計算が終わったら、保存してプロジェクトを閉じます。

GELATOによる仮想トレーサーの追跡計算

ソルバの選択

iRICの起動画面から、[新しいプロジェクト]を選ぶと表示されるソルバの選択画面で [GELATOとても便利な多機能トレーサー追跡ツール] を選択して[OK]を押す。

_images/024.png

:ソルバーの選択

格子のインポート

オブジェクトブラウザーの[格子(データなし)]を右クリック して、[インポート]をクリックする。

_images/025.png

:ソルバーの選択

Case1.cgn を選択する。

_images/026.png

:インポートするファイルの選択

地形データの確認

座標系を設定する。 メニューより[ ファイル ] → [ プロパティ] を選択する。

_images/027.png

:プロパティの選択

プロジェクトプロパティ画面より、座標系の [ 編集 ] を選択する。

_images/028.png

:プロジェクトプロパティ

座標系の選択画面より、検索に [ japan ] を入力し、[ EPSG:・・・CSVI ] を選択する。

_images/029.png

:座標系の選択

オブジェクトブラウザより、背景画像(インターネット)の国土地理院(標準地図)を選択する。

_images/030.png

:背景画像

GELATOによるトレーサー追跡計算
1) 計算条件設定

計算条件を示す。

_images/031.png

:基本設定

_images/032.png

:cgnファイル選択

_images/033.png

:軌跡表示を行う特別トレーサー投入条件

_images/034.png

:乱れの影響

2) 計算の実行

ファイルをプロジェクトで保存し、計算を実行する。

3) 計算結果の表示

[計算結果]より、[新しい可視化ウィンドウ(2D)]を開き、 [背景画像(インターネット)]から[ 国土地理院(標準地図)]を選択する。

_images/035.png

:背景画像

オブジェクトブラウザより、ポリゴンの Trajectory を右クリックし、 プロパティを選択する。

_images/036.png

:ポリゴンのプロパティ

ポリゴン設定画面より、[ 線の幅 ] に 3 を入力する。

_images/037.png

:ポリゴン設定

オブジェクトブラウザより、[ スカラー(格子点)] の[ Velocity ] を選択し、 右クリックよりプロパティを選択する。 スカラー設定画面より、値を入力し、最小値以下を描画のチェックを外す。

_images/038.png

:スカラー設定

以上より、浮子投下機より投下したトレーサーの軌跡の計算結果を示す。

_images/039.png

:トレーサーの軌跡表示

_images/tracers.gif

: トレーサーの軌跡アニメーション

参考文献

[1] Frank Engelund: Flow and Bed Topography in Channel Bends, Journal of the Hydraulics Division, 1974, Vol. 100, Issue 11, Pg. 1631-1648

[2] Takara Okitsu,Toshiki Iwasaki,Tomoko Kyuka andYasuyuki Shimizu: The Role of Large-Scale Bedforms in Driftwood Storage Mechanism in Rivers, Water 2021, 13(6), 811

_images/yasu.png
_images/iric.jpg