LiggghtsとOpenfoanのカップリング　チュートリアルの実行

![無題の動画 - Made with Clipchamp.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514546/20758995-0e8a-9027-7702-0dec611d3af8.gif)
前回、LiggghtsとCFDEMのカップリングに向けた環境構築を紹介しました。
今回は構築した環境でチュートリアルを実行していこうと思います。

https://qiita.com/maumu1119/items/f48681340cd0a68e5d84

## チュートリアルの場所
保存先はインストールしたディレクトリにもよりますが、/optにインストールしているのであれば以下の場所にあります。
~~~sh:
cd /opt/CFDEM/CFDEMcoupling-PUBLIC-5.x/tutorials
~~~
チュートリアルは主にソルバーごとにフォルダー分けされています。

- **cfdemPostproc**
  CFDEMのポスト処理用のチュートリアル
- **cdfdemSolverIB**
　境界埋め込み法を使用したソルバーのチュートリアル
- **cfdemSolverPiso**
　pisoFoamを使用したソルバーのチュートリアル
- **cfdemSolverPisoScalar**
　DEMの熱輸送も同時に解くソルバーのチュートリアル
- **cfdemSolverPisoSTM**
- DEMの熱以外のスカラ輸送も同時に解くソルバーのチュートリアル
- **ParScale**
　多孔質DEMを用いて熱や物質移動などの粒子内輸送現象を解くソルバーのチュートリアル

_cdfdemSolverIB_ と _cdfdemSolverPiso_ の使い分けですが、
_cfdemSolverIB_　→　DEM粒子が流体メッシュよりも**大きい**場合
_cdfdemSolverPiso_　→ DEM粒子が流体メッシュよりも**小さい**場合

といった使い方を想定している用です。
CFDとDEMの連成をする場合、手法上、DEM粒子とメッシュサイズには注意する必要があり、
DEM粒子が流体メッシュよりも**大きい**場合の計算に対応していない商用ソルバーもあります。
そのため、流体のメッシュを荒くしないと計算できない事もあるのですが...
_cdfdemSolverIB_ は興味深いですね...　追々調査していこうと思います。

今回ですが、基本となる _cfdemSolverPiso_ のチュートリアルを実施してみたいと思います。

## cfdemSolverPiso
チュートリアルを実施するにあたり以下が必要になります。
- Paraview(可視化用)
- octave(データ処理/グラフ画像出力)
- eog(画像の表示)

octaveとeogがインストールされていない場合は以下のコマンドをインストールできます。(Ubuntu)
~~~sh:
sudo apt-get octave
sudo apt-get eog
~~~
cfdemSolverPisoのフォルダーを確認すると以下のチュートリアルが格納されていますが、
今回は**ErgunTestMPI**を実行してみます。
- ErgunTestMPI
- ErgunTestMPI_cgs
- ErgunTestMPI_restart
- periodicChannel
- settlingTestMPI
- voidfractionTest

ErgunTestMPIを開くと以下のような構成になっています。
- CFD/     (CFDデータフォルダ)
- DEM/   (DEMデータフォルダ)
- Allrun.sh  (実行用スクリプトファイル)
- parCFDDEMrun.sh　(CFDソルバーの実行ファイル)
- parDEMrun.sh　(DEMソルバーの実行ファイル)

Allrun.shを実行すればCFDとDEMの連成解析がスタートします。
今回はそれぞれのソルバー実行ファイルで、以下修正をしたうえで計算を実行してみたいと思います。

~~~sh:parCFDDEMrun.sh
#--------------------------------------------------------------------------------#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPiso"
nrProcs="4"
machineFileName="none"   # yourMachinefileName | none
debugMode="off"          # on | off| strict | profile
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
postproc="true"
#--------------------------------------------------------------------------------#
~~~
nrProcs=使用コア数になるので、環境に合わせて修正します。
postproc = "true" デフォルトは"false"ですが、計算後履歴データがすべて消去されてしますので"true"にします。

~~~sh:parDEMrun.sh
#--------------------------------------------------------------------------------#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPiso"
nrProcs="4"
machineFileName="none"   # yourMachinefileName | none
debugMode="off"          # on | off| strict | profile
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
postproc="false"
#--------------------------------------------------------------------------------#
~~~
nrProcs=使用コア数になるので、環境に合わせて修正します。
これで準備は整ったので、以下コマンドで実行します。
~~~sh
./Allrun.sh
~~~

## ポスト処理
計算が終了するとoctaveとeog使用してグラフが表示されます。
![cfdemSolverPiso_ErgunTestMPI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514546/7b5c4c5b-0c83-68d4-18db-9ebfab9c978d.png)

その後、pythoコンソールで待機状態になっていれば計算終了です。
ポスト処理用の空ファイルを作成し。Paraviewを起動します。

~~~sh:
sudo touch tutorial.foam
paraview
~~~

paraviewが起動したら、作成したからファイルを読み込みます。
CFDとDEMの結果が読み込まれます。Lagurangian/particle cloudをDEM粒子の可視化に使用します。
![WS000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514546/147f5b65-532d-d6b6-52f0-3d1b02223691.jpeg)
Glyphを追加し、以下設定でDEM粒子を可視化できます。
- Glyph Typr >> Sphere
- Scale Array >> r (Node Value)
- Scale Factor >> 1
- Glyph Mode >> All Point
- Coloring >> r ()Node Value
 ![WS000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514546/efa30629-a718-3d7d-bc43-5ffa3649db3a.jpeg)

結果の動画は以下のようになります。
![無題の動画 - Made with Clipchamp.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514546/20758995-0e8a-9027-7702-0dec611d3af8.gif)

## 終わりに
今回はcfdemSolverPiso実行～結果可視化までを実施しました。
実行ファイルについての解説も記事として投稿しようと思います。