プログラムの説明¶
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 の入力ファイルの末尾にリダイレクトしている.
