OpenFOAMの環境構築
新しいバージョンがリリースされるたびにインストールは少し面倒くさい。
特にOpenFOAMはextend版(OpenFOAM+)などもあり、年に数回はインストール作業をせざる得ないしたくなる。
それ以外に、毎年新年には新しい環境を作りたくなる人向けにAnsibleを用いたOpenFOAMの環境構築を紹介する
ansibleFoamInstallation
- OpenFOAM-extendのサブプロジェクト
- サポートするOpenFOAMのディストリビューション
- OpenFOAM 4.1
- OpenFOAM 5.0
- Foam-Extend 4.0
- OpenFOAM v1612+
- OpenFOAM v1706+
- OpenFOAM v1712+
- サポートするOSのディストリビューション
- CentOS7
- ArchLinux
- MacOS X (必要なパッケージのインストールは手動らしい)
- Ubuntu 16.04 LTS
- Fedora Linux
- AlpineLinux
- CentOS6 (OpenFOAM v4.0, v1612+, Foam-Extend 4.0はサポートせず)
- sudo権限は必要
- localhostで実行されることを想定(sshでもインベントリファイルや変数theHostなどを正しく設定すればできる)
詳しくはhttps://sourceforge.net/p/openfoam-extend/ansibleFoamInstallation/ci/default/tree/README.md を参照
下準備
以降、Ubuntu 16.04 LTSをベースに説明する
Ansibleのインストール
Ubuntu 1604 LTS のパッケージマネージャーにあるAnsibleはバージョンが低いので
pipでインストールする。
rootユーザがAnsibleを実行できるようにsudoでインストール
sudo pip install ansible
ansibleFoamInstallationのリポジトリ取得
Mercurialをインストール後、任意のディレクトリでリポジトリを取得する
sudo apt install -y mercurial
mkdir ~/src
cd ~/src
hg clone http://hg.code.sf.net/p/openfoam-extend/ansibleFoamInstallation
cd ansibleFoamInstallation
OpenFOAMのインストールの設定
exampleConfigs/allFoams.ymlを下記のように書き換える
---
- hosts: localhost
roles:
# - { role: pyfoam }
- { role: swak4foam , distro: p1712 }
- { role: swak4foam , distro: of50 }
# - { role: swak4foam , distro: p1706 }
# - { role: swak4foam , distro: p1612 }
# - { role: swak4foam , distro: fe40 }
# - { role: cfmesh , distro: of50 }
# - { role: cfmesh , distro: p1706 , cfmeshversion: development}
# - { role: cfmesh , distro: fe40 }
# - { role: cfmesh , distro: p1612 }
# - { role: openfoambuild , distro: of50 , buildopts: "WM_COMPILE_OPTION=Debug" }
これでOpenFOAM 5.0とv1712+がswak4foamと一緒にコンパイルできる
cfmeshはOpenFOAM 5.0には対応していないはずなのでコメントアウトしている
またコメントアウトにはしていますがv1706にはdevelopmentブランチのみ対応しているので変数cfmeshversionにdevelopmentを指定している
Ansibleの実行
前述した通り、localhostで実行されることが想定されている
sudo ansible-playbook exampleConfigs/allFoams.yml --extra-vars="{'foamuser':'ubuntu'}"
foamuserをubuntuとしている。これにより/home/ubuntu以下にOpenFOAMがインストールされる。
python3をデフォルトにしている場合は下記のようにpython3のpathを指定する
sudo ansible-playbook exampleConfigs/allFoams.yml --extra-vars="{'foamuser':'ubuntu'}" -e "ansible_python_interpreter=/usr/bin/python3"
インストール結果
ls -lh /home/ubuntu/OpenFOAM
total 267M
drwxr-xr-x 3 ubuntu root 4.0K Jan 19 12:40 Additional-OpenFOAM-5.0
drwxr-xr-x 3 ubuntu root 4.0K Jan 19 09:43 Additional-OpenFOAM-v1712
drwxr-xr-x 11 ubuntu ubuntu 4.0K Jan 19 12:40 OpenFOAM-5.0
drwxr-xr-x 12 ubuntu 1001 4.0K Jan 19 09:43 OpenFOAM-v1712
-rw-r--r-- 1 root root 71M Jan 19 06:28 OpenFOAM-v1712.tgz
drwxr-xr-x 5 ubuntu ubuntu 4.0K Jan 19 13:05 site
drwxr-xr-x 6 ubuntu ubuntu 4.0K Jan 19 10:15 ThirdParty-5.0
drwxr-xr-x 12 ubuntu 1001 4.0K Jan 19 06:31 ThirdParty-v1712
-rw-r--r-- 1 root root 196M Jan 19 06:29 ThirdParty-v1712.tgz
drwxr-xr-x 3 ubuntu ubuntu 4.0K Jan 19 12:45 ubuntu-5.0
drwxr-xr-x 3 ubuntu ubuntu 4.0K Jan 19 08:39 ubuntu-v1712
無事インストールできている。
動作確認情報募集
動作確認情報、お待ちしております。
随時更新予定!
versions | CentOS7 | ArchLinux | MacOS X | Ubuntu 1604 LTS | Fedora Linux | AlpineLinux | CentOS6 |
---|---|---|---|---|---|---|---|
OpenFOAM 4.1 | |||||||
OpenFOAM 5.0 | 〇 | ||||||
Foam-Extend 4.0 | |||||||
OpenFOAM v1612+ | |||||||
OpenFOAM v1706+ | 〇 | ||||||
OpenFOAM v1712+ | 〇 |