趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

(未解決)測量の高解像度を意識して、浅水流一次元計算でdxをかなり小さくすると上手くいかない件について

スポンサーリンク

今年中に何とかしたかったのですが出来そうに案件です。

浅水流の計算(1D,2D共通)で、メッシュサイズを小さくしすぎると、ある閾値以下になると急に水位が大きくなると問題について、簡易なテストケースにより分析してみました。原因は未解明のままです。

放置しておくと厄介な問題になりそうな気がしています。


TL;DR
  • dxをどんどん小さくして0.5mとした場合に不定流計算の結果が怪しいっぽい
  • その原因は重力項?河床高+水深⇒水位として扱う影響か?
  • この問題は河床変動計算を行う場合、影響が大きいのでは?


モチベーション

近年、直轄管理河川では、河床の面的測量を順次実施されており、0.5~1.0m間隔の河床地形が得られる状況が整いつつあります。 それに合わせて、計算格子をより小さくする必要があると考えられます。

そこで、平面二次元計算でメッシュサイズを小さくしていくとある閾値で急激に水位が上昇する結果が出たため、詳細について一次元で検証してみました。

河床縦断形状のモデル化

一次元計算のためのモデル地形を生成しました。 1/400の河床勾配に基本に、縦断方向に0.5m間隔の格子点を設けて、各点に-10~10cmの乱数を加算した以下の形状を想定しました。

  • 全体図
  • 拡大図
  • 河床地形の生成 aOpen In Colab

  • 図化 a Open In Colab

dxの差異による一次元計算結果の比較

計算方法は過去記事と同様に、不等流計算、不定流計算(コロケート格子)、不定流計算(スタッガード格子)の3手法でテストしました。

3手法ともにdx=0.5、10、100mの3ケースの比較を行っています。dx=10、100mの河床地形は前述の0.5m間隔の格子点より縦断距離が一致する地点を抽出することにより作成しました。

なお、不定流計算では定常となるまで(実時間で3時間程度)繰り返し計算を行い、縦断的に流量が一定であることを確認している。

computational-sediment-hyd.hatenablog.jp

不等流計算

dx=0.5、10、100mの3ケースの平均的な水位は同程度であり、dxが小さいほど河床地形に応答して細かい水位変化が生じていることが分かる。

  • 全体図
  • 拡大図

a Open In Colab

不定流計算(コロケート格子)

dx=10、100mの2ケースと比較して、dx=0.5mの平均水位が0.2m程度大きくなっている。

  • 全体図
  • 拡大図

a Open In Colab

不定流計算(スタッガード格子)

dx=10、100mの2ケースと比較して、dx=0.5mの平均水位が0.1m程度大きくなっている。

  • 全体図
  • 拡大図

a Open In Colab

各計算手法の差異

dx=0.5mにおける3計算手法の水位を比較した。

  • 水位は不等流<不定流:スタッガード<不定流:コロケートの順で大きくなっている。前項の結果を踏まえると、不定流の結果が真値からずれていると想定される。
  • 不等流は、河床の凹凸に逆位相となるような常流の特徴を示しているが、不定流ではその特徴が見られない。
  • 不定流:スタッガードは、河床の凹凸に対して訛ったような水面形を示している。
  • 不定流:コロケートは、不等流と比較して、水面形が若干下流側に位相がずれるような形状となっている。

  • 全体図

  • 拡大図
  • 計算 a Open In Colab
  • 図化 a Open In Colab

まとめ

  • 不定流計算では計算格子が小さくなると計算誤差が大きくなる傾向にある。一方、不等流計算ではその傾向は見られない。
  • その要因は不明であるが、重力項(河床勾配)の影響ではないかと思われる。
  • 一般的にスキームチェックを行う場合、河床勾配はフラットで行うことが多いが、本記事のような急変地形でのテストも必要と考える。

GitHub

github.com

参考書籍

関連記事

  • グラフの作成はHoloviewsを使用

computational-sediment-hyd.hatenablog.jp

  • はてブロへのhtmlグラフの埋め込み

computational-sediment-hyd.hatenablog.jp

computational-sediment-hyd.hatenablog.jp