趣味で計算流砂水理

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

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

MENU

基本的な計算機の作り方について

linux環境も揃えてるとは… コンパイラは何を使ってますか。gccですか。

基本的なことを教えていただきたいのですが、新規でPCを購入して計算機を作ろうと考えています。

環境はこんな感じをイメージしております。

言語:FortranC++ CPU:Xeon phi 目的:高速化とメモリに乗り切らない場合のためのMPI環境の構築

Cent OS 7.0 + intel compilerが基本だと思っているのですが、これが本当に最良でしょうか?

あと、c++入門の本は何がおすすめでしょうか。

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という機能が追加されています.メッシュを切るときにフォーカスする箇所をしてするようなんですが,イマイチ意味がわかりません.ちなみにドキュメントはこれです.

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