BiomassGasificationFoam【インストール(Docker環境)】
インターネットを探していたら、BiomassGasificationFoamなるものがあるとのことでインストールしようと思ったのですが、、、
https://iopscience.iop.org/article/10.1088/1742-6596/530/1/012015/pdf
注意しよう!!
論文中のリンクをたどって開こうとするとなぜかリンクが飛ばない、、、と思っていたら、ウイルスバスターさんが危険なサイトとしてブロックしていました。urlをgoogle検索してみてみると、ドイツの怪しげな夜のお店につながっていた模様(なぜだ、、、)
本家のサイト
ここが新しい本家のページのようです。ただし、後述のようにReserch gateの作者のページにあるファイルが最新のようです。
環境構築
適当な自分の環境でインストールを進めると、
porousReactingZone.H:269:34: error: 'const class Foam::coordinateSystem' has no member named 'axis' return coordSys_.axis();
とエラーが出ます。下でも同じような話が出ています。
Error on biomassGasificationFoam_installPack_1.0 -- CFD Online Discussion Forums
そのため、
OpenFOAMのバージョンに注意; (できれば)本家のOpenFoam 2.1.1.にそろえる。
ソースコードは作者のresearch gateから引っ張る
にての対応の方針です。Reserch gateの作者ページはこちら
OpenFOAMのインストール(Docker)
バージョン違いのOpenFOAMを入れるため、環境を汚さないようにDockerを使ってインストールします。Docker hubを探すと2.1.1の開発バージョンのものがありましたので、ありがたく使います。なお、これより後バージョン(v2.4とかv4)ではbiomassGasificationFoamがうまくコンパイルできませんでした。
https://hub.docker.com/r/konradmalik/openfoam211
dockerのpullコマンドはコレ。
$ docker pull konradmalik/openfoam211
pullした後は、docker イメージを一応わかりやすくコピー(別名保存)しておきます。今回は、biomass-gasification-foamという名前にしました(変更可)。
$ docker tag openfoamのイメージID biomass-gasification-foam
コンテナを作成します。rootで入ります。通常ユーザでログインすると、よくpermission負けします。
$ docker run -it --user root biomass-gasification-foam /bin/bash
CUI環境に入りますが、一旦exitしたら次回以降はstartで開始します。毎回runで開始すると延々とコンテナを増やすことになってしまいます(初心者らしいミス)。
$ docker start -i コンテナのID
BiomassGasificationFoamのダウンロード
wgetを使って、作者reserch gateページからダウンロードしてきます。
$ wget https://www.researchgate.net/profile/Kamil-Kwiatkowski/publication/258998426_Biomass_gasification_solver_based_on_OpenFOAM_-_library_biomassGasificationFoam_installPack_10tar/data/0c9605299f53bc6c4d000000/biomassGasificationFoam-installPack-10tar.gz
拡張子が変なことになっているので、変更して解凍します。
$ mv biomassGasificationFoam-installPack-10tar.gz biomassGasificationFoam-installPack-10.tar.gz $ tar -zxvf biomassGasificationFoam-installPack-10.tar.gz
なお、dockerコンテナによってはデフォルトでtarとかが入っていなかったりするので、ホスト側からのコピーでもよいです(今回のdocker imageではwgetもtarも入ってました)。
$ docker cp biomassGasificationFoam_installPack_1.0/ コンテナのID:/home/openfoam/
BiomassGasificationFoamのインストール
biomassGasificationFoam_installPack_1.0
フォルダ中のREADMEを見ながら進めます。まずは、(一応)必要なライブラリをインストールしておきます。やらなくてもよさそうです。
$ apt-get update $ apt-get install build-essential flex bison cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev
biomassGasificationFoam_installPack_1.0
フォルダ中に移動し、環境変数を設定します。そのままインストール実行します。
$ cd biomassGasificationFoam_installPack_1.0 $ source biomassGasificationMediaDirectories $ ./install
無事インストールができたらコマンドがたたけるハズなので、helpでインストールを確認してみます。
$ biomassGasificationFoam --help
チュートリアル
TGA
のディレクトリに移動して、
$ biomassGasificationFoam
で実行してみますが、以下エラーが出てきます。
--> FOAM FATAL IO ERROR: Unknown ddt scheme CrankNicholson
/system/fvSchemes
のフォルダを修正します。CrankNic"h"olsonのタイポのようですので、修正します。
ddtSchemes { default CrankNicolson 0.7; }
満を持して実行。出力は保存しておいた方がよい+結構時間がかかります。
$ biomassGasificationFoam > log &
参考にしました。
BiomassGasificationFoam compiling issue -- CFD Online Discussion Forums
Dockerでホストとコンテナ間でのファイルコピー - Qiita
[Docker] 起動するとファイルが消えてしまうときに確認してみること | script life 千夜一夜 プログラミング別館