プログラムの説明

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 の入力の prefix と同じにする.

outdir

文字列

"./"

pw.x の入力の outdir と同じにする.

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. これを 0.0 未満にするとギャップ関数外挿法を使わない. デフォルトでは外挿法を使わない設定になっている.

nmf

整数

10

Comlombカーネルの計算で用いる松原振動数積分に用いる点の数. 0 にすると静的なCoulomb相互作用のみをつかう. また, 負の値にするとCoulomb相互作用項を0として (フォノン項のみを考慮して)計算する.

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

1: Lüders2005 [4], 2: Sanna2020 [5]

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 の入力ファイルの末尾にリダイレクトしている.