趣味で計算流砂水理

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

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

MENU

OpenFoam

C++

この前、C++の話をしていたので、OpenFoamでも使ってみようかなと思います。

Tutorialでダムブレークがあったので回して見ました。

f:id:SedimentHydraulics:20170610214456p:plain

Linuxで使うのでインストールがちょっとめんどくさいですが、 それなりに使えるんですね。

自分たちが開発したものと、OpenFoamでの結果と比較できると説得力が増すかなと思います。

RE3:pygridgen-c

pygridgen-cのwindows

何とかコンパイルまでは行ったのですが、pythonから呼んだときにエラーが出ます。試しに32bit環境で動かすと何故か上手く行きます。

いろいろ調べているとctypesに32bitと64bitで差がありそうです。元のプログラムがpython側でしっかりと型宣言していないため、このあたりを丁寧に修正する必要がありそうです。 ただ、c++をよく分かってないので、ちょっと困ってます。ダブルポインタとかあるし。

その他

  • モダンなc++が書きたい気分です。
  • 久しぶりに直交曲線の計算をやったら、デカルトで解けなったのがすんなり解けてびっくりです。やっぱり、実河川の問題では境界適合格子は必要かもしれないですね。

RE2:pygridgen-c

windows環境でインストールを試みましたが、どうも駄目です。というか、私がmsysを使いこなせてないです。

msys環境下で順番にconfigure - make installを行っていますが、 nearest neighbors、CSAをインストール後、gridutilsのconfigure時にそれらにリンクさせるときにうまくいかないです。nn,csaは、/usr/localにインストールされており、パスも通っていますが、confiureのときにリンクしません。

ただ、インストールできれば、windowsでも問題なく動くと思います。

また、時間をみてチャレンジします。

Re:pygridgen-c

インストー

下記のページでインストールしを試みました。

https://github.com/hetland/pygridgen/blob/master/doc/INSTALL_OSX.md

ドキュメント

教えてもらった「add_focus」で検索すると、下記のページがでてきました。

https://phobson.github.io/pygridgen/tutorial/basics.html?highlight=add_focus

中盤の所が参考になりそうです。

  • 「pos」はfocusさせる所の相対位置で0~1の間で取る値。
  • 「x」or「y」はx方向もしくはy方向の選択
  • 「factor」はscalling factorとのことですが、ちょっと理解しづらい・・・。
  • 「extent」はfocusさせる影響範囲のパラメータ

簡単なモデルで感度を見れば予想がつきそうですが、今の所、Macにインストールできてません。。。

いろんなバージョンが入ってるので、そこらへんの管理がザルになってて、おかしくなってます。 最近再インストールすべきか迷ってます。

ちょっと頑張ってみます。

Windowsへのインストー

Windowsでは入れられるんでしょうか?

会社PCのCygwinで試そうとしましたが、うまくいきませんでした。

何かご存知でしたら、ご教授下さい。

gridgen-c

久しぶりにgridgen-cを使ってみました. 同じものですが,githubに上がってました.

その中にpythonのフロントエンドとしてpygridgenというものが追加されておりました.

さらにその中で中段くらいに記載されているadd_focusという機能が追加されています.メッシュを切るときにフォーカスする箇所をしてするようなんですが,イマイチ意味がわかりません.ちなみにドキュメントはこれです.

どうでしょう?理解できますか?

CQ2DF model + vegetation

面白いアイデアですね。 問題があるとしたら、渦動粘性係数の空間分布でしょうか。乱流モデルの影響がどこまで効くかですね。 時間をみてやってみます。

たまたまですが、先日ある方と清水先生の以下の論文を話していました。

https://www.jstage.jst.go.jp/article/prohe1990/41/0/41_0_845/_pdf

植生域の水深平均のLESの計算ですが、面白いところは、植生による乱れの取り扱いです。

1wayモデルなので、植生によって生じる乱れによる流れ場への影響は考慮できないですが、比較的荒いメッシュでLESを計算することにより、生成、消失がコントロールボリューム内で釣り合う、つまり局所平衡を仮定してすることにより、1wayながらも2way的な乱れエネルギーの収支を意識しているとのことを当時話していたらしいです。

逆に、植生の直径程度の小さい格子にした場合、完全な1wayになってしまうので、収支がアンバランスになるということです 。

これって粒子単独運動の計算でも同様で、dt内での粒子の移動距離を考慮した格子サイズにしないと乱れエネルギーの収支がおかしくなるようです。

となるとLES+DEMで粒子径より細かいメッシュで計算している方がいたような。。。

乱流の話はまた後日。