なにも分からない。
NWChemは計算化学ソフトで、GSoCのOpenChemistryに参加していたので動かしてみたかった。
とりあえず動いた方法
環境はUbuntu 18.04。
ドキュメントのCompiling NWChemにあるNWChem 6.6 on Ubuntu 14.04 (Trusty Tahr)の項目を見ればいいと思っていたが微妙に動かなかった。そもそも現在の最新リリースバージョンは6.8.1なのでドキュメントが更新されてなさそう。以下のように改変したらとりあえず動くようになった。
必要なパッケージのインストール
python-dev gfortran libopenblas-dev libopenmpi-dev openmpi-bin tcsh make
最新リリースをクローンする
git clone -b hotfix/release-6-8 https://github.com/nwchemgit/nwchem.git nwchem-6.8.1 cd nwchem-6.8.1/src
環境変数の設定
ドキュメントでは
export USE_MPI=y export NWCHEM_TARGET=LINUX64 export USE_PYTHONCONFIG=y export PYTHONVERSION=2.7 export PYTHONHOME=/usr export BLASOPT="-lopenblas -lpthread -lrt" export BLAS_SIZE=4 export USE_64TO32=y
とするように指示されているが、BLASOPT
を指定するとmake時にLAPACK_LIB
を指定しろというエラーが発生する。しかし、その正しい値についてはドキュメントに言及がなく分からなかった。そこで
unset BLASOPT
を実行したところとりあえずエラーが消えたので良しとした。(絶対良くないんだよなぁ)
コンパイル
make nwchem_config NWCHEM_MODULES="all python" make 64_to_32 make
定石どおり make install
しようとしたら動かなかったのでコンパイル後にできたbin/
以下をPATHに加えてインストール終了とした。
動作チェック
Getting Started にあるコードが動くことを確認した。(aptでインストールしたバージョンではこれが動かなかったのがそもそもコンパイルしないといけなくなった原因なのでNWChemのメンテナンスが全般的に間に合ってないっぽい)
ついでに閉殻Hartree-Fock法によるHeH+のエネルギー計算 - kivantium活動日記と同じ設定で走らせて結果がどうなるか見てみた。
title "HeH+ STO-3G SCF energy calculation" charge 1 geometry H 0 0 0 He 0 0 1.4632 end basis H library sto-3g He library sto-3g end task scf energy
結果は
Final RHF results ------------------ Total SCF energy = -2.825194209471 One-electron energy = -4.549711559836 Two-electron energy = 1.001202357200 Nuclear repulsion energy = 0.723314993165 Time for solution = 0.0s
となり、前回の結果のTOTAL ENERGY = -2.860662163500
と近い値が出ることが確認できた。