CFD-DEMのLIGGGHTSインストール

#LIGGGHTSのインストール
インストールの手順書がわかりづらかったので、残します。
環境はUbuntu 18.04。

まずは、githubからLIGGGHTSを入手。

```
$ git clone https://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git
```

確認する。

```
$ cd LIGGGHTS-PUBLIC
$ git pull
Already up to date.
```

大丈夫そう。
並列化計算等のためにopneMPIを入れる。あと、可視化のためにvtkも。

```
$ sudo apt-get install openmpi-bin libopenmpi-dev libvtk6.3 libvtk6-dev
```

ここからインストールしていく。

```
$ cd src
$ make auto
Generating model list, this could take a moment...
You have 3240 model combinations. (limit = 1200)
Some model combinations are skipped automatically. You may add missing combinations by yourself to 'style_contact_model_user.whitelist'.
Creating list of contact models completed.
...
>>> WARNING <<<
Created MAKE/Makefile.user for the first time. Please check that the options in that file are set correctly.
...
   text	   data	    bss	    dec	    hex	filename
8604248	 234488	   1088	8839824	 86e290	../lmp_auto
```

結構長かった。
警告が多かったが動いてくれたみたい。
vtkのインストールをLIGGGHTSにする必要があるようです。12行目をONにするのと、120行目と122行目をコメントアウトから直してパスを書き直す。

```
$ vi MAKE/Makefile.user
...
 11 # then set the following to "ON" and uncomment it to allow for an automatic download and compilation
 12 AUTOINSTALL_VTK = "ON"
...
119 # Path that contains the includes (vtkVersion.h)
120 VTK_INC_USR= /LIGGGHTS-PUBLICまでのパス/lib/vtk/install/include/vtk-8.0
121 # Path that contains the VTK libraries
122 VTK_LIB_USR= /LIGGGHTS-PUBLICまでのパス/lib/vtk/install/lib
...
```

そして、もう一度

```
$ make auto
```

シンボリックリンクを作ります。

```
$ sudo ln -s lmp_auto /usr/locla/bin
$ export LPP_DIR=/パス/LIGGGHTS-PUBLIC/
```

可視化用のパッケージをLIGGGHTS直下に入れる。

```
$ cd ../
$ git clone https://github.com/CFDEMproject/LPP.git
```

インストールしていく。

```
$ cd LPP
$ ./install
```

うまく行かないと思ったらパスの指定がいるそう。LPP直下にした。

```
$ ./install.sh -p ./
```

反映させる?その後またbashからでる。

```
$ bash
$ exit
```

確認する。

```
$ lpp
usage: pizza [options] dump.example
 where dump.example is a filename or regular expression passing all relevant dump files to pizza.
Important command line options:
-o fname    : define output file name (default is liggghts + timestep number)
--chunksize : sets the chunksize, default: 8
--cpunum    : sets the number of processes to start, default (and maximum) is the amout of cpu cores avaliable at your system
--help      : writes this help message and exits
--no-overwrite: disables overwriting of already post-processed files.
For details, read README_GRANULAR.txt
```

良さそう。設定する。一番下のpizzaはいらないかも。

```
$ export LPP_DIR=/$LPP_DIR/
$ export LPP_NPROCS=4
$ export LPP_CHUNKSIZE=1
$ alias lpp='python -i $LPP_DIR/lpp.py --cpunum $LPP_NPROCS --chunksize $LPP_CHUNKSIZE'
$ alias pizza='python -i $LPP_DIR/pizza.py'
```

まだ続きがあった。可視化には以下のパッケージが必要らしい。

```
$ sudo apt-get install python-pwm python-pmw-doc
$ sudo apt-get install python-imaging-tk python-imaging-tk-dbg
$ sudo apt-get install python-opengl

```

一応、インストール終了。

#Tutorial
やってみます。まず、lmp_autoをコピーして移動。

```
$ cp lmp_auto ../examples/LIGGGHTS/Tutorials_public/chute_wear
$ cd ../examples/LIGGGHTS/Tutorials_public/chute_wear/
```

MPIで実行する。

```
$ mpirun -np 4 lmp_auto < in.chute_wear
LIGGGHTS (Version LIGGGHTS-PUBLIC 3.8.0, compiled 2019-09-05-17:22:26 by abeken, git commit ce1931e377a2945e3fa25dae0eebc1f697009a32)
Created orthogonal box = (-0.5 -0.2 -0.4) to (0.1 0.2 0.15)
  2 by 1 by 2 MPI processor grid

Reading STL file 'meshes/simple_chute.stl' (mesh processing step 1/3) 

Reading STL file 'meshes/insertion_face.stl' (mesh processing step 1/3) 
...
```

計算できた。
lmp_autoに後処理も含んでいるのか？
そのまま可視化へ。paraviewを使うので、ない場合は検索すればすぐでるのでインストールする。

```
$ cd post
$ paraview
```

ファイルからvtkを開いてapplyし、再生すると粒子が流れる様子が見えた。

![Screenshot from 2019-09-05 20-46-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303402/0324587c-176c-8ab5-9d95-f2c796e4d82d.png)