Next: 全電子計算
Up: ADPACK Ver. 2.2 ユーザーマニュアル
Previous: テスト計算
Contents
入力ファイル「C.inp」を以下に示します。
この入力ファイルは柔軟なデータ書式で記述することが可能です。
キーワードに続いてパラメータを与えます。キーワードの配置の順序は任意であり、
空白やコメントも自由に書き込むことができます。
#
# File Name
#
System.CurrrentDir ./ # default=./
System.Name C0
Log.print Off # ON|OFF
System.UseRestartfile yes # NO|YES, default=NO
System.Restartfile C0 # default=null
#
# Calculation type
#
eq.type sch # sch|sdirac|dirac
calc.type all # ALL|VPS|PAO
xc.type LDA # LDA|GGA
#
# Atom
#
AtomSpecies 6
max.occupied.N 2
total.electron 6.0
valence.electron 4.0
<occupied.electrons
1 2.0
2 2.0 2.0
occupied.electrons>
#
# parameters for solving 1D-differential equations
#
grid.xmin -8.0 # default=-7.0 rmin(a.u.)=exp(grid.xmin)
grid.xmax 2.8 # default= 2.5 rmax(a.u.)=exp(grid.xmax)
grid.num 2000 # default=4000
grid.num.output 500 # default=2000
#
# SCF
#
scf.maxIter 60 # default=40
scf.Mixing.Type simple # Simple|GR-Pulay
scf.Init.Mixing.Weight 0.10 # default=0.300
scf.Min.Mixing.Weight 0.001 # default=0.001
scf.Max.Mixing.Weight 0.800 # default=0.800
scf.Mixing.History 7 # default=5
scf.Mixing.StartPulay 9 # default=6
scf.criterion 1.0e-10 # default=1.0e-9
#
# Pseudopotetial, cutoff (A.U.)
#
vps.type TM # BHS|TM
number.vps 2
<pseudo.NandL
0 2 0 1.50 0.0
1 2 1 1.62 0.0
pseudo.NandL>
Blochl.projector.num 4 # default=1 which means KB-form
local.type polynomial # Simple|Polynomial
local.part.vps 1 # default=0
local.cutoff 1.50 # default=smallest_cutoff_vps
local.origin.ratio 4.00 # default=3.0
log.deri.RadF.calc on # ON|OFF
log.deri.MinE -3.0 # default=-3.0 (Hartree)
log.deri.MaxE 2.0 # default= 2.0 (Hartree)
log.deri.num 50 # default=50
<log.deri.R
0 2.2
1 2.4
log.deri.R>
ghost.check off # ON|OFF
#
# Core electron density for partial core correction
# pcc.ratio=rho_core/rho_V,
# pcc.ratio.origin = rho_core(origin)/rho_core(ip)
#
charge.pcc.calc on # ON|OFF
pcc.ratio 0.25 # default=1.0
pcc.ratio.origin 5.00 # default=6.0
#
# Pseudo atomic orbitals
#
maxL.pao 2 # default=2
num.pao 5 # default=7
radial.cutoff.pao 5.0 # default=5.0 (Bohr)
height.of.wall 20000.0 # default=4000.0 (Hartree)
rising.edge 0.2 # default=0.5(Bohr),r1=rc-rising.edge
search.LowerE -3.000 # default=-3.000 (Hartree)
search.UpperE 20.000 # default=20.000 (Hartree)
num.of.partition 300 # default=300
matching.point.ratio 0.67 # default=0.67
それぞれのキーワードの内容を以下に説明します。
calc.type=ALLVPSPAOに共通するキーワード
System.CurrrentDir
本キーワードによって、ファイルが出力されるディレクトリを指定します。
System.Name
本キーワードによって、出力ファイルのファイル名を指定します。
Log.print
本キーワードによって、計算の際の詳細な情報を標準出力に出力します。
出力する時には「ON」、または出力しない時には「OFF」を指定します。
このキーワードはプログラムの開発者が使用するためのものです。
System.UseRestartfile
大きな原子番号の原子の全電子計算はかなりの計算時間を要しますので、
擬ポテンシャルのパラメーターを試行錯誤で決定する際には、全電子計算の結果を保存した再スタートファイル
を利用して下さい。
キーワード「System.UseRestartfile」を「YES」に設定すると、全電子計算をスキップするために、全電子計算の情報を含む
再スタートファイルが使用できます。本キーワードを「YES」に設定した際に、再スタートファイルが見つからなければ、
再スタートファイルが生成されます。
System.Restartfile
再スタート用のファイル名のを本キーワードで指定します。
eq.type
本キーワードによって方程式を選択します。
非相対論的Kohn-Sham方程式を使用する場合には、「sch」を指定して下さい。
半相対論的または完全に相対論的なKohn-Sham方程式を使用する場合には、それぞれ「sdirac」または「dirac」を指定して下さい。
calc.type
本キーワードは計算の種類を指定します。
全電子計算のSCF計算の場合には「ALL」、擬ポテンシャルの作成の場合には「VPS」、閉じ込めポテンシャル下での擬原子軌道の作成には「PAO」と
指定して下さい。
この他に、有限要素法 (FEM) [11]によるLDAおよびHF計算を行う場合には、それぞれ、「ALLFEM」もしくは「FEMLDA」および「FEMHF」と
指定して下さい。開発の際の歴史的な経緯のため、「ALLFEM」と「FEMLDA」は互いに同等のものです。
xc.type
交換相関エネルギーに使用する近似法 (LDAまたはGGA)を本キーワードによって指定します。
ここで「LDA」はPerdewとZunger [1]による表式であり、「GGA」は、Perdew、Burke、Ernzerhof [3]によって提唱された表式です。
またVosko、Wilk、NasairによるLDAの表式は「LDA-VWN」 [2]によって利用可能です。
AtomSpecies
本キーワードにより、原子番号を指定します。
max.occupied.N
本キーワードにより、占有電子に対する主量子数 (n)の最大値を指定します。
total.electron
本キーワードにより、全電子数を指定します。中性原子のみならず、正電荷または負電荷をもつ原子の電子数を指定することも可能です。
負電荷を持つ原子 (原子番号より多くの電子が持つ)では波動関数が非局在化し、SCF計算の収束が難しくなる場合があります。
valence.electron
本キーワードにより、価電子数を指定します。ここでの価電子数とは擬ポテンシャル作成時に含める全ての占有状態の電子数のことです。
occupied.electrons
本キーワードにより、各軌道の占有電子数を指定します。
入力ファイル「C.inp」で指定されているように、炭素原子の1s, 2s, 2p軌道がそれぞれスピン縮退を考慮して、2個の電子で満たされている場合には
次のように指定します。
<occupied.electrons
1 2.0
2 2.0 2.0
occupied.electrons>
この記述の最初は、「occupied.electrons」で、最後の記述は、「occupied.electrons」でなければなりません。
grid.xmin
動径Kohn-Sham方程式は、原点付近の動径点 (a.u. 単位)および遠方の動径点 (a.u. 単位)の両端から予測子-修正子法で
数値的に解かれます。本キーワード「grid.xmin」により、原点付近の動径点を指定します。
(a.u.) = exp(grid.xmin)という関係があることに注意してください。
「grid.xmin」の適切な値の目安は、HからKrまでは−8.0、それより重い原子に対しては−10.0から-9.0程度です。
FEM計算の場合には、異なる動径グリッドが使用されています。詳細については、「有限要素法による計算」の章を参照してください。
grid.xmax
動径Kohn-Sham方程式は、原点付近の動径点 (a.u. 単位)および遠方の動径点 (a.u. 単位)の両端から予測子-修正子法で
数値的に解かれます。本キーワード「grid.xmax」により、遠方の動径点を指定します。
「grid.xmin」と同様に、 (a.u.) = exp(grid.xmax)という関係があることに注意してください。
適切な「grid.xmax」の選択は原子によって異なります。
炭素原子や酸素原子など、局在電子のみを持つ原子の場合には、「grid.xmax」の値として2.5 (a.u.)程度が推奨されます。
Na、Ti、Feなど非局在化した電子を持つ原子では、「grid.xmax」の値として、3.0 (a.u.)以上が推奨されます。
さらに、原子が負電荷を帯びている場合は、大きな「grid.xmax」の値を使用して下さい。
有限要素法 (FEM)による計算の場合には、異なる動径グリッドが使用されます。
詳しくは「有限要素法による計算」の章を参照してください。
grid.num
予測子-修正子法によって動径Kohn-Sham方程式を解くために、動径座標を離散化します。
分割数を本キーワード「grid.num」で指定します。実際のグリッドの分割は、ポテンシャルと波動関数が原点付近で
大きく変化するのを考慮し、rに対してではなく、dx=(grid.xmax.xmin)/(grid.num-1)としてx(=log(r))に対してなされます。
「grid.num」の適切な数値は3000から12000です。
有限要素法 (FEM)による計算の場合には、異なる動径グリッドが使用されます。
詳しくは「有限要素法による計算」の章を参照してください。
grid.num.output
実際の計算は「grid.num」を用いて実行されますが、本キーワード「grid.num.output」により、
出力ファイル中のグリット数を変更することが可能です。
通常は500から1000程度を指定します。
scf.maxIter
本キーワード「scf.maxIter」により、SCF反復計算の最大数を指定します。
SCFのループは、収束条件が満たされない場合でも、「scf.maxIter」で指定された反復数で終了します。
scf.Mixing.Type
本キーワードにより、入力電子密度を生成する混合法を指定します。
3つの混合法が利用できます。単純混合法の場合には「Simple」、GR-Pulay法 [12]の場合には「GR-Pulay」、
またPulay法 [13]には「Pulay」を指定して下さい。
ここで使用される単純混合法は、収束履歴を参照して収束を加速するように修正されています。
多くの場合に、単純混合法で収束解を得ることが可能です。
scf.Init.Mixing.Weight
本キーワードにより、ADPACKのすべての混合法で使用される初期の混合比を指定します。
有効な範囲は、scf.Mixing.Weightです。
scf.Min.Mixing.Weight
本キーワードにより、単純混合法の混合比の下限を指定します。
scf.Max.Mixing.Weight
本キーワードにより、単純混合法の混合比の上限を指定します。
scf.Mixing.History
GR-Pulay法とPulay法では、過去の入力と出力電子密度を参照して、
次のSCFステップでの入力電子密度を推定します。
本キーワード「scf.Mixing.History」により、推定に使用される過去のSCFステップ数を指定します。
例えば、scf.Mixing.Historyを3とし、SCFステップが6番目だとします。
この場合、3番目から5番目のSCFステップの入力・出力電子密度が、最適な入力電子密度を評価するために考慮されます。
scf.Mixing.StartPulay
本キーワードにより、GR-Pulay法またはPulay法を適用するSCFステップを指定します。
GR-Pulay法またはPulay法を開始する前のSCFステップでは単純混合法が適用されます。
scf.criterion
本キーワードにより、SCF計算の収束条件を指定します。
SCFの反復は、NormRDscf.criterionの条件が満たされた時、終了します。
ここでNormRDは入力電子密度
と出力電子密度
の差のノルムであり、
によって定義されます。
このキーワードに対しては、収束計算のために少なくとも1.0e-10程度を設定する必要があります。
calc.type=VPSPAOの際に有効なキーワード
vps.type
キーワード「calc.type」で「VPS」を選択した場合には、本キーワード「vps.type」により、擬ポテンシャルの作成法を指定します。
「BHS」 [5]、「TM」 [4]、「MBK」 [6]のいずれかを指定して下さい。
number.vps
本キーワードにより、作成する擬ポテンシャルの総数を指定します。
pseudo.NandL
本キーワード「pseudo.NandL」により、擬ポテンシャルを作成する状態の主量子数と軌道角運動量量子数を指定します。
キーワード「number.vps」で指定した擬ポテンシャルの数に対応し、指定を行って下さい。
例えば炭素原子では「number.vps」を2と指定し、2sと2p軌道に対して擬ポテンシャルを作成する場合、次のように指定します。
<pseudo.NandL
0 2 0 1.3 0.0
1 2 1 1.3 0.0
pseudo.NandL>
記述の最初は、「peudo.NandL」であり、記述の最後は「pseudo.NandL」でなければなりません。
最初の列では、キーワード「local.part.vps」の設定で使用される、0から始まる通し番号を指定します。
2列目または3列目では、主量子数と軌道角運動量量子数を指定します。
4列目は、擬ポテンシャルを生成する際のカットオフ半径 (a.u.)を指定します。
このカットオフ半径を適切に選択することで、凸凹や節を持たない滑かな擬ポテンシャルを生成することが可能です。
その選択は擬ポテンシャルの形状を確認しながら、決定します。
5列目は、擬ポテンシャルを作成するエネルギーを指定します。
もし状態が占有状態(ゼロでない占有数を持つ)であれば、5列目で与えられる数値の代わりに固有エネルギーが優先されます。
5列目で与えられるエネルギーは、非占有状態に対してのみ使用されます。
フォーマットに準拠するために、占有数とは無関係に5列目を指定して下さい。
Blochl.projector.num
本キーワードにより、Blöchl [8]による分離型擬ポテンシャルのプロジェクタの数を指定します。
ここで指定したプロジェクタ数はそれぞれのL成分に対するプロジェクタの数となります。
「Blochl.projector.num」を1と指定すると、これはKleinmanとBylander (KB)の分離型擬ポテンシャルと等価になります。
「Blochl.projector.num」が大きくなるにつれて、分離型擬ポテンシャルは半局所的非分離型擬ポテンシャルに収束していきます。
分離型擬ポテンシャルの可搬性を向上させるために、「Blochl.projector.num」に3程度の値を指定して下さい。
プロジェクタ数の増大に伴い、計算量の増大が懸念されますが、非局所部分の行列要素はSCFループの外で評価されます。
そのため、多数のプロジェクタを用いた場合でも計算量はそれほど増加しません。
local.type
本キーワードにより、擬ポテンシャルの局所ポテンシャルを作成するための方法を指定します。
キーワード「local.part.vps」で指定された擬ポテンシャルの成分を局所ポテンシャルとして使用する場合には「Simple」と
指定して下さい。
局所ポテンシャルを多項式によって生成する場合には「Polynomial」を指定して下さい。
この多項式はカットオフ半径において、3次の導関数までがに連続になるように生成されます。
ここでは擬ポテンシャル作成時の全価電子数です。
local.part.vps
キーワード「local.type」で「Simple」を指定した場合、本キーワード「local.part.vps」によって、
局所ポテンシャルを指定します。ここで指定した局所ポテンシャルは非局所擬ポテンシャルの作成において参照されます。
この指定では、キーワード「pseudo.NandL」の設定における1列目の数値を選択して下さい。
local.cutoff
キーワード「local.type」で「Polynomial」を指定した場合、カットオフ半径(a.u.)を
本キーワード「local.cutoff」で指定します。
局所擬ポテンシャルはカットオフ半径の内側で多項式で与えられ、その外側ではで与えられます。
ここでは擬ポテンシャル作成時における全価電子数です。
local.origin.ratio
キーワード「local.type」で「Polynomial」を指定した場合、本キーワード「local.origin.ratio」によって、
原点における局所ポテンシャルの値を指定します。
の関係があることに留意してください。
log.deri.RadF.calc
キーワード「calc.type」で「VPS」を指定した際に、全電子ポテンシャル、半局所的擬ポテンシャル、分離型擬ポテンシャルの
動径波動関数の対数微分を計算する場合には、キーワード「log.deri.RadF.calc」を「ON」に指定して下さい。
計算しない場合には「OFF」を指定して下さい。
計算された対数微分はファイル「*.1d0」、 「*.1d1」、……、に出力されます。
ここで、「*」はユーザーが指定した「System.Name」であり、ファイル拡張子「ld」に付随した数字は、軌道角運動量量子数です。
キーワード「eq.type」を「dirac」と指定し、完全な相対論的計算を行う場合には、ファイル名は「*.ld%_#」となります。
ここで、%については、とに対応する、0または1となります。
これらのファイル中で、1列目はエネルギーが、2列目()、3列目()、4列目()は、それぞれ全電子ポテンシャル、
半局所的非分離型擬ポテンシャル、分離型擬ポテンシャルの動径波動関数の対数微分が出力されています。
対数微分のこれらのファイルへ出力に加え、分離型擬ポテンシャルの可搬性を判別するための量、が
次式によって評価されます。
理想的にはとがゼロの場合に、最大の可搬性が期待されます。
したがって可搬性の向上にはとが小さい擬ポテンシャルを作成することが条件となります。
とは標準出力(画面上)に出力されます。
log.deri.MinE
キーワード「calc.type」で「VPS」を指定し、さらにキーワード「log.deri.RadF.calc」が「ON」の場合には、
キーワード「log.deri.MinE」は動径波動関数の対数微分の計算に使用するエネルギーの下限 (Hartree)を与えます。
log.deri.MaxE
キーワード「calc.type」で「VPS」を指定し、さらにキーワード「log.deri.RadF.calc」が「ON」の場合には、
キーワード「log.deri.MaxE」は動径波動関数の対数微分の計算に使用するエネルギーの上限 (Hartree)を与えます。
log.deri.R
キーワード「calc.type」で「VPS」を指定し、さらにキーワード「log.deri.RadF.calc」が「ON」の場合には、
キーワード「log.deri.R」によって、動径波動関数の対数微分を計算をする半径(a.u.)を指定します。
「eq.type」で「sch」または「sdirac」を指定した場合には、キーワード「log.deri.R」によって、
それぞれの軌道角運動量量子数に対して以下の様に半径を指定します。
<log.deri.R
0 2.2
1 2.4
log.deri.R>
記述の最初は、「log.deri.R」で始まり最後は「log.deri.R 」でなければなりません。
1列目は角運動量の量子数で、2列目の数字は動径波動関数の対数微分を計算する半径です。
「eq.type」で「dirac」を指定した場合には、
それぞれの軌道角運動量量子数に対して以下の様に半径を指定します。
<log.deri.R
0 2.0 1.9
1 2.0 2.1
log.deri.R>
ここで2列目と3列目は、それぞれ、および の動径波動関数の対数微分を計算する半径を指定します。
ghost.check
キーワード「calc.type」で「VPS」を指定した場合、作成した分離型擬ポテンシャルに対してゴースト状態が存在するか
どうかをチェックする際には、キーワード「ghost.chek」を「ON」に設定して下さい。
チェックしない場合には、このキーワードを「OFF」に設定して下さい。
計算結果は標準出力に現れます。
charge.pcc.calc
本キーワードを「ON」に設定すると、交換相関汎関数に対する部分内殻補正(PCC)[14]で使用する部分内殼電子密度
が計算されます。
pcc.ratio
本キーワードは部分内殻電子密度を計算するためのパラメータを設定します。
部分内殻電子密度
は、内殻電子密度 ()と価電子密度 ()の比
(
)が「pcc.ratio」に一致する半径の内側では4次の多項式を用いて近似されます。
pcc.ratio.origin
本キーワードは部分内殻電子密度を計算するためのパラメータを設定します。
部分内殻電子密度
は半径の内側では4次の多項式を用いて近似され、
原点における部分内殻電子密度
の値は、
=pcc.ratio.origin
という関係から決定されます。
Calc.type=PAOの際に有効なキーワード
maxL.pao
本キーワードによって、生成する擬原子軌道の軌道角運動量量子数の最大値を指定します。
num.pao
本キーワードによって、各軌道角運動量量子数に対して生成する擬原子軌道の数を指定します。
radial.cutoff.pao
本キーワードによって、擬原子軌道のカットオフ半径 (a.u.)を指定します。
height.of.wall
本キーワードによって、閉じ込め壁の高さ(Hartree)を指定します。
rising.edge
本キーワードによって、閉じ込め壁の立ち上がり端の形を制御します。
=rising.edgeの関係に留意して下さい。
詳細に関しては「擬原子軌道の作成」の章も参照してください。
search.LowerE
本キーワードによって、擬原子軌道の固有エネルギーを求めるためのエネルギの下限を指定します。
search.UpperE
本キーワードによって、擬原子軌道の固有エネルギーを求めるためのエネルギーの上限を指定します。
num.of.partition
本キーワードによって、「search.LowerE」から「search.UpperE」までのエネルギー範囲の分割数を指定します。
計算の初期段階では「num.of.partition」によって分割されたエネルギー点上で、擬原子軌道の固有状態を大まかに探索します。
次に正しい節の数のエネルギー範囲内で、それらの固有状態を絞り込みます。
matching.point.ratio
本キーワードによって、原点付近および遠方から解かれた2つの動径波動関数を結合するための半径を指定します。
この半径に対応するグリッドは、matching.point.ratio grid.numで与えられることに留意してください。
Next: 全電子計算
Up: ADPACK Ver. 2.2 ユーザーマニュアル
Previous: テスト計算
Contents
t-ozaki
2014-01-09