はじめに
第一原理バンド計算ソフトPHASEの環境設定をメモします。あくまで個人的なメモです。このメモ時点での環境
- マシン:Intel Xeon 5300番台~5500番台
- FORTRANコンパイラ:intel ifort, version XE (12.0) 64bit
- C++コンパイラ:intel icc, version XE (12.0) 64bit
- PHASE: version 10.01
- LAPACK,BLAS:PHASE付属
- FFTW:PHASE付属
- 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 |
インストールシェル選択では今回は次のように選択しました
- 環境 Linux EM64
- コンパイラ:INTEL FORTRAN
- MPI:OpenMPI
- MPIディレクトリ:/usr/local/openmpi-1.5
- LAPACK,BLAS:PHASE付属
- FFTW:PHASE付属
########################################################################### ###<< 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 |
これで、サンプルに登場しない元素も計算できるようになった。