VASPのインストール

VASP(バスプ)とは、Vienna Ab-initio Simulation Packageの略でウィーン大学で開発された固体結晶の電子状態と平面波基底関数で展開し、密度汎関数で計算するプログラムパッケージです。非常に有名なプログラムなのですが、フリー(無料)ではなく、ライセンスを購入する必要があります。

インストール方法
ライセンスを購入すると、パスワードが電子メールで送られてくるので、そのパスワードでウィーン大学のFTPサイトからプログラムをダウンロードします。
ソースプログラムをコンパイルし、実行可能にするには、vasp.4.libとvasp.4.6の2つのディレクトリーが必要です。(実際の計算を行なうには、擬ポテンシャルファイルなども必要ですが。)まず、vasp.4.libからコンパイルします。ディレクトリー内で
cp makefile.linux_ifc_P4 makefile
それぞれのマシンとコンパイラに合わせたmakefileが作られているので、自分の環境に最も近いものをコピーします。OSがLinuxでインテルコンパイラー(ifc)、さすがにPentiumD専用は無かったので、Pentium4のバージョンを用いました。あとエディッタで
FC=ifc → FC=ifort
と変更しました。あとは、単に
make
とすれば、libdmy.aというファイルが作られます。このファイルは.aの拡張子があるのはアーカイブファイルで、サブルーチンやライブラリーなどのプログラムをまとめたファイルとなっています。プログラム本体をコンパイル・リンクするときに(vasp.4.6の中での作業)、このアーカイブファイルにリンクを貼って使用します。
続いて、vasp.4.6のフォルダ内で作業を行ないます。vasp.4.libと同様に
cp makefile.linux_ifc_P4 makefile
さらにエディッタでmakefileの設定をいろいろ変更していきます。ただ、ここからMPIを用いて並列計算をする場合と単一のCPUで計算する場合で違ってきます。つまり、単一CPUでの実行(Serialシリアル)の場合と並列計算(Parallelパラレル)の場合で使用するプログラムが異なってくるので、コンパイルする前にmakefileの設定を変える必要があるのです。

(シリアルの場合)
FC=ifort
BLAS=-L/opt/intel/mkl/8.0.1/lib/em64t -lmkl_p4n -lguide -lpthread
LINK=-L/opt/intel/fce/9.0/lib/ -lsvml
FFT3D = fft3dfurth.o fft3dlib.o
これらのい設定例は、あくまでも私の場合であり、各自プログラムのバージョンとか設定を選んで下さい。この中でBLASとは線形代数の計算を行なうプログラムへのリンクであり、量子計算においては多くの行列式の計算を行なう必要があり、そこの多くの時間がとられます。そのため高速な行列計算プログラム(BLAS)を用意すると、より高速に計算が可能となるのです。今回はインテルのMKLを用いました。

(パラレルの場合)
並列計算を行なう場合も、まず、シリアルでコンパイルできるか試してみて、うまくいってから、パラレルの設定を行なうのが良いと思われます。MPICH2を既にインストールしてあるので、そのコンパイラーを用いてコンパイルしていきます。(mpif90とはMPICH2をインストールしたときに自動的作られたifortをベースとしたコンパイラです。多分、MPICH2へのincludeの設定とかが自動的に行なわれるのではないかと思います。)
FC=mpif90
BLAS=-L/opt/intel/mkl/8.0.1/lib/em64t -lmkl_p4n -lguide -lpthread
LINK=-L/opt/intel/fce/9.0/lib/ -lsvml
FFT3D   = fftmpi.o fftmpi_map.o fft3dlib.o
このような設定でコンパイルをしたのですが、実はmakeの途中でエラーで止まってしまいました。理由は不明ですが、何故かmpif90だとそのプログラム(オブジェクト)がコンパイルできなかったので、
ifort -FR -lowercase -c (エラーが起きたプログラム).f
と手動で打ち込み、その後、
make
とすることで、うまく実行可能なプログラムvaspが生成することができました。

実行方法
くわしくは、こちらをご覧下さい。
簡単に紹介しますと、次の4つのファイルを用意したディレクトリーを作り、その中から先ほどコンパイルしたvaspを実行すると、そのディレクトリーにアウトプットファイルが作り出されます。
#ls
INCAR 入力ファイル(計算方法(平面波のエネルギー、最適化の方法)などが書かれたメインファイル)
POSCAR 構造ファイル
KPOINTS 逆格子点のサンプリング方法を書いたファイル
POTCAR 擬ポテンシャルファイル
#/opt/vasp.4.6/vasp &
並列実行の場合は
#mpiexec -n 8 /opt/vasp.4.6/vasp &
などとして下さい。

back home next

inserted by FC2 system