LIGGGHTS のインストール

2012年11月3日

はじめに

DEM 解析ソルバー LIGGGHTS をインストールする。

使用バージョン

LIGGGHTS 2.2, CFDEM 2.4.4, OpenFOAM 2.1.1

LIGGGHTS のインストール

パッケージを ここ (Open Source DEM - Downloads - LIGGGHTS)から入手、あるいは GIT で入手。

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

コンパイルには MPI が必要。Open MPI を用意しておく。

コンパイル。

$ mkdir -p ~/opt/LIGGGHTS
$ mv LIGGGHTS-PUBLIC ~/opt/LIGGGHTS/liggghts-2.2
$ cd ~/opt/LIGGGHTS/liggghts-2.2/src
$ make fedora_fpic

上手くいけば "lmp_fedora_fpic" という実行ファイルができあがる。"fedora" としているが、Linux ならなんでも大丈夫そう。

続いてライブラリを作る。

$ make makelib
$ make -f Makefile.lib fedora_fpic

上手くいけば "liblmp_fedora_fpic.a" という実行ファイルができあがる。

リンクを作る。

$ ln -s lmp_fedora_fpic liggghts
$ ln -s liblmp_fedora_fpic.a liblmp.a

~/.bashrc にパスを追加。

export PATH=~/opt/LIGGGHTS/liggghts-2.2/src:$PATH

ポスト用パッケージのインストール

パッケージを ここ (Open Source DEM - Downloads - Post-processing) から入手。

$ unzip lpp-2012-03-29.zip
$ mv lpp-2012-03-29 ~/opt/LIGGGHTS

~/.bashrc に以下のような設定を追加。

export CFDEM_LPP_DIR=~/opt/LIGGGHTS/lpp-2012-03-29/src
export CFDEM_PIZZA_DIR=$CFDEM_LPP_DIR
alias lpp="python $CFDEM_LPP_DIR/lpp.py"
alias pizza="python $CFDEM_PIZZA_DIR/pizza.py"

サンプルケースの実行

examples にサンプルケースが入っている。この中の conveyor を実行してみる。

$ cp -r ~/opt/LIGGGHTS/liggghts-2.2/examples/LIGGGHTS/Tutorials_public/conveyor ~/work
$ cd ~/work/conveyor

入力ファイルは in.conveyor である。計算の実行は次のようにする。

$ mpirun -np 4 liggghts < in.conveyor

結果データは post/dump*.conveyor である。VTK ファイルを作るために以下を実行。

$ cd post
$ lpp dump*.conveyor

post ディレクトリの中に conveyor*.vtk ファイルができるので、ParaView でポスト処理できる。ParaView で conveyor*.vtk を読み込み、Glyph フィルターを適用し、"Glyph Type" で "Sphere" を選択。"Scale Mode" に "scalar" を設定、"Set Scale Factor" および "Sphere" の "Radius" を 1 にする。"Scalars" を "radius"、"Vectors" を "v" にするとよい。形状を表示するには用意されている STL ファイルを読み込む。

上のアニメーションでは色を "radius" に設定した。

OpenFOAM による CFD-DEM 連成

CFDEM を使うと、OpenFOAM-LIGGGHTS の連成を行うことができる。パッケージを GIT で入手。

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

ディレクトリを適当な場所に設置。その際、名前に OpenFOAM のバージョンをつける。

$ mkdir ~/opt/CFDEM
$ mv CFDEMcoupling-PUBLIC ~/opt/CFDEM/CFDEMcoupling-PUBLIC-2.1.1

~/.bashrc に以下のように設定。

export CFDEM_VERSION=PUBLIC
export CFDEM_PROJECT_DIR=$HOME/opt/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_SRC_DIR=$CFDEM_PROJECT_DIR/src/lagrangian/cfdemParticle
export CFDEM_SOLVER_DIR=$CFDEM_PROJECT_DIR/applications/solvers
export CFDEM_DOC_DIR=$CFDEM_PROJECT_DIR/doc
export CFDEM_UT_DIR=$CFDEM_PROJECT_DIR/applications/utilities
export CFDEM_TUT_DIR=$CFDEM_PROJECT_DIR/tutorials
export CFDEM_PROJECT_USER_DIR=$HOME/opt/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_bashrc=$CFDEM_SRC_DIR/etc/bashrc
export CFDEM_LIGGGHTS_SRC_DIR=$HOME/opt/LIGGGHTS/liggghts-2.2/src
export CFDEM_LIGGGHTS_MAKEFILE_NAME=fedora_fpic
. $CFDEM_bashrc

~/.bashrc を読み直すか、端末を立ち上げ直す。ユーザーディレクトリを作るとメッセージが出るので、y を入力。

以下を実行。

$ $CFDEM_PROJECT_DIR
$ $CFDEM_SRC_DIR
$ $CFDEM_LIGGGHTS_SRC_DIR

"コマンドが見つからない" ではなく、"ディレクトリです" というメッセージがでれば OK。

テスト

$ cfdemSysTest

コンパイル。

$ cfdemCompCFDEM

サンプルの実行。

$ cp -r ~/opt/CFDEM/CFDEMcoupling-PUBLIC-2.1.1/tutorials/cfdemSolverPiso/settlingTestMPI ~/work
$ cd ~/work/settlingTestMPI

parCFDDEMrun.sh の postproc を "true" にする。

#postproc="false"
postproc="true"

実行。

$ ./Allrun.sh

途中で Python のコマンドライン (">>>") に入ったら、"quit()" で終了する。ParaView が立ち上がり、それを終了させると、"press Ctr+C to keep data" と出るので、Ctrl+C で終了する。さもなくば結果データが削除される。

(玉のサイズを 10 倍にしています)

CFDEM の設定ファイルの修正

好みの問題だが、CFDEM の設定ファイル $CFDEM_bashrc を修正する。

lpp の設定から Python のオプション "-i" をはずす。これがあると lpp 実行後 Python のコマンドラインに入る。いっそこの設定自体消してもよいかもしれない。

#alias lpp='python -i $CFDEM_LPP_DIR/lpp.py'
alias lpp='python $CFDEM_LPP_DIR/lpp.py'

ユーザーディレクトリ作成の設定。環境変数 CFDEM_PROJECT_USER_DIR の設定を反映するようにする。

# check if the directory exists
if [ -d "$CFDEM_PROJECT_USER_DIR" ]; then
    :
else
#    if [ -d "$CFDEM_PROJECT_DIR" ]; then
#        cd $CFDEM_PROJECT_DIR/..
#        echo "make new dirs $CFDEM_PROJECT_DIR/../$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION ? (y/n)"
#        read YN
#        if [ $YN=="y" ]; then
#            mkdir $LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION
#            cd $LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION
#            mkdir run
#            mkdir -p log/logFilesCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
#        else
#            echo "aborted by user."
#            exit
#        fi
#    else
#        echo "error in CFDEMcoupling's bashrc."
#        exit
#    fi
    echo "make new dirs $CFDEM_PROJECT_USER_DIR ? (y/n)"
    read YN
    if [ $YN=="y" ]; then
        mkdir -p $CFDEM_PROJECT_USER_DIR
        mkdir $CFDEM_PROJECT_USER_DIR/run
        mkdir -p $CFDEM_PROJECT_USER_DIR/log/logFilesCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
    else
        echo "aborted by user."
        exit
    fi
fi

古い情報