iRIC/Nays2DH:とりあえず水を流してみよう

Nays2DH

まず難しいことは後回しにして、水を流してみましょう。Nays2DHの公式事例集の冒頭には、蛇行水路を簡単に作って河床変動をもサクッと計算する事例が掲載されています。デモとしては素晴らしいのですが、河床地形を作成するプロセスを含んでいませんので、実河川に適用しようとした時に???となってしまいます。ここでは、河床地形の作成プロセスをきちんと含めた上で極限まで単純な水路を作ってみます。別途説明している非構造格子のRiver2Dソルバーの事例と同じ水路の計算を行いますので、そちらと比較してもらっても面白いと思います。

iRICはフリーの河川数値シミュレーションプラットフォームです。

iRICを起動し、Nays2DHソルバーを選ぶ

iRICを起動し、Nays2DHソルバーを選ぶと、下図のような状態になっているはずです。

Nays2DHソルバのプリプロセッサウインドウ
Nays2DHソルバのプリプロセッサウインドウ

まずは川底をつくる

下図左のようにオブジェクトブラウザー内の「地形高(m)」で右ボタンクリックし、「追加」ー「ポリゴンデータ」を選びます。すると、下図右のようにクリックで定義し、ダブルクリックか改行で完了するよう操作方法を教えてくれます。

地理情報の地形高をポリゴンで作成する
地理情報の地形高をポリゴンで作成する

とりあえず4点クリックして四角形を作りましょう。だいたい下図のように見えれば大丈夫です。ダブルクリックか改行すると「ポリゴンの値を入力してください」と言われます。最初から0が入っていると思いますので、そのままOKします。四角形は緑になりましたね?これで標高0mの平たい川底ができました。(ちなみに、これは川を上から見た状態です。横から見た状態ではありませんのでお間違えなきよう。)

ポリゴンを描き、Elevationを入力する
ポリゴンを描き、Elevationを入力する

川底の寸法を整える

ポリゴン上で右ボタンクリックして「座標の編集」メニューを選びます。すると下図中央の「ポリゴンの頂点座標」が現れますので、下図右のように数字を入れましょう。入れ終わったらOKします。もし右ボタンクリックしても「座標の編集」が現れないときは、ポリゴンが選択されていないかもしれません。オブジェクトブラウザーで「地形高(m)」の下にあるポリゴンデータ1が選択されていることを確認しましょう。

川底の寸法を整える
川底の寸法を整える

たぶんポリゴンの大きさが変わって画面に収まらなくなったと思いますので、ツールバーの「フィット」ボタン(左から8番目の虫眼鏡内に四角形アイコン)を押してください。下図のようになるはずです。川底(河床)が平らな幅10m、長さ100mぐらいの水路を作るつもりなのですが、計算したい範囲全体に確実に標高値がないとエラーになるので、少し大きめの川底を準備したのです。

川底の作成結果
川底の作成結果

川底の粗さを決める

水が流れる速さを決める要素として、川底の傾き(勾配)と川底の粗さ(粗度)があることは簡単に想像できるでしょう?川底が粗いと流れはゆっくりになり、川底がツルツルだと流れは速くなります。その粗さを決めるために、オブジェクトブラウザー内の「マニングの粗度係数」を右ボタンクリックします。「地形高(m)」の時とまったく同じように、「地形高(m)」ポリゴンを囲うように四角形を作ります。(囲ってあれば形は歪んでいてもかまいません。)ダブルクリックするとマニングの粗度係数の値を入れるように言われますが、おそらく0.003と表示されていると思いますので0.01541に変更します。これは、River2Dの計算で用いた粗度高さ0.003を、換算式でマニングの粗度係数に変換したものです。

マニングの粗度係数の定義
マニングの粗度係数の定義

マニングの粗度係数はこれで定義されました。今後の作業に邪魔なので、オブジェクトブラウザー内の「マニングの粗度係数」のチェックを外して非表示にしておいてください。

計算格子をつくる

下図左のように格子生成条件を右ボタンクリックし、「格子生成アルゴリズムの選択」を選ぶと、下図右のようにたくさんのアルゴリズムが現れます。Nays2DHは構造格子を用いるソルバーであり、非構造格子のRiver2Dでは「ポリゴン形状から生成」の1つしかなかったのとは対照的です。アルゴリズムのそれぞれに特徴がありますが、ここでは単純な「矩形領域の格子を作成」を使ってみましょう。

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

すると、「地形高」や「マニングの粗度係数」と同じようにポリゴンを描く画面になりますので、川底の内部に四角形を描きます。次に、描いたポリゴンが選択されていることを確認してから右ボタンクリックで「格子生成」を選び、格子生成ダイアログで赤囲みの数字を入力してOKしましょう。地理情報を格子属性にマッピングすれば、幅10m、長さ100m、川底は標高0mで真っ平、3mmの砂が敷き詰められた水路ができました。

矩形の格子領域を描いて格子生成ダイアログを開き(0,0)-(100,10)の範囲に一辺1mの格子を生成する
矩形の格子領域を描いて格子生成ダイアログを開き(0,0)-(100,10)の範囲に一辺1mの格子を生成する

完成した計算格子は以下のようになります。

完成した計算格子
完成した計算格子

格子への属性のマッピング

メニューから「格子」ー「属性のマッピング」ー「実行」を選び、「全てチェック」してOKします。実際に設定したのは「地形高(m)」、「マニングの粗度係数」だけですが、念のためです。

格子への属性のマッピング
格子への属性のマッピング

計算条件の設定

「計算条件」メニューをクリックして「計算条件」ダイアログを開きます。

ソルバー・タイプタブと境界条件タブ

ソルバー・タイプは単純な「スタンダード」とし、River2Dの計算と比べるためにRiver2Dではできない河床変動計算は「無効」とします。移流項の差分方法はデフォルトの「CIP法」のままです。

周期境界条件は、同じ形状の河道が上下にも続いている状態を表しますが、River2Dにはありませんので「無効」とします。下流端水位の規定値は「等流計算」ですが、River2Dの計算と同様「固定値」の「1」を与えました。

上流端の流速分布の規定値も「等流計算」ですが、河床勾配がゼロですので等流計算ができない(川底が平らだと水が流れる力が生じない)と考え、「上流端水深から逆算」を選びました。

計算条件のソルバータイプタブと境界条件タブ
計算条件のソルバータイプタブと境界条件タブ

上図右下から1/3付近に上流端流量と下流端水位の時間変化が、さりげなくひっそりと置かれていますが、境界条件と計算時間を定める最重要設定項目です。忘れずEditをクリックしましょう。すると、下図のダイアログが開きます。

追加ボタンを2回押して、時間を0と5000にします。5000は計算時間(秒:境界条件タブで指定)になります。また流量は上流端流量、水位は下流端水位です。

このダイアログで与える下流端水位は、境界条件タブの2番目の項目である下流端水位の設定が「時系列データで与える」の場合に利用されます。この例では「固定値」で「1m」を与えた本稿ではこのダイアログの水位は使用されません。

上流端流量と下流端水位の時間変化ダイアログ
上流端流量と下流端水位の時間変化ダイアログ

実際のところ、この計算では3000秒でも平衡に達していましたので、計算時間を短くしても大丈夫です。

時間タブと初期水面形タブ

時間タブはすべて規定値のままとしています。

初期水面形タブの初期水面形の規定値は「等流計算」ですが、河床勾配がゼロなので計算できないことを考え、「一定勾配(直線)」を選んで「0.001」を設定しています。計算開始時点では100m上流の水位は10cm高くなるということです。

時間タブと初期水面形タブ
時間タブと初期水面形タブ

その他のタブ

ソルバー・タイプがスタンダードの場合、以上の他に河床材料タブと植生タブを設定できますが、すべて規定値のままにしています。

ことねちゃん
ことねちゃん

ねえ、格子のどこが上流でどこが下流なの?River2Dだと境界条件をせっていする場所をポリゴンで指定したけど、Nays2DHではやらなくていいの?

すだくん
すだくん

ことねちゃん、よく気がついたね。Nays2DHでは構造格子(i,j)のiが流下方向、jが横断方向を表していて、i=1の端が上流、iが最大になる端が下流になるよ!だから格子を作る時に上流端、下流端も決まっているんだ。

プロジェクトを保存する

ここまでで計算の準備はすべて整いましたので、プロジェクトを保存しましょう。メニューの「ファイル」をクリックすると、

  • 名前を付けてファイルに保存(*.ipro)…
  • 名前をつけてプロジェクトに保存

の2つの保存があります。

前者はすべてのデータが.iproという一つのファイルとして保存されるので、他の人とデータをやりとりするとき便利なのですが、対応していないソルバーがあります。後者は、新しいフォルダを作ってその中にいろいろなデータを収めます。SKラボは、.iproを使わないことを強くお勧めします。.iproを使っていて動作がおかしいときは、まずここを疑いましょう。

また、ファイルを保存する場所にも注意が必要です。日本語やスペースが混じったフォルダ名に対応していないソルバーがあります。SKラボは、C:\iricというフォルダを作って、その中に個々のプロジェクトのフォルダを保存することを強くお勧めします。

さて、「名前をつけてプロジェクトに保存」を選ぶと、フォルダを選択する画面になりますので、C:¥iricの中に新しい空のフォルダを作ります。そのフォルダを選んだら「フォルダーの選択」をクリックします。これでプロジェクトが保存されました。

いよいよ計算開始!

それでは、「実行」ボタンをクリックしてみましょう。すると、プロジェクトを保存せよと言われますが、もう保存したので「いいえ」で構いません。保存していないなら「はい」で保存しましょう。数分で計算は終わるはずです。

実行してみよう
実行してみよう

可視化ウインドウ(2D)を開いてみよう

画面右上の「新しい可視化ウインドウ(2D)を開く」ボタンが虹色に変わっているはずです。クリックすると可視化ウインドウが開きますが、格子が描かれているだけです。

可視化ウインドウを開く
可視化ウインドウを開く

何を表示するかは、可視化ウインドウ左端のオブジェクトブラウザーにチェックを入れて選択します。下図では、流速(Velocity)、水深(Depth)、水深とベクトル形式の流速を表示させています。幅10m、深さ1mの水路に10m3/sの流量が流れるわけですから、流速は10m3/s÷幅10m÷深さ1m=1m/sになるはずですが、確かにそうなっています。

少し誤差があるように見えるのは、右側の水位が少し高いからです。左端の水位は1mに固定されており、川底は水平なのですから、右側の水位が少し高くならないと水が流れません。その結果、右側の水深が少し深くなるので、流速は少し小さくなるはずです。計算結果を見ると、確かにそのようになっていますね。また当然のことですが、River2Dの計算結果とも一致しています。

計算結果の可視化
計算結果の可視化

可視化ウインドウはいろいろな表示ができますので、ヘルプからマニュアルを開いてご自身で試してみてください。

いかがだったでしょうか。難しかったですか?それとも思ったより簡単だったでしょうか?難しかった方も、すぐに慣れますから恐れないでください。興味を持って楽しんでいただけたら幸いです。Have fun!

コメント

タイトルとURLをコピーしました