趣味で計算流砂水理

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

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

MENU

はてブロでbokeh

bokehWelcome to Bokeh — Bokeh 0.13.0 documentationというD3.jsのpythonラッパーで遊んでみました.

D3.jsよりは楽で,pythonで書いたものをhtmlで吐き出す形式です. Web上で解析結果をインタラクティブに表示するのに使えそうです.

これとは別にplotlyPython Graphing Library, Plotlyというのが並んで有名らしいです.

一次元河床変動計算,掃流砂のみ混合粒径:コードは世界最短?

やっとできました.

計算条件

  • 境界条件:周期境界条件
  • 平均河床勾配:1/500
  • 水深1.4m
  • 粒径:7粒径区分,うち2粒径が動かない粒径(コード参照)
  • dx:200m,dt:1sec
  • 初期条件:一部区間に最大粒径の2倍程度のマウンドを設ける

計算結果と考察

 計算があってると仮定します.

f:id:SedimentHydraulics:20180719190217g:plain

  • マウンド部分が粗粒化が進んで,動かなくなります.単一粒径では起こらない現象です.
  • マウンド以外は分級が生じないです.ほとんど初期材料と構成が変わりません.分級は流れを制限する要因(河床勾配の変化等)がないと生じないと言えます.
  • 粒径によって伝搬速度が異なる.

コード

  • こんなにスッキリ書けるとは思いませんでした.まだまだ短く書けますが,可読性を考えてこんなところにしておきました.
  • あまり自信がないです.チェックしてください.

1D-bed-variation-model-of-sediment-mixtures

gistにもライセンスを

以前何かで読んだので書いてみました.beautifulsoupでおしゃれに.

粒度分布

吸収境界

地震動の吸収境界は、次のものが多く使われていました。

http://www.gms.bosai.go.jp/GMS/doc/B5766511.pdf

吸収境界の起債はp655以降にあります。 基本的には平面方向の地震動については吸収してもらわないといけないので、 便宜上、減衰させる方法になっています。

検討されている問題に対しては、 可能であれば物理的に境界を設定する方がよいかと思います。

河床材料粒度分布の一般化

論文

情報ありがとうございます。粒度分布の一般化については、次のものがありました。

https://www.jstage.jst.go.jp/article/jjseg1960/39/4/39_4_352/_pdf

河床材料ではありませんが、対数正規分布で近似していました。

水理公式集の例題プログラム集の北大の清水先生の1次元河床変動解析でも、 河床材料粒度分布を対数正規分布で近似してました。

藤田先生の論文「混合砂礫河床材料の空隙に関するシミュレーションモデル」でも、 対数正規分布で近似されていました(読んでるはずなのにすっかり忘れておりました)

https://www.jstage.jst.go.jp/article/prohe1990/50/0/50_0_1021/_pdf/-char/ja

こういった粒度分布を一般化することに意味があるかという疑問はありますが、 どうも対数正規分布であれば、平均と分散(3母数であれば、加えて下限)で概ね表現できるというのは、 面白いかなと思ってます。

課題

少し考えてみたのですが、次のようなものがあるような気がしています。

  • 対数正規分布として近似できるような状態とは?
  • 洪水中はどのようになっているのか?
  • 混合粒径で流砂量公式を適用した場合の流砂量の粒度分布(平衡給砂量)って?

河床材料粒度分布をパラメトリック(分布形を仮定してパラメータを推定)に決められるのならば、 意味があるのかなとは考えています。

粒度分布のタイプ

以前読んだ京大の論文を思い出しました.

http://www.dpri.kyoto-u.ac.jp/nenpo/no50/ronbunB/a50b0p64.pdf

分布系を決定するのはなかなか難しいかもしれないですね. 結構いろんな分布があるようです.

過去のデータより分布型を推定することが必要ですが,それが空間的に決めるのが良いか時期的に決めるのが良いのかよくわからないですね.

論文を見る限り,河川ごととか勾配ごととかに決めるのは難しそうです.

docker for windowsで、ubuntuのデスクトップ(GUI)を作りたい

docker for windowsで、ubuntuのデスクトップ(GUI)を作りたいけど、失敗したという話です。

延べ2日間くらいやりましたが、駄目でした。

docker for windowsのインストール

特に、何の問題もないですが、プロキシ環境なので、その設定だけです。

dockerとubuntuのそれぞれで設定が必要です。

ubuntuデスクトップに接続できない

xrdpによる方法

https://qiita.com/umchifre/items/17947016c236b568951d を参考に作ってみました。

環境構築まではほぼ問題なし。 port:3389がwindowsリモートデスクトップで使われているので、13389に変更しました。

リモートデスクトップから接続を試みましたが駄目です。 1台のPCなので、IPがよくわからないです。

vncによる方法

http://ivis-mynikki.blogspot.jp/2017/04/windowsdocker.html を参考に作ってみました。

こっちも環境構築は問題です。 RealVNCから接続する際に上手くプロキシが抜けれないです。


もし、ご存知でしたら教えて下さい。

新規PCの導入:備忘録

ようやく時間ができて、新規PCのセットアップが終わりました。 最近色々な事情でPCが壊れるので慣れてきました。

備忘録的にソフトウェア関係を列挙しておきます。

まずは

firefoxDropboxを入れて、firefox syncでブックマーク、パスワード、アドオン、dropboxでデータはすべて移行します。 これで、基本的には大体のことはできます。

私の基本ソフト

VUPでおかしくなった。 https://qiita.com/totto357/items/5d86ee80a654dd9ec95f

https://cutlassfish.wordpress.com/2014/08/12/mingw-w64-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E4%BE%8B/ を参考にx86_64-win32-sehしました。

python

相変わらず面倒くさいのでまとめておきます。

基本はanacondaで

  • "add anaconda to the system PATH environment variable"が非推奨になってる。
  • conda update condaで、4.5.1にするとcondaが壊れる。

環境の移行

  • https://qiita.com/nshinya/items/cb1cffabc3305c907bc5 を参考にやってみようかと思いましたが、駄目でした。
  • 2の方法だと上手くいかない。windowsの問題?
  • 1は絶対駄目、リポジトリのurlを記録しているだけなので、少しで環境(各ライブラリのver.も)が違うとぐちゃぐちゃになります。私の場合、scipyが動かなくなりました。
  • で、たまには環境のリフレッシュも必要なので、一から作りました。

jupyter notebookの設定

これが面倒。


全然足りないですが、とりあえずすぐに使うものはこんな感じですかね。

無反射境界条件

久しぶりに計算にドはまりしました.

例の変分法ですが,厳しい条件のときにどうも感度係数が評価できていないような感じがあり,詳細にチェックしてみた所,ミスをみつけてしまいました.

詳細は省きますが,空間方向の境界で反射していました.0勾配にしていたのですが,ラグランジュ変数が勾配を持つので,全然駄目で数日間悩んで解決せず.

途方に暮れていたときにgoogleが教えてくれたのが,無反射境界条件です.

ふと,openfoamの境界条件を調べてみると, http://www.geocities.jp/penguinitis2002/study/OpenFOAM/noreflect/noreflect.html 無反射境界条件をみつけて,関連する論文を探すと以下を見つけました.

https://www.jstage.jst.go.jp/article/jsces/2003/0/2003_0_20030017/_pdf

http://www.nagare.or.jp/download/noauth.html?d=24-1-g02.pdf&dir=8

後者の理想的なもので,境界条件は特性曲線をしっかり考えないと駄目だということがわかります.特に,周期境界が適用できない非定常乱流では重要です. ここまでやるのは大変なので,前者のゾンマーフェルトの放射条件を入れるだけでほぼ安定するようになります. 河川流だとラフでも問題ないので意識してませんでしたが,勉強になります.

別件ですが,以前デカルト座標系で計算をしたときに下流端の境界条件に苦しみましたが,無反射境界条件を適用すれば,いけそうな気がしてます.

このような新しい数値流体力学の考え方がまとまった本があると良いのですが知りませんか?

これには全然書いてません.

コンピュータによる流体力学

コンピュータによる流体力学