趣味で計算流砂水理

Computational Sediment Hydraulics for Fun

粒度分布

吸収境界

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

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

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

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

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

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

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

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

この時期にPCが壊れました

surface proが壊れました.正確には壊れかけです.

その状況が信じがたいですが,バッテリーの熱膨張でモニタが浮いてきました.webで調べるとタブレットではよくあるみたいです. 危険らしく早急に修理が必要とのことです.

2-3週間かかるらしいのですが,その間PCが無いのはまずいので速攻新機種を発注しました.let' noteが納品に時間がかかるのでvaioです.

やっぱり本気のPCにタブレットは駄目かも.

ここ最近,fortranで計算を回しながら,jupyterでグラフを作りながら,レポートを書くにみたいなことをずっとやってたからかな.常に本体が持てないくらい熱かったしな...

windows intel fortran 環境でのcmakeによるスタックサイズの設定

プライベートも仕事も忙しくてなかなか書けてません.

忘備録的に.

コマンドラインで打つときは,

ifort *** /fast /F10000000

的な感じですが,cmakeで

set (CMAKE_Fortran_FLAGS_RELEASE "/fast /F10000000")

だと駄目です.

正しくは

set (CMAKE_Fortran_FLAGS_RELEASE "/fast")
set (CMAKE_EXE_LINKER_FLAGS "/STACK:10000000" )

です.

地味に結構悩みました.

スタックサイズのチェック方法も忘れないようにリンクを張っておきます.

http://uzulla.hateblo.jp/entry/2013/08/14/230551

はてブロってcmakeもシンタックスハイライトがつくみたいです.