EPS計算
ecaljでは乱雑位相差近似にもとづいて誘電関数を計算し、光学特性を調べることができます。 ここでは、具体的な計算の流れを説明します。
計算のステップ
step1: lmf
収束計算行う。
sigm
ファイルがある場合は, QSGW計算による固有値固有関数からの誘電関数を計算することができる。
step2: GWinputのパラメータを設定
GWinput内で
QforEPS
で囲まれた箇所を探してください。// defaultではこのように書かれている <QforEPS> 0 0 0.00001 0 0 0.001 0 0 0.0014142 0 0 0.002 0 0 0.0028284 0 0 0.004 </QforEPS>
この部分は誘電関数を計算するときのqベクトルを設定しています。 この値を変えることで誘電関数のq方向の依存性を調べることができます。 基本的にはq~0を考えて計算を行うので、ここの値は適宜小さくとってください(0.02以下がよいです)。 また後述のバンド内・間遷移を分けて計算を行う場合は、2つ以上の座標を書く必要があります。 ここで書かれる座標には がかかることに注意してください。
エネルギーメッシュの取り方
誘電関数を計算する際のメッシュは対数メッシュでとられており、 GWinput内でHistBin_dw 2d-3 HistBin_ratio 1.08
の値を変えることで、誘電関数のエネルギーメッシュを増やす(減らす)ことができます。 メッシュを細かくとれば、誘電関数の構造がより現れるようになります。ただし、細かすぎると計算コストが増え、計算精度的な 問題がおこる可能性もあるので注意してください。
以上が主なGWinput内の設定になります。また、もし計算を軽くしたい場合などは
KeepEigen .false.
KeepPbp .false.
等のコマンドを適宜書き込んで下さい。
step:3 epsPP_lmfh , eps_lmfh
eps計算を行うときは、epsPP_lmfh(局所場補正なし)とeps_lmfh(局所場補正あり)のどちらかを使います。
使い方は
// example
mpirun epsPP_lmfh -np 4 si
計算が終わるとEPS000*.nlfc.dat
というファイルがGWinputで設定したq点の数分作られます。この中は
// example EPS0001.nlfc.dat
q(1:3) w(Ry) eps epsi --- NO LFC
0.01000000 0.00000000 0.00000000 0.0000E+00 0.276888086703565E+02 0.211273167660642E-17 0.361156744555281E-01 -0.275572453667495E-20
0.01000000 0.00000000 0.00000000 0.1015E-04 0.276873286605807E+02 0.424191214559347E-01 0.361175202203266E-01 -0.553348246663633E-04
0.01000000 0.00000000 0.00000000 0.3076E-04 0.276716446748960E+02 0.128515093142673E+00 0.361372966009293E-01 -0.167832020581202E-03
0.01000000 0.00000000 0.00000000 0.5200E-04 0.276450859807482E+02 0.197440420455938E+00 0.361709489903162E-01 -0.258331892398948E-03
0.01000000 0.00000000 0.00000000 0.7389E-04 0.276274571460234E+02 0.249411594405801E+00 0.361929258459201E-01 -0.326737828014011E-03
1~3行目にq点座標、4行目にエネルギー(Ry単位)、5・6行目が誘電関数の実部・虚部、7・8行目が誘電関数の逆数の実部・虚部 が書かれています。
バンド内・間寄与の誘電関数
通常の誘電関数計算のほかに、バンド内遷移の寄与とバンド間遷移の寄与とを分けて誘電関数を計算することも可能です。 この計算は、金属系などで誘電関数の構造や複合プラズモンを解析するときに有用です。
具体的な方法は、まずGWinputで小さなq座標とそこから少しだけずれたq座標を書いてください。
// example
<QforEPS>
0 0 0.0001
0 0 0.001
0 0 0.01
・・・
</QforEPS>
他は通常計算と同じように計算したい方向のq座標を入れてください。
あとは、epsPP_lmfhの代わりにepsPP_lmfh_intraを用いると計算されます。
// example
mpirun epsPP_lmfh_intra -np 4 si
計算が終わるとEPS000*.nlfc.dat.intrabandonly
、EPS000*.nlfc.dat.interbandonly
というファイルが作られます。中身のデータは通常計算のときと同じです。