STATE-Senri †
Simulation Tool for Atom TEchnology
STATEとは †
STATE (Simulation Tool for Atom TEchnology)は密度汎関数法に基づく、ノルム保存/ウルトラソフト擬ポテンシャル、平面波基底を用いた第一原理計算パッケージです。STATEを用いて以下のような計算が可能です。
- 電子状態の最適化
- Davidson法
- DIIS (Direct Inversion in Iterative subspace)法
- 電子状態解析
- 状態密度、部分状態密度、局所状態密度
- バンド構造
- Crystal orbital overlap population
- STMシミュレーション
- 構造最適化
- Quenched Molecular dynamics法
- Generalized Direct Inversion in Iterative Subspace (GDIIS)法
- 反応経路探索
- Nudged Elastic Band (NEB) 法
- Climbing Image nudged elastic band (CINEB) 法
- 分子動力学
- NVE ensemble
- NVT ensemble (velocity-scaling,Nose-Hoover)
- 自由エネルギーサンプリング
- Blue moon ensemble
- Metadynamics
- 非局所ポテンシャルの実空間での取り扱い(King-Smith, et al.)
- Neugebauer+Schefflerによる電場(双極子)補正
- 有効遮蔽媒質 (Effective Screening Medium: ESM) 法により高精度なスラブ計算とバイアス印加下でのスラブ計算
k点はMonkhorst-Packまたは通常のガンマ点を含む一様なメッシュ上で生成することが可能で、Brillouine zone積分にはスメアリング法(Fermi-Dirac、Hermite-Gaussian)あるいは(修正)四面体法を用いることができます。
STATEはf90で書かれておりMPIを用いて並列化されています。最新バージョンではOpenMPを用いたハイブリッド並列化も行われています。
バージョン †
コンパイルにはfortran90コンパイラとMPI,lapack,FFTW3(あるいは環境に応じたFFTライブラリ)が必要です。またバージョンによりコンパイルの方法(Makefile)が異なるので注意が必要です。
STATEのアーカイブを展開すると、ソースファイルはSTATE_5.x.xというディレクトリに展開されます。STATE_5.x.xに移動し、make.archを環境に合わせて編集します。作業用にCPPSRCというディレクトリを作成し、makeを実行することで実行ファイルSTATEが生成される。
実行方法 †
- 先ず擬ポテンシャルを所定の場所よりコピーあるいはダウンロードする。今CO分子を例とし、ソースディレクトリを
/home/hamada/STATE/src/STATE_5.6.1
擬ポテンシャルのディレクトリを以下
/home/hamada/STATE/gncpp
CとOの擬ポテンシャルをそれぞれpot_C_pbe1、pot_O_pbe1とする。ワーキングディレクトリにおいて
ln -s /home/hamada/STATE/src/STATE_5.6.1/STATE
および
ln -s /home/hamada/STATE/gncpp/pot_C_pbe1 fort.37
ln -s /home/hamada/STATE/gncpp/pot_O_pbe1 fort.38
を実行する。
次にCO分子の計算のための入力ファイルをnfinp_1(以下の計算例を参照)、出力ファイルをnfout_1として
mpirun -np 2 STATE < nfinp_1 > nfout_1
を実行する。ここで"-np 2"の2は使用するプロセッサーの数であり、"mpirun -np 2"のコマンドは環境によって異なる。
計算例 †
解析方法 †
ユーティリティ †
- chkinpf: 入力ファイルをチェックしてXSF形式のファイルを出力するプログラム(f90コンパイラが必要)
使用例: chkinpf nfinp_1
- state2*.pl, state2*.sh STATEの出力ファイルから構造やポテンシャルを取り出すperlとshで書かれたスクリプト群
- state2xsf.pl, state2axsf: XCrySDen形式の構造データ(xsf)とアニメーション用データ(axsf)をSTATEの出力から取り出すスクリプトです。
使用例: state2xsf.pl nfout_1 > nfout_1.xsf
- state2xyz.pl, state2axyz: XMOL XYZ形式の構造データを取り出すスクリプトです。使用法は上と同じです。
- ChargeUtil: STATEで出力された電荷密度をXSFなどのフォーマットに変換するためのfortraで書かれたプログラム群です。
- CubeUtil: Gaussian cube形式のファイルを操作するプログラム群です。
- state2pdos.pl: STATEで計算したPDOSを各原子ごとに取り出すperlスクリプト。花岡くん(草部グループ)作。
オリジナルのソースはstate_pdos.plです。機能を強化予定です。
得られた構造データはXCrySDenやVMDで可視化することが可能です。
スクリプト群は
smith:~hamada/STATE/tools以下に置いてあります。
(web上にこれらのツールをアップデートする予定)
- chg2xsf_2d_3d: chg2xsfに、少し機能を付け足したもの。STATEからのnfchgt_r.dataを実空間3次元可視化する(chg2xsf)のと、スラブ平行方向(x,y)の各点で等電荷密度面を計算し、2次元可視化する。STM像の解析に有用かもしれない。インプットとしてnfchgt_r.dataに加えて、stmset.data(真空準位のエネルギーと、等電荷密度面をプロットする値を含む)が必要。
ファイルフォーマット †
TODO †
参考文献 †
密度汎関数理論:
- P. Hohenberg and W. Kohn, Phys. Rev. 136, B864 (1964).
- W. Kohn and L. J. Sham, Phys. Rev. 140, A1133 (1965).
Ultrasoft pseudopotential法に関して:
- D. Vanderbilt, Phys. Rev. B41, 7892 (1990).
- A. Pasquarello, et al., Phys. Rev. Lett. 69, 1982 (1992).
- K. Lassonone, et al., Phys. Rev. B47, 10142 (1993).
STATEにimplementされているiterative diagonalizationの方法に関しては
- G. Kresse and J. Furthmuller, Phys. Rev. B54, 11169 (1996).
- G. Kresse and J. Furthmuller, Comp. Mat. Sci. 6. 15 (1996).
と、ここで引用されている論文を読むと良いでしょう。
Kresse&Furthmuller論文で引用されていますが、Davidson法、DIIS法に関するoriginalの論文が以下です。
- E.R. Davidson, J. Comp. Phys. 17. 87 (1975).
- D. M. Wood and A. Zunger, J. Phys. A: Math. Gen. 18, 1343 (1985).
非局所ポテンシャルの実空間での実装に関して:
- R. D. King-Smith, et al., Phys. Rev. B44, 13063 (1991).
k点サンプリングに関して:
- H. J. Monkhorst and J. D. Pack, Phys. Rev. B13, 5188 (1976).
双極子補正
- J. Neugebauer and M. Scheffler, Phys. Rev. B 46, 16067 (1992).
- L. Bengtsson, Phys. Rev. B 59, 12301 (1999)
ESM法
- M. Otani, O. Sugino, Phys. Rev. B 73, 115407 (2006)
- I. Hamada, M. Otani, O. Sugino, Y. Morikawa, Phys. Rev. B 80, 165411 (2009)
連絡先 †
不具合等ありましたら下記メールアドレスまでご連絡ください。(下記アドレスの@は日本語文字なので注意)
- state_admin@cp.prec.eng.osaka-u.ac.jp