プログラムの説明¶
Superconducting Toolkitのメインプログラム sctk.x の機能は次のとおりである。
前処理として, QEで計算したKohn-Sham軌道から 電子間Coulom相互作用行列 \(K^{el}_{n {\bf k} n' {\bf k}'}\) を計算する.
ギャップ方程式を解いて超伝導ギャップ \(\Delta_{n {\bf k}}\) を計算する.
ギャップ方程式を解いて超伝導ギャップ \(\Delta_{n {\bf k}}\) を計算し、2分法で転移温度を計算する.
後処理として、ギャップ方程式を非自己無撞着に計算し, FermiSurfer でプロット可能なファイルを出力する.
後処理として、ギャップ方程式を非自己無撞着に計算してから, 準粒子DOSを計算する.
後処理として、ギャップ方程式を非自己無撞着に計算してから, 超音波吸収係数を計算する.
この他に、 Coulomb相互作用の計算 で用いるKohn-Sham軌道を計算する 2重 \({\bf k}\) 点グリッドを生成するためのスクリプト twingrid.x がある。
使い方¶
mpiexec options PATH/sctk.x -in input_file
入力ファイル書式¶
入力ファイルの書式は次のとおりである.
&CONTROL
prefix =
outdir =
calculation =
/
&KEL
start_q =
last_q =
nci =
laddxc =
ecutfock =
nq1 =
nq2 =
nq3 =
lsf
/
&SCDFT
temp =
fbee =
lbee =
xic =
nmf =
nx =
ne =
emin =
emax =
electron_maxstep =
conv_thr =
fildyn =
spin_fluc =
/
これらのパラメーターはネームリスト内では順不同に指定できる. また省略した場合はデフォルト値が使われる.
ネームリスト CONTROL¶
パラメーター |
型 |
デフォルト値 |
説明 |
---|---|---|---|
prefix |
文字列 |
"pwscf" |
pw.x の入力の |
outdir |
文字列 |
"./" |
pw.x の入力の |
calculation |
文字列 |
"kel" |
計算の種類 |
ネームリスト KEL¶
calculation = "kel"
としたときに使われるパラメーター。
パラメーター |
型 |
デフォルト値 |
説明 |
---|---|---|---|
start_q |
正の整数 |
1 |
遮蔽Coulomb/スピンゆらぎ相互作用を計算する \({\bf q}\) 点の始点 |
last_q |
正の整数 |
既約 \({\bf q}\) 点数 |
遮蔽Coulomb/スピンゆらぎ相互作用を計算する \({\bf q}\) 点の終点 |
laddxc |
0 or 1 |
0 |
遮蔽を計算するときの近似のレベルを指定する. 0 : RPA, 1: 断熱的LDA. |
lsf |
0 or 1 |
0 |
スピンゆらぎ相互作用 [3] を計算する(1)かしない(0)か |
ecutfock |
実数 |
pw.x での値 |
分極関数を計算するときの平面波カットオフ [Ry]. |
nq1, nq2, nq3 |
正の整数 |
a2Fsaveの \({\bf k}\) 点メッシュ数と 同じ |
波動関数データの \({\bf k}\) 点メッシュ. twingrid.x の入力と同じにしなければならない. |
nci |
正の整数 |
5 |
遮蔽Coulomb相互作用を計算する松原振動数の数. |
ネームリスト SCDFT¶
calculation = "scdft"
としたときなどに使われるパラメーター。
パラメーター |
型 |
デフォルト値 |
説明 |
---|---|---|---|
temp |
正の実数 |
0.1 |
温度. 単位ケルビン. |
fbee |
正の整数 |
1 |
全バンドのうち, ギャップ方程式の計算に含める 一番初めのバンド. |
lbee |
正の整数 |
pw.x のnbnd |
ギャップ方程式の計算に含める最後のバンド. |
xic |
実数 |
-1.0 |
ギャップ関数外挿法に用いるパラメーター. 単位 Ry.
これを |
nmf |
整数 |
10 |
Comlombカーネルの計算で用いる松原振動数積分に用いる点の数.
|
nx |
正の整数 |
100 |
フェルミ面近傍のバンドの付加的エネルギーグリッドのグリッド数. |
ne |
正の整数 |
50 |
準粒子DOS計算 のみで使用. 準粒子DOSを計算するエネルギー点数. |
emin |
正の実数 |
1.0e-7 |
フェルミ面近傍のバンドの付加的エネルギーグリッドのためのパラメータ. 単位 Ry. |
emax |
正の実数 |
5.0 |
準粒子DOS計算 のみで使用. 準粒子DOSを計算するエネルギーグリッドの上限. 単位 meV. |
electron_maxstep |
正の整数 |
100 |
ギャップ方程式を反復法で解くときの反復回数の上限数. |
conv_thr |
正の実数 |
1.0e-15 |
ギャップ方程式を反復法で解くときの, 新旧のギャップ関数の差の2乗平均に対する収束判定のしきい値. 単位 Ry. |
filedyn |
文字列 |
"matdyn" |
ph.x の filedyn と同じにしなければならない。 |
spin_fluc |
論理型 |
.False. |
.True. にするとスピン揺らぎ [3] を含める。 |
scdft_kernel |
正の整数 |
1 |
|
lz_coulomb |
論理型 |
.False. |
Coulomb renormalization [6] |
入出力ファイル¶
sctk.xに関連するファイルは次の通りである。
{prefix}.xml¶
格子定数等の情報を含む. pw.x により生成される.
{prefix}.a2Fsave¶
通常のDFT計算で求めたKohn-Shamエネルギーやその \({\bf k}\) メッシュ情報, 対称操作を含む. pw.x で la2f=.true. とすると生成される.
{prefix}.save/wfc*.dat¶
各 \({\bf k}\) 点のKohn-Sham軌道. * には \({\bf k}\) 点の番号が入る. pw.x により生成される.
vel*.dat¶
各 \({\bf q}\) 点での遮蔽Coulomb相互作用のChebyshev補間の係数. * には \({\bf q}\) 点の番号が入る. sctk.x で calculation="kel" とすると出力される.
elph*.dat¶
各 \({\bf q}\) 点での電子-フォノン相互作用, フォノン振動数. * には \({\bf q}\) 点の番号が入る. ph.x で electron_phonon="scdft_input" とすると作られる.
lambda.frmsf, mu.frmsf¶
くりこみ因子 \(\lambda_{n {\bf k}}\) のFermi面上での値をプロットするための, FermiSurfer 用データファイル. sctk.x で calculation="lambda_mu_k" とすると出力される.
delta.dat¶
超伝導ギャップ関数 \(\Delta_{n {\bf k}}\). 対応するKohn-Shamエネルギー \(\xi_{n {\bf k}}\), 積分重み, バンド番号, \({\bf k}\) 点番号, 繰りこみ因子 \(Z_{n {\bf k}}\) sctk.x で calculation="scdft" とすると出力される.
qpdos.dat¶
第1列:準粒子エネルギー(単位 meV), 第2列:準粒子状態密度(単位 Ry\(^{-1}\)). sctk.x で calculation="qpdos" とすると出力される.
delta.frmsf, Z.frmsf¶
超伝導ギャップ関数 \(\Delta_{n {\bf k}}\) およびくりこみ因子 \(Z_{n {\bf k}}\) のFermi面上での値をプロットするための, FermiSurfer 用データファイル. sctk.x で calculation="deltaf" とすると出力される.
計算の種類¶
パラメーター calculation に次の文字列を入れて、計算の種類を指定する。
kel : 遮蔽Coulomb/スピン揺らぎ媒介相互作用¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
lambda_mu_k : 軌道ごとの電子フォノンパラメーター¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
scdft : ある温度でのSCDFT計算¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
scdft_tc : 2分法による転移温度の自動計算¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
qpdos : 準粒子状態密度¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
deltaf : Fermi面上でのギャップ関数を計算しFermiSurfer用ファイルを出力する¶
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
プログラムを実行したディレクトリに, 次のものが作られる.
ultrasonic : 超音波吸収係数¶
twingrid.x¶
sctk.x において calculation="kel" でCoulomb相互作用を計算するときのKohn-Sham軌道の計算(pw.x) において用いる2重 \({\bf k}\) グリッドを生成するスクリプト.
使い方¶
$ bash PATH/twingrid.x nk1 nk2 nk3 >> input_file_for_pw
nk1, nk2, nk3 はそれぞれの逆格子ベクトルの方向の \({\bf k}\) 点分割数.
標準出力¶
次のように標準出力される.
K_POINTS crystal
Total_number_of_k
k_vector1 1.0
k_vector2 1.0
k_vector3 1.0
:
これにより, \(\Gamma\) 点を含むグリッドと, そこから半グリッドぶんずらしたグリッド上の \({\bf k}\) 点がセットで生成される. 上の使い方では, この標準出力を pw.x の入力ファイルの末尾にリダイレクトしている.