Your first calculation: CO molecule in a box †
0 0 0 0 0 0 : dummy line (6 integers)
5.50 20.00 2 2 2 : GMAX, GMAXP, NTYP, NATM, NATM2
1 0 : space group #, bravis lattice type
6.00 4.00 4.00 90.00 90.00 90.00 : a,b,c,alpha,beta,gamma
1 1 1 1 1 1 : knx,kny,knz, k-point shift
1 0 : NCORD, NINV
0.0000 0.0000 0.0000 1 1 1 : cps, iwei, imdtyp, ityp
2.2000 0.0000 0.0000 1 1 2 : cps, iwei, imdtyp, ityp
6 0.1500 51577.50 3 1 0.d0 : IATOMN, ALFA, AMION, ILOC, IVAN, ZETA1
8 0.1500 51577.50 3 1 0.d0 : IATOMN, ALFA, AMION, ILOC, IVAN, ZETA1
0 0 0 0 0 : ICOND,INIPOS,INIVEL,ININOSE, INIACC
0 1 : IPRE, IPRI
200 200 0 57200.00 0 : NMD1, NMD2, iter_last, CPUMAX, ifstop
3 1 : way_mix, mix_what
0 8 0.8 : starting mixing, kbxmix,alpha
0.60 0.50 0.60 0.70 1.00 : DTIM1,DTIM2,DTIM3,DTIM4,dtim_last
30.00 2 1 0.10D-08 1.d-06 : DTIO,IMDALG,IEXPL,EDELTA
0.0010 0.10D+02 0 : WIDTH,FORCCR,ISTRESS
ggapbe 1 : XCTYPE, nspin
1.00 3 : destm, n_stm
102 : NBZTYP
0 0 0 : NKX, NKY, NKZ (dummy)
0 0 0 : NKX2,NKY2,NKZ2(dummy)
8 : NEG (# of bands)
1 : NEXTST (1: G-space, 0: R-space)
0 : 0; random numbers, 1; matrix diagon
2 : imsd (2: Davidson, 1: RMM)
0 : eval. eko diff.: .0 = no ,1 = yes
0 : npdosao
0 0.0 : SM_dopping
0 0 0 0 0 0 : dummy line (6 integers)
ダミー変数、歴史的経緯でそのままになっている。過去のバージョンでは1カラム目の変数が1の場合は※基本並進ベクトルをカーテシアン座標で与え、0の場合はa, b, c, alpha, beta, gammaで与えていたようである。
※バージョン539tでは活きているようです。
5.50 20.00 2 2 2 : GMAX, GMAXP, NTYP, NATM, NATM2
1 0 : space group #, bravis lattice type
- NUM_SPACE_GROUP: 空間群の番号
- TYPE: ブラベー格子の種類を番号で指定:
- 0 : simple, 1: body center, 2: face center, 3: a-face center, 4: b-face center, 5: c-face center, 6: rhombohedral center
6.00 4.00 4.00 90.00 90.00 90.00 : a,b,c,alpha,beta,gamma
- a, b, c: 格子ベクトルの長さ
- alpha, beta, gamma: 格子ベクトルのなす角度
これらの代わりに以下のように"Cartesian"と記述するとそれ以下の行で格子ベクトルを直接カーテシアン座標で指定することができる。
Cartesian
6.00 0.00 0.00
0.00 4.00 0.00
0.00 0.00 4.00
1 1 1 1 1 1 : knx,kny,knz, k-point shift
- Brillouine zone積分で用いるk点のメッシュ(knx,kny,knz)を最初の3カラムで、k点のオフセットを次の3カラムで指定する。
4-6カラムでのk点のオフセットの指定方法は、ガンマ点を含む場合には1を、ガンマ点を含まない場合(Monkhorst-Pack)は2を指定する。
六方晶の場合にはk点はオフセットしない方が良いようである。
1 0 : NCORD, NINV
- 原子位置の指定方法と空間反転対称性の有無を指定
- NCORD: 1: カーテシアン座標で原子座標を入力(単位はBohr)、0: 基本並進ベクトルを単位として入力、2: conventional unit cellの格子ベクトルを単位とする
- NINV: 0: 系に空間反転対称性がない、1: 空間反転対称性がある。
このオプションを使用すると、空間反転対称性が存在する場合には明示的に考慮する原子数をおよそ半分にすることが可能で、計算時間の短縮をすることが可能である。
0.0000 0.0000 0.0000 1 1 1 : cps, iwei, imdtyp, ityp
2.2000 0.0000 0.0000 1 1 2 : cps, iwei, imdtyp, ityp
- 原子位置と原子種の指定
- 1-3カラム: cps(katm,3) (pos(katm,3)): 原子座標。入力方法はNCORDに依存。
- 4カラム: iwei(katm): 空間反転対称性について等価な原子数
- 5カラム: imdtyp(katm): Hellmann-Feynman力に従って原子を動かす場合には1、そうではない場合には0を指定。有限温度分子動力学(FTMD)の場合、1000以上の数を指定するとその原子は熱浴に接することを指定。
- 6カラム: ityp(katm): 原子の種類を番号で指定。原子番号等は後に続く列に記述する。
6 0.1500 51577.50 3 1 0.d0 : IATOMN, ALFA, AMION, ILOC, IVAN, ZETA1
8 0.1500 51577.50 3 1 0.d0 : IATOMN, ALFA, AMION, ILOC, IVAN, ZETA1
- 原子(擬イオン)に関する情報を入力する。意味のある値は
- 1カラム: 原子番号
- 3カラム: 原子の質量(Da(旧のa.m.u.)(=水素原子が約1))。後述するが、上の値は現実のものとは異なる。Quenched MD(IMDALG=2)を行うときには原子質量は同じ値、例えばCの12.0107やSiの28.0855などにしておくと計算を安定して行うことができる。
有限温度の分子動力学を実行するときには現実の質量に設定するべきである。
- 6カラム: zeta=(rho(up)-rho(down))/(rho(up)+rho(down))の初期値を与える。スピン分極の計算を行う際はnspin=2としてzetaとしては0でない有限の値を設定する。zeta=0とすると非磁性の解に収束するだろう。
- 6カラム: (光田くんによる説明)spin分極の初期値(一般的に分極してそうなものは0.5、そうでないものは0.0を入力する)
- その他: ilocはローカルポテンシャルの軌道量子数l+1、ivanはVanderbiltのultrasoft pseudopotentialを使用するかどうか、といったパラメータであるが、入力ファイルからではなく擬ポテンシャルのファイルから読むので実際にはダミーパラメータである。ちなみにAlFAという変数は現在は使用されていない。電荷密度を乱数から発生させるときに使用していたようである。
0 0 0 0 0 : ICOND,INIPOS,INIVEL,ININOS, INIACC
- 計算の継続(初期化)に関するオプション
- ICOND: 波動関数
- 0: 初期波動関数は乱数から発生させる。scratchからSCF計算を開始する時に使用する。
- 1: 初期波動関数と電荷密度は前の計算のものを使用する。SCF計算を継続する際に使用する。zaj.dataとpotential.dataが必要
- 2: 初期波動関数は乱数から、電荷密度は前の計算のものを使用するが、電荷密度(ポテンシャル)はfixしたまま計算を行う。potential.dataが必要
- 3: 初期波動関数とポテンシャルは古いものから出発するが、電荷密度(ポテンシャル)はfixしたまま計算を行う. ポテンシャルをfixした計算(ICOND=2)を継続する際に用いる。potential.dataとzaj.dataが必要。
- 4: 電荷密度をfixしたままSCF計算を行う。ICOND=2と同じ。
- 9: 実空間での電荷密度を出力.
- 10: STM
- 14: Partial density of state (PDOS)の計算
- 15: 実空間での波動関数の出力(ソースファイルの変更が必要. ソースの変更が不要なバージョンは濱田から入手可能)
- 16: COOP Analysis (experimental)
- INIPOS: 原子位置
- 0: 入力ファイルから読見込む
- 1: restart.dataから原子座標を読み込んでMDまたは構造最適化を継続する
- 2: GEOMETRYから原子座標を読み込んで計算を継続する(restart.dataが必要)。restart.dataはバイナリーのデータで扱いにくいが、GEOMETRYはascii形式であるので、比較的扱いやすい。計算を現在のgeometryと異なるものから始めるときに使用すると便利である。
- INIVEL: 原子の速度
- INIPOSと同様、1の場合はrestart.dataから、2の場合はGEOMETRYから速度を読み込む。INIPOSの時と同様にrestart.dataが必要。
- ININOS: 能勢の温度制御
- INIACC: accumulator:物理量の統計平均の計算の継続に関するオプション
- 計算の継続する例 (1): SCF計算の継続
- SCF計算のみを継続したいとき(geometryは入力ファイルから読み込む)
1 0 0 0 0 : ICOND,INIPOS,INIVEL,ININOS, INIACC
- 構造最適化を継続
1 1 0 0 0 : ICOND,INIPOS,INIVEL,ININOS, INIACC
- MDの継続(IMDALG <=0)
1 1 1 0 0 : ICOND,INIPOS,INIVEL,ININOS, INIACC
0 1 : IPRE, IPRI
- 圧力(ストレス)の計算(現在は実装されていないのでダミー変数である)
- 標準出力のレベル(通常は1、1よりも大きいと多くの情報が出力される。デバッグ用のオプションではあるが、出力される情報はあまり参考にならないようである)
200 200 0 57200.00 0 : NMD1, NMD2, iter_last, CPUMAX, ifstop
- 繰り返しの回数と計算時間に関するオプション
- NMD1: 電子系のSCF計算の回数の上限を指定する。
- NMD2: 分子動力学のステップ数の上限を指定する。NMD2+1が実際のMD(構造最適化)の回数の上限である。
- iter_last:
- CPUMAX: CPU時間の上限を秒単位で指定
- ifstop:
3 1 : way_mix, mix_what
- way_mix:ミキシングの方法を選択
- 1: simple mixing
- 2: Broyden
- 3: Broyden2
- 4: DFP
- 5: Pulay
- 6: Blugel
- mix_what:ミキシングの対象(電荷密度またはポテンシャル)を選択
- 1: charge density
- 2: potential
0 8 0.8 : starting mixing, kbxmix,alpha
- ミキシングに関するパラメータ
- start mixing: dummy
- kbmix: ミキシングに用いる履歴の回数
- alpha=mix_alpha: ミキシングパラメータ
0.60 0.50 0.60 0.70 1.00 : DTIM1,DTIM2,DTIM3,DTIM4,dtim_last
- ミキシングに関するパラメータ(?)
- DTIM1: RMMで使用、その他はダミー変数.
- dtim_last: ダミー変数
30.00 2 1 0.10D-08 1.d-06 : DTIO,IMDALG,IEXPL,EDELTA
- 構造最適化または分子動力学(MD)に関するオプション
- DTIO: イオン系のMDで用いる時間刻み(タイムステップ)(a.u.)。Quenched MD (IMDALG=2)またはMDで有効。 1a.u.=0.024188fs, 41.3428a.u.=1fs
- IMDALG: MDまたは構造最適化の方法を指定。正の値は構造最適化、0または負の場合は有限温度MDを実行
- 1: Newtonian dynamics
- 2: Quenched molecular dynamics
- 3: Vibrational mode analysis (nfvibrate.dataというファイルが必要)
- 4: GDIIS
- 5: TS search by GDIIS
- 6: NEB
- 0: Newtonian dynamics
- IEXPL: dummy
- EDELTA: 電子系の収束の閾値を規定。収束は一原子あたりの全エネルギーで評価している。
0.0010 0.10D+02 0 : WIDTH,FORCCR,ISTRESS
- WIDTH: Fermi面のぼかしの幅. 正の場合はデルタ関数を多項式で、負の場合にはHermite-Gaussianの一一次式で近似する.WIDTH<-10.0のときにはTetrahedron法によるBrillouine zone積分を行う. この時はNBZTYPが有効になる.
- FORCCR: Forceの閾値.Forceがこの値よりも小さくなると構造最適化を終了する. IMDALG>0のみ有効である.
- ISTRESS: ストレスの計算用オプション.現在は使用されていない.
ggapbe 1 : XCTYPE, nspin
- XCTYPE: 交換相関汎関数を指定.
- ggapbe: Perdew, Burke, Ernzerhof GGA (1996)
- ggapw91: Perdew-Wang GGA (1991)
- ldapw91: Perdew-Wang L(S)DA (1991)
- その他RPBEとrevPBEが使用可能. 最新版にはWu-Cohen GGAも実装(Experimental)
- NSPIN: 1ならば非磁性、2でcollinearな磁性体の計算を行う。
1.00 3 : destm, n_stm
102 : NBZTYP
- WIDTH < -10.0の時のみ有効. 101が推奨値.
0 0 0 : NKX, NKY, NKZ (dummy)
0 0 0 : NKX2,NKY2,NKZ2(dummy)
8 : NEG (# of bands)
- 計算に用いるバンドの数. STATEの計算では、常に非占有状態を含めて計算を行う必要がある。非磁性のSiならば、例えば4 (電子数/2)+4などとするのが良いだろう。
1 : NEXTST (1: G-space, 0: R-space)
- nonlocal pseudopotentialの計算方法
- 0: R-space (Davidsonの時は使用しない)
- 1: G-space
0 : 0; random numbers, 1; matrix diagon
2 : imsd (2: Davidson, 1: RMM)
- 対角化法の選択
- 1: RMM-DIIS
- 2: Davidson
- 3: ???
大規模な計算をするときにはRMM-DIISとReal space projectionの組み合わせ(NEXTST=0、IMSD=1)が推奨されますが、初期波動関数は乱数から発生させるものではなく、Davidsonである程度収束させたものを使うのが良いでしょう。そうしなければ最安定な電子状態に収束しない可能性がある。
0 : eval. eko diff.: .0 = no ,1 = yes
- 前回のiterationにおける擬固有値との比較を行うかどうかを指定。ほぼダミー変数
0 : npdosao
- PDOSの計算オプション。0でない場合にPDOSの計算を行う。但しnpdosaoは原子の数より小さくなければならない。具体的な計算方法は、柳澤氏による以下の文書を参照のこと。
0 0.0 : SM_dopping
- f電子用の半経験的パラメータ用のオプション。現在使用している人はほとんどいないため十分テストされていません。
- 原子軌道に射影したPDOS(Partial Density Of States、もしくはAO_LDOS)の計算方法
(以下、pdos用のオプション。仮にnpdosao = 5とし、通し番号が1,3,4,9,10の原子の軌道に投影したDOSを計算、原子の種類は2種類。ただし、lda+uでない場合)
5 : npdosao
1 (以下、npdosao個の原子の通し番号)
3
4
9
10
-15.00 5.00 0.20 501 :EPDOS(1), EPDOS(2), EPDOS(3), NPDOSE
2.2 0.3 :rad, width for ityp 1
1.0 0.3 :rad, width for ityp 2
0.2 12 :DR, NR
- npdosao: DOSを投影させる原子数。その次の行にnpdosao個の原子の通し番号を続ける
- EPDOS(1,2): pdosを表示するエネルギー領域(Fermi準位との相対値、eV)、EPDOS(3): 未使用
- NPDOSE: EPDOS(1)~EPDOS(2)の間のエネルギーメッシュ数
- rad: DOSを投影させる原子中心の波動関数(擬波動関数)の、動径方向のカットオフ値を指定
(bohr単位。通常、原子の価電子半径程度を指定。e.g. H:0.6 程度, C,N,O:1.4 程度)
- width: 上記のrad前後で、原子の擬波動関数をFermi分布関数にしたがってぼかす際のぼかし幅 (0.3程度でよい模様)
- DR,NR: (おそらく)未使用
(元々は、擬波動関数同士やプロジェクターbetaとの重なり積分を実空間で計算する際の刻み幅・積分範囲のパラメータを意図していた模様)
Revision
- 2007-05-14 (月) 17:24:59 I. Hamada
- 2006-12-21 (木) 12:40:00 I. Hamada (created)