ビルドを待つことしばらく、エラーで止まってしまいました。
wmake mpi (mpi=SYSTEMOPENMPI:sys-openmpi)
wmake mpi
ln: ./lnInclude
make: mpicc: Command not found
dep: PstreamGlobals.C
make: mpicc: Command not found
dep: UPstream.C
make: mpicc: Command not found
dep: UIPread.C
make: mpicc: Command not found
dep: UOPwrite.C
make: mpicc: Command not found
Ctoo: UOPwrite.C
In file included from UOPwrite.C:33:
PstreamGlobals.H:42:10: fatal error: mpi.h: No such file or directory
#include <mpi.h>
^~~~~~~
compilation terminated.
make: *** [/home/user/OpenFOAM/OpenFOAM-v2012/wmake/rules/General/transform:35: /home/user/OpenFOAM/OpenFOAM-v2012/build/linux64GccDPInt32OptSYSTEMOPENMPI/src/Pstream/mpi/UOPwrite.o] Error 1
Done logging to 'log.linux64GccDPInt32Opt'
原因は、mpi.hというヘッダファイルが見つからないというもの。
ログを見るとThirdpaty AllwmakeのあたりでBuild MPI libraries if requiredと記載があり、何も指定しないとMPI環境はビルドされない様子。
そこで、ThirdParty-v2012のディレクトリに移動しオープンソースのMPI実装であるOpenMPIをビルドする。
なお、Thirdpartyには別のMPI実装であるMPICHも含まれており、どちらを使っても良いと思われるが、ここではとりあえずOpenMPIを選択した。
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ cd ~/OpenFOAM/ThirdParty-v2012
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ ./makeOPENMPI
OpenMPIのビルドを待ちます。結構時間がかかりました。
ビルドが終わるとインストール先は下記になりますので、このままでは正しくmpiccを見つけてくれません。
/home/user/OpenFOAM/ThirdParty-v2012/platforms/linux64Gcc/openmpi-4.0.3
そこで、bashrcを編集し、先ほどビルドしたOpenMPIを使うようにします。
97行目あたりにあるWM_MPLIBをデフォルトのSYSTEMOPENMPIからOPENMPIに変更します。
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ cp etc/bashrc etc/bashrc.original
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ vi etc/bashrc
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ diff etc/bashrc etc/bashrc.original
97,98c97
< #export WM_MPLIB=SYSTEMOPENMPI
< export WM_MPLIB=OPENMPI
---
> export WM_MPLIB=SYSTEMOPENMPI
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ source etc/bashrc
No completions for /home/user/OpenFOAM/OpenFOAM-v2012/platforms/linux64GccDPInt32Opt/bin
[ignore if OpenFOAM is not yet compiled]
user@instance-1:~/OpenFOAM/OpenFOAM-v2012$ ./Allwmake -s -l