チュートリアル

以下のチュートリアルは SCTK/examples/Al/ 内で行う.

電荷密度のSCF計算

入力ファイル: scf.in

プログラム: pw.x (QuantumESPRESSO)

$ export OMP_NUM_THREADS=1
$ mpiexec -np 29 PATH/pw.x -nk 29 -in scf.in > scf.out

重要なパラメーター

calculation = "scf"

pw.x でself-consistent計算を実行する.

フォノンおよび電子-フォノン相互作用の計算

フォノン振動数, 変移ポテンシャルの計算

入力ファイル: ph.in

プログラム: ph.x (QuantumESPRESSO)

$ mpiexec -np 29 PATH/ph.x -nk 29 -in ph.in > ph.out

重要なパラメーター

fildvscf = 'dv'

変移ポテンシャルのファイル名. 次のステップの計算で使われる.

ldisp = .true.

一様 \({\bf q}\) グリッド上でフォノンを計算する.

lshift_q = .true.

\(\Gamma\) 点の特異性を避けるために, \({\bf q}\) グリッドをずらす.

nq1, nq2, nq3

\({\bf q}\) グリッドの分割数.

電子-フォノン相互作用の計算

入力ファイル: epmat.in

プログラム: ph.x (QuantumESPRESSO)

$ mpiexec -np 8 PATH/ph.x -nk 8 -in epmat.in > epmat.out

重要なパラメーター

electron_phonon = "scdft_input"

すでに計算されている変移ポテンシャル, ダイナミカルマトリックスを読み込み, 電子-フォノンバーテックスを計算する.

elph_nbnd_min, elph_nbnd_max

ギャップ方程式にはFermi準位近傍の電子-フォノン相互作用しか寄与しないので, 計算コストを下げるために電子-フォノン相互作用を求めるバンドの本数を絞る. Fermi準位を含むバンドは, QuantumESPRESSO にある, fermi_velocity.x によって調べることが出来る.

遮蔽Coulomb/スピン揺らぎ相互作用の計算

細かいkグリッドでのnon SCF計算

入力ファイル: nscf.in

プログラム: pw.x (QuantumESPRESSO)

$ mpiexec -np 32 PATH/pw.x -nk 32 -in nscf.in > nscf.out

重要なパラメーター

calculation = "nscf"

Non Self-consistent 計算を行う.

la2f = .true.

Kohn-Shamエネルギーの情報を含むファイル pwscf.a2Fsave を出力する.

nbnd

分極関数を計算するため, 非占有バンドも計算しておく必要がある. ただし, 半導体の計算の時ほどたくさんとる必要はない. 目安は占有バンドと同程度である.

遮蔽Coulomb相互作用計算のための波動関数の計算

入力ファイル: twin.in

プログラム: pw.x (QuantumESPRESSO)

$ bash PATH/twingrid.x 4 4 4 >> twin.in
$ mpiexec -np 32 PATH/pw.x -nk 32 -in twin.in > twin.out

重要なパラメーター

calculation = "bands"

この時 \({\bf k}\) 点メッシュに関しては上記のように twingrid.x の出力をファイル末尾にリダイレクトする. この時の, \({\bf k}\) 点メッシュは 電子-フォノン相互作用の計算ph.x のインプットの nq1, nq2, nq3 と同じにする. このインプットで pw.x を実行する.

遮蔽Coulomb相互作用の計算

入力ファイル: sctk.in

プログラム: sctk.x

$ mpiexec -np 32 PATH/sctk.x -nk 32 -in sctk.in > kel.out

重要なパラメーター

calculation = "kel"

遮蔽Coulom/スピン揺らぎ媒介相互作用の計算を行う.

nq1, nq2, nq3

これらはこの前のステップの \({\bf k}\) グリッドと同じにする.

転移温度計算

フォノンおよび電子-フォノン相互作用の計算, 遮蔽Coulomb/スピン揺らぎ相互作用の計算 の計算が全て終了した段階でSCDFT計算を行う.

入力ファイル: sctk.in (一部書き換える)

プログラム: sctk.x

$ export OMP_NUM_THREADS=32
$ mpiexec -np 1 PATH/sctk.x < sctk.in > tc.out

重要なパラメーター

calculation = "scdft_tc"

この部分を書き換えて計算の種類を変える. ここでは2分法で \(T_c\) を求める.

その他の解析

パラメーター calculation を変えるといくつかの解析が行える.

入力ファイル: sctk.in (一部書き換える)

プログラム: sctk.x

$ mpiexec -np 1 PATH/sctk.x < sctk.in

重要なパラメーター

calculation = "lambda_mu_k"

FermiSurfer でプロット可能な \(\lambda_{n {\bf {\bf k}}}\) データを出力する.

calculation = "scdft"

ある温度でのSCDFT計算を行い, 以下のポスト処理で必要なファイル delta.dat を出力する.

temp

温度(単位ケルビン). これを 0 もしくは負の値にすると, ゼロケルビン用の特別なアルゴリズムによる計算を行う.

calculation = "deltaf"

FermiSurfer でプロット可能な \(\Delta_{n {\bf k}}\) データを出力する.

calculation = "qpdos"

超伝導準粒子DOS. 計算時間は比較的長い.

注釈

SCTK/examples/MgB2 には別のチュートリアルがある. ただし, これらのチュートリアルは \({\bf k}\) 点数やバンド数, 擬ポテンシャルなどの精度が 十分ではないことに注意.