PHASEのインストール

はじめに

第一原理バンド計算ソフトPHASEの環境設定をメモします。あくまで個人的なメモです。
このメモ時点での環境
  1. マシン:Intel Xeon 5300番台~5500番台
  2. FORTRANコンパイラ:intel ifort, version XE (12.0) 64bit
  3. C++コンパイラ:intel icc, version XE (12.0) 64bit
  4. PHASE: version 10.01
  5. LAPACK,BLAS:PHASE付属
  6. FFTW:PHASE付属
  7. MPI:OpenMPI version 1.5

PHASEの取得

PHASEは「革新的シミュレーションソフトウェアの研究開発」プロジェクトおよび、「イノベーション基盤シミュレーションソフトウェアの研究開発」プロジェクトによって作られた第一原理バンド計算ソフトウェアです。まずは、下記のwebサイトにてユーザー登録し、ソフトウェアをダウンロードします。
http://www.ciss.iis.u-tokyo.ac.jp/dl/
ここでダウンロードするのはPHASE本体だけでなく、計算対象となる原子の擬ポテンシャルデータ(拡張子.pp)もいただいておきましょう。場所はちょっとわかりにくいかもしれないが、ユーザー登録後のページにて、一番上の[擬ポテンシャルデータ]の下の「元素周期表」のリンク先から擬ポテンシャルデータがダウンロードできる。
取り敢えず、ここでダウンロードしたファイル(phase_v1001.tar.gzと元素名_*.pp.gz)は全部DLという名のディレクトリに突っ込んできます。

mkdir DL
cp ~/phase_v1001.tar.gz ./DL/
cp ~/*.pp.gz ./DL/

PHASEのインストール

PHASEの圧縮ファイルを解凍して、インストールシェルを実行する。 インストールがあるので非常に簡単です。ただし、インテルコンパイラXEを使うにあたって、 途中のmakefile編集にて手動でコンパイルコマンドを変更する必要があります。

tar xvfz DL/phase_v1001.tar.gz
cd phase_v1001
./install.sh

インストールシェル選択では今回は次のように選択しました
  1. 環境 Linux EM64
  2. コンパイラ:INTEL FORTRAN
  3. MPI:OpenMPI
  4. MPIディレクトリ:/usr/local/openmpi-1.5
  5. LAPACK,BLAS:PHASE付属
  6. FFTW:PHASE付属
これらの後、Makefileを編集するかどうか尋ねられるので「yes」と入力(デフォルトは「no」)し、続いて編集ソフトとして 「vi」と入力します。するとviの編集モードに入るので、該当する行を次のように書き換えます。

###########################################################################
###<< PLEASE CHANGE THE VARIABLES BELOW ACCORDING TO YOUR ENVIRONMENT >>###
###########################################################################
F90 = ifort
CC  = icc -m64
CPP =
AR  = ar -vq
LINK = ifort
F90FLAGS = -W0 -traceback -I/usr/local/openmpi-1.5/include
F77FLAGS = -W0 -traceback -I/usr/local/openmpi-1.5/include
CFLAGS = -O -DINTEL
CPPFLAGS = -DLinux -DJRCATFFT_WS -DCD_JRCATFFT_WS -D_POT_SMOOTHING_ -DTRANSPOSE
 -DGGA_ATOMIC_WITH_NEW_GNCPP -DREMOVE_PC_FROM_FORCE -D_USE_LAPACK_ -D_POSITRON_ -D_FAST_WAY_
LFLAGS = -i-static -Bstatic
LIBS =  -L./ -llapack -lblas  -Bdynamic -L/usr/local/openmpi-1.5/lib -lmpi_f90

具体的に書き換えたのは、F77FLAGS、F90FLAGSから余分なものを取り除いたこと、CCを"gcc"から"icc"に変更したこと、そして何より重要なのが、LIBSにて"-lmpi"を"-lmpi_f90"に変更したことです。 書き換えたら":wq"でviを閉じます。するとインストールシェルに戻りますので、次の質問に従ってコンパイルを実行します。 ここでコンパイルがうまくいかない場合は、先ほどのMakefileの編集を環境に合わせたものにする。 コンパイルがうまくいったら最後の質問である、計算チェックをyesとして行い、表示される計算結果とリファレンスが一致すれば成功。"bin"ディレクトリの中に実行ファイル"phase"が出来上がっています。

擬ポテンシャルの用意

これで一応PHASE本体のインストールは終わりました。 計算サンプルとして、"sample"ディレクトリに各種の構造や設定の入力ファイサンプルが入っています。 たとえば、サンプルのSi8の計算は、次のようにして行います。

cd ~/phase_v1001/sample/Si8
cp ../../bin/phase ./
mpirun -np 4 ./phase
(もしくは単に ./phase)

これにてカレントディレクトリの"file_names.data"が読み込まれて、そこに書かれた計算条件に沿ってPHASEが電子状態を計算します。

さて、インストールがうまくいっている場合はこれらのサンプルはうまく計算できるはずですが、サンプルで扱っていない元素を使った構造を計算しようとするとうまくいきません。それは、サンプルに登場する元素しか、擬ポテンシャルが用意されていないからです。そこで、最初にダウンロードした擬ポテンシャルを、使えるようにします。 といっても、"sample/pp"内にコピーして解凍するだけです。

cd ~/phase_v1001/sample/pp
cp ~/DL/*.pp.gz ./
gunzip -d *.pp.gz

これで、サンプルに登場しない元素も計算できるようになった。