電子格子相互作用と超伝導転移温度の計算 ====================================== 電子格子相互作用と超伝導転移温度の計算方法を紹介します。 例として、Al の計算を行います。 電子格子相互作用の計算では、以下の式で与えられるλを計算します。 .. math:: \lambda = \frac{2}{N(0)}\sum_{k,q,n,m,\nu} \frac{\left| g_{k,n,k+q,m}^\nu\right| ^2}{\omega_\nu} \delta(\epsilon_{k,n}) \delta(\epsilon_{k+q,m}) この計算で、δ関数はしばしばガウシアンなどに置き換えられます。 しかし、この和を精度よく評価するには、はDOSの計算のところでも紹介した通り、かなり細かいk,qのメッシュをとってガウシアンの幅依存性をみる必要があります。 quatum EPRESSO ではデフォルトでこれをみるための機能が実装されています。 なお、粗いメッシュの計算のみで精度よくλを評価する手法も提案されているので、 `そちら `_ も参考にしてください。 以下、k,q それぞれに対して粗いメッシュ、細かいメッシュを考えます。 細かいk,qメッシュはλの計算に使われるメッシュ、粗いk,qメッシュが電子状態、フォノンの計算に使われるメッシュです。 細かいkメッシュでのエネルギー計算 --------------------------------- まず細かいkメッシュ(この例では16x16x16)で :math:`\epsilon_{k,n}` を計算します。 そのために la2F オプションを指定します。 .. literalinclude:: files/elphon/al.scf_fit.in :lines: 19 * `al.scf_fit.in `_ :: % pw.x < al.scf_fit.in > al.scf_fit.out この計算の目的は、outdir の中に al.a2Fsave ファイルを作ることです。このファイルの中に :math:`\epsilon_{k,n}` の情報が含まれています。 粗いkメッシュでのscf計算 ------------------------ 次にフォノン計算のための電子状態計算を行います。 電子格子相互作用を計算するためには、k, k+q 点での波動関数が必要になりますが、この k, k+q での波動関数もここで作成します。(scf計算のあともう一度 nscf 計算して作ってもよいです) 従って、粗いk,qメッシュは k, k+q が全てkメッシュに含まれるようにとる必要があります。 例えば、k: 8x8x8, q: 5x5x5 というような取り方はできない(k+qがkメッシュ上にのらない)ので、その点だけ注意してください。 この例では、k: 8x8x8, q: 4x4x4 にしています。 * `al.scf.in `_ :: % pw.x < al.scf.in > al.scf.out 粗いqメッシュでのフォノン計算 ----------------------------- 次にフォノンの計算に移ります。 電子格子相互作用を計算するため、electron_phonon オプションを指定する以外は、普通のフォノン計算と同じです。 * `al.ph.in `_ :: % ph.x < al.ph.in > al.ph.out この計算で、粗いk,qメッシュでの電子格子相互作用が計算されるとともに、それを内挿して、細かいkメッシュと粗いqメッシュを使った :math:`\lambda_q` が計算されます。( :math:`\lambda = \sum_q \lambda_q` ) al.a2Fsave ファイルはここで内挿を行うときに自動的に読み込まれます。 フーリエ変換による内挿 ---------------------- 最後に q2r.x, matdyn.x を用いてフーリエ変換による q->r, r->q の内挿を行います。 どちらも電子格子相互作用にオプションを追加する以外はフォノン計算のときと同様です。 * `q2r.in `_ * `matdyn.in `_ :: % q2r.x < q2r.in > q2r.out % matdyn.x < matdyn.in これで、λおよびエリアシュベルグ関数の計算できます。 例えば lambda に以下のようにλの値が出力され、各smearing幅におけるエリアシュベルグ関数はa2F.dos* ファイルに出力されます。 .. literalinclude:: files/elphon/lambda