SPH でも弾塑性を扱いたい、ということで PersianSPH の登場です。
まずは、インストール。HPに従って進めます。
https://www.m2clab.com/persiansph/installation
$ wget "https://github.com/mghkorzani/persiansph/blob/master/persiansph_install.sh"
$ bash persiansph_install.sh
ここで止まります。2年前に更新が止まっているようですので、仕方なし。
GitHub のリポジトリにあるコードを zip で落として展開。直下に persiansph_install.sh があるので、これを使いましょう。
$ bash persiansph_install.sh
Installation is completed.
Close all terminal windows and open a new one to take effect the defined environment variables
Please refer to the tutorial to run a simulation.
persiansph フォルダが作成されます。その中の、CmakeLists.txt を書き換えて目的の cpp ファイルを指定(サンプルから一つを選択)。
その後、新しいフォルダを作り、そこからcmake。
$ mkdir (New Path)
$ cd (New Path)
$ cmake $SPH
$ make
実行ファイルが(New Path)に作成されましたので、これを動かすと計算開始。フォルダ内に output ファイルが書き込まれます。ファイル形式は hdf5 と xmf。表示は Visit or ParaView。hdf5 は読めませんでしたが、xmf は両者とも OK でした(ParaView では XDMF Reader or Xdmf3Reader)。2D だとVisitのほうが見やすいかな。
続きは後日。
**********************
20220603修正
ParaView では XDMF Reader が正解でした。Xdmf3フィルターをかけた場合に正常に表示されない場合が出てきました。
hdf5 と xmf はセットでした。xmfを参照し、hdf5からデータを取り出しているようです。