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 古い情報 | |
PENGUINITIS |