趣味で計算流砂水理

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

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

MENU

Cross section Quasi 2D Flow Model

githubに公開しました。

https://github.com/computational-sediment-hyd/CQ2DF

fig

windows+proxy環境下でのSourceTreeによるgithubへのアップロード

やり方がわかれば一瞬ですが、結構大変でした。 忘れないためにもメモ的に置いておきます。

proxyの設定

proxy環境下でのsshは多分難しいです。なのでhttpで。以下のサイトを参考にしました。

http://sushichop.blogspot.jp/2013/09/git.html

gitで設定すれば、SourceTreeに反映されます。

リトポロジの作成⇒クローンの作成⇒コミット

以下を参照しました。

http://qiita.com/naoki85/items/4f44601f1365c18035f4

クローンが上手くいかないとproxyが駄目だと思います。いろいろ試してみて下さい。

その他

  • Git cmd、Git bashUTF-8のため、windows環境だと文字化けしまくりです。UTF-8への変換が必要(chcp 65001)

  • sshは使わないため、鍵は入りませんが一応作ったのでDBに置いておきます。

Cross-sectionQuasi2DFlow

ギッハブ用のモデルとかを整理しました。DBにあるので見て頂けると助かります。windows環境があれば回してもらえるともっと助かります。

READMEとか結構頑張りました。

問題がなければ上げます。

英語にしたときに違和感があり、名前をCross-sectionQuasi2DFlowに変えました。

Section Quasi 2D Model:dll版が良いのか?

ライセンスはMITで行こうと思います。

リリース版として悩んでいるのが、現状のdll版がそうじゃないものかです。

計算の流れは、格子生成(python)⇒流速場の計算(fortran dll)⇒図化(python)ですが、個別の実行ファイルを作成し、テキストファイル経由でやり取りするものも作れます。 でも、dll版だとpython一発でOKです。dll版のデメリットはwindows限定のところです。

どう思いますか?

ライセンス

ライセンスについて

もし、ソフトウェアとして組み込む予定があるのならMITがよろしいかと思います。

なければGPLで良いかと。

何を目的にするかということもありますが、あのプログラムは非常に勉強になると思います。 また、世の中の河川の計算のほとんどは、ソースを見たことがありません。 もちろん、よくわからない人があーだ、こーだ言う可能性があるので、晒せないのはわかりますが・・・。

それでも、みんなが勉強する意味で公開するのは良いかなと。

あまり考えていないのであれば、MITですかね。

VBA

以前、2007と2013で差があることを知りました。 関数が変わっているのですかね・・・。グラフに関する関数だったと記憶しています。

正直、VBAは生き残るとは思いますが、MSがVBに力を入れているとは思えません。。。

最近、可視化についてはgnuplotとRを使ってます。 (なぜmatplotlibではないのかはさておき)

ただ、ここら辺は時事刻々と変化することを受け入れないと、 プログラムは書けないと感じてます。

pythonは最たるものだと思いますが(笑)。

EXCELのVBAが。。。

ふと気付いたのですが、Excel 2016に変更してからExcel 2007で作っていたマクロの中でユーザーフォームを使ってグラフをコントロールするものがすべて動かないです。

多分描画速度の低下(データ更新時処理のアルゴリズムが変わった?)の影響かと思いますが、いろいろ試しましたが駄目っぽいです。作り込んだものが多いのでショックです。

いっその事、これを気にExcel GUIはやめようかと思い始めました。

グラフを使ったGUIってどうゆうものを使ってますか?

ライセンスの話

例のSection Quasi 2Dモデルについて、Githubで公開しようかなと考えているのですが、そろそろライセンスのことも気にしたほうが良いかもしれないと思ってます。

どうしましょうか。MITかGPLかと思いますが、GPLにするほど大したものじゃないですが悩ましいです。

作者はこのHPにします。ミスがあればその都度gitで直していこうかと思います。

また、jupyterの部分はpythonのコードに変更しようと思います。GUIは作らないです。

流砂の話とか

  • fortranpythonですが、calSectionProfileとinitializeを呼んでます。いろいろ試していると、fortranの共有部分でallocateしたものが、ずっと残ってしまうので、計算が終わるごとにdeallocateしたほうが良さそうです。また、まとめて報告します。

  • XeonGPUとか使いたいのですが、まだまだ計算の力が追いついてないです。すごいコードができから回したいですね。

  • 今年最後になると思いますが、ゆっくりだけどそれなりコードを書いた一年でした。徐々にストックも溜まってきてうれしいです。来年も頑張ります。

断面準二次元モデルの修正方針

  • 自分の中での反省ですが、自分の中では粗度係数はパラメータじゃないと言ってきたのですが、このモデルでは相当粗度を同化するとか言ってるので矛盾していることに気付きました。
  • そこで、相当粗度は、例えば、黒木・岸のΦ-τ*の関係等から断面平均的に小規模河床波に応じた抵抗を設定し、それより流速場を計算し、観測結果との比較により、duneっぽいなとかを議論できるモデルに変更しようと思います。

流砂の話

  • 最近感じるのですが、流砂はDEMじゃ無理だな思います。というのも、河川流では粘性底層の流れでさえも未だに解けていないため、掃流砂や浮遊砂のように明らかに流れ場に影響を与えるようなものに対して、その間隙流を解析することは不可能だと思うからです。
  • 仮に河床にNon-Slip条件を与えて解けるモデルがあれば、粒子の面にもNonslip条件を与えて(IB法とか面白そう)、流れ場とのインタラクションが評価できるので可能と思いますが、流体力学の分野でもまだまだなので、ちょっと遠いかなと思います。
  • 逆にwashloadのような流れ場に影響与えないものはDEMでも可能かと思います。
  • 当面は、掃流砂・浮遊砂は連続体しかないと思ってます。昔流行っていた二層モデルなんかが良いような気がします。
  • 先日ボスと話していたら、流砂研究が人気のない要因は、意味の分からない経験則ばかりだからだと言っていて、確かに流砂の運動方程式がないのはまずいなと思いました。微分方程式がないので、例えば計算で精度を上げようとしても無理ですし、楽しみもないです。流砂は、河道管理の最重要課題なので、何とかしたいものですね。

平面二次元モデル

  • 数ヶ月前の話ですが、例のコロケート格子で流速0の場合に凹凸が消せない件ですが、何かアイデアは浮かびましたでしょうか。私は、どう考えても分からないので非物理的なフィルタで消すことしか思い浮かびません。次回にでも相談させて下さい。