概要
M1 MacにUbuntuをインストールして,OpenFOAMをビルドするまでの手順です。
以前,M1 Mac上でUbuntuいれるとかなしで,OpenFOAMビルドするのは以下でやりましたが,今回はUbuntu入れてから,OpenFOAMのビルドします。
https://qiita.com/ishigaki/items/52c5996f7d6e56376168
OS
- Multipassをhomebrewでインストール。brew install --cask multipassをターミナルで実行。
- MultipassでUbuntu18.04をインストール。multipass launch --cpus 2 --disk 20G --memory 4G --name ubuntu18 18.04 をターミナルで実行。イメージの名前がubuntu18, 最後がバージョン。
- コア数は4程度にする。
- XquartzをMacにインストールしておく。
Mac側の作業
$ brew install --cask multipass
$ multipass launch --cpus 4 --disk 20G --memory 4G --name ubuntu18 18.04
OpenFOAM (Ubuntu側の作業)
- aptでインストールできない。(Arm64のバイナリが配布されてない)
- OpenFOAM7以降なら,Arm64のビルドは可能。
- OpenFOAM 8をインストール。
- gcc-5, g++-5をインストール。gcc-5, g++-5のシンボリックリンクをgcc, g++としてホーム($MOHE/usr/local/bin)に作る。
- PATH設定で $HOME/usr/local/bin が先にくるようにする。
シンボリックリンクの作成
$ sudo apt install gcc-5, g++-5
$ sudo ln -s /usr/bin/gcc-5 $HOME/usr/local/bin/gcc
$ sudo ln -s /usr/bin/g++-5 $HOME/usr/local/bin/g++
.bashrcに追記
export PATH=$HOME/usr/local/bin:$PATH
ThirdParty-8をOpenFOAMディレクトリにダウンロード
$ mkdir $HOME/OpenFOAM
$ cd $HOME/OpenFOAM
$ wget http://dl.openfoam.org/third-party/8
$ tar xvf 8
OpenFOAM-8をGithubからクローン
$ cd $HOME/OpenFOAM
$ git clone https://github.com/OpenFOAM/OpenFOAM-8.git
ビルドに必要なライブラリのインストール (OpenFOAMの公式通り https://openfoam.org/download/source/software-for-compilation/)
$ sudo apt-get install build-essential cmake git ca-certificates
$ sudo apt-get install flex libfl-dev bison zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
$ sudo apt-get install libqt5x11extras5-dev libxt-dev qt5-default qttools5-dev curl
OpenFOAM-8のビルド
$ cd $HOME/OpenFOAM/OpenFOAM-8
$ ./Allwmake
Allwmakeのときに-jのオプションで並列ビルドできるけど,メモリが足りなくなる可能性がある。つけるなら,最初に確保したコア数を指定する。
Paraview
- Paraview-5.0.1をダウンロードしてくる。デフォルトは5.6.3だけどビルドに失敗する。
- OpenFOAM-8/etc/config.sh/paraviewのなかのParaviewのバージョンを5.0.1にする。
- etc/tools/ParaViewFunctions, makeParaviewはThirdParty-4の内容に書き換える。https://github.com/OpenFOAM/ThirdParty-4.x を参考にする。(この作業はしなくてもビルドは通るが,Segmentation faultするので,必要な作業)
- Pythonを有効にする。 (必須)
- makeParaviewを実行。
- 最悪,aptでparaviewがインストールできる。
$HOME/OpenFOAM/OpenFOAM-8/etc/config.sh/paraviewの編集。以下のようにする。
#- ParaView version, automatically determine major version
#export ParaView_VERSION=4.0.1
#export ParaView_VERSION=4.1.0
#export ParaView_VERSION=4.3.1
#export ParaView_VERSION=4.4.0
#export ParaView_VERSION=5.0.0
export ParaView_VERSION=5.0.1
#export ParaView_VERSION=5.4.0
#export ParaView_VERSION=5.5.0
#export ParaView_VERSION=5.6.3
export ParaView_MAJOR=detect
makeParaviewのPython関係のところを以下のようにする。
withPYTHON=true
PYTHON_LIBRARY="/usr/lib/aarch64-linux-gnu/libpython2.7.so.1.0"
Paraviewのビルド
$ cd $HOME/OpenFOAM/ThirdParty-8/
$ ./makeParaview
まとめ
OpenFOAMのビルドはデフォルトのGccでできますが,Paraviewのビルドで失敗するので,Gcc 5を使うようにしました。OpenFOAMのビルドは簡単でした。Paraviewのビルドがたいへん
MacにOepnFOAM入れるようなひとは,すでにOpenFOAMのビルドは散々やってきたひとだとおもうので,要点だけ書きました。質問等あったらコメントください。