BiomassGasificationFoam【インストール(Docker環境)】

インターネットを探していたら、BiomassGasificationFoamなるものがあるとのことでインストールしようと思ったのですが、、、

https://iopscience.iop.org/article/10.1088/1742-6596/530/1/012015/pdf

注意しよう!!

論文中のリンクをたどって開こうとするとなぜかリンクが飛ばない、、、と思っていたら、ウイルスバスターさんが危険なサイトとしてブロックしていました。urlをgoogle検索してみてみると、ドイツの怪しげな夜のお店につながっていた模様(なぜだ、、、)

本家のサイト

ventures.euhit.org

ここが新しい本家のページのようです。ただし、後述のように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の作者ページはこちら

(PDF) Biomass gasification solver based on OpenFOAM - library: biomassGasificationFoam_installPack_1.0.tar

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: コンテナにrootログイン - Qiita

Dockerイメージの名前を変更する - Qiita

Dockerでホストとコンテナ間でのファイルコピー - Qiita

[Docker] 起動するとファイルが消えてしまうときに確認してみること | script life 千夜一夜 プログラミング別館

PENGUINITIS - 離散化スキームの設定