Sctk Documentation - Superconducting Toolkit

Sctk Documentation
リリース 0.1.0
kawamura
2017 年 01 月 23 日
Contents
1 はじめに
1
2
2
GNU General Public License
3 インストール方法
3.1 このパッケージに含まれているファイルおよびディレクトリ . . . . . . . . . . . . . . . . . . .
3.2 要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 インストール手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 各プログラムの説明
4.1 scdft.x . . . . . . . . . . . . .
4.2 rpa_el.x / rpa.x . . . . . . . . .
4.3 get_eigval.x . . . . . . . . . . .
4.4 twingrid.sh . . . . . . . . . . .
4.5 deltaf.x / qpdos.x / ultrasonic.x
3
3
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
8
9
10
10
5 チュートリアル
5.1 電荷密度の SCF 計算 . . . . . . . . . . . . . .
5.2 フォノンおよび電子-フォノン相互作用の計算
5.3 遮蔽 Coulomb 相互作用の計算 . . . . . . . . .
5.4 SCDFT 計算 . . . . . . . . . . . . . . . . . . .
5.5 ポスト処理 . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
13
14
14
6 波数グリッドおよびバンド範囲の指定について
6.1 バンドの範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 波数グリッド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
16
16
7 問い合わせ先
18
8 参考文献
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
Chapter 1
はじめに
この文書では超伝導密度汎関数理論 (SCDFT) に基づく第一原理計算プログラムパッケージ「Superconducting
Toolkit」についての解説を行っている. Superconducting Toolkit は Quantum ESPRESSO のアウトプットを用い
てギャップ方程式
∆nk
(
)
el−ph
el−el
1 ∑ Knkn
βEn′ k′
′ k ′ + Knkn′ k ′ ∆n′ k ′
=−
tanh
2 ′ ′
Znk
En′ k′
2
(1.1)
nk
を構成し, それを解いてギャップ関数 ∆nk を計算する. このソフトウェアは東京大学物性研究所の河村光晶に
よって開発された.
1
Chapter 2
GNU General Public License
Superconducting Toolkit - First-principles superconducting electronic structure calculation package
Copyright (C) 2015 Mitsuaki
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see &lthttp://www.gnu.org/licenses/>.
2
Chapter 3
インストール方法
警告: この章で書かれている事柄は今後のアップデート (バージョン 1.0) で変更される予定である.
3.1 このパッケージに含まれているファイルおよびディレクトリ
• doc/ : マニュアルのディレクトリ
– doc/index.html : マニュアルのトップページ
• sample/ : サンプル入力ファイル
• src/ : ソースファイルディレクトリ
• make.sys : ビルド環境設定用ファイル
• README.md : README
3.2 要件
以下のものが必要となる.
• fortran コンパイラ
• MPI ライブラリ
• BLAS ライブラリ
• FFTW ライブラリ
• DFPT-tetra パッチをあてた Quantum ESPRESSO(+PHonon)
DFPT-tetra パッチをあてた Quatum ESPRESSO のインストールするには、次のようにする.
まず, オリジナルの Quantum ESPRESSO のダウンロードサイト
http://qe-forge.org/gf/project/q-e/frs/
から espresso-{version}.tar.gz および PHonon-{version}.tar.gz をダウンロードし展開する。
$ tar xzvf espresso-{version}.tar.gz
$ tar xzvf PHonon-{version}.tar.gz -C espresso-{version}/
3
Sctk Documentation, リリース 0.1.0
次に, DFPT-tetra のダウンロードサイト
http://qe-forge.org/gf/project/dfpttetra/frs/
から DFPT-tetra パッチをダウンロードし、QE のディレクトリ内に展開する.
$ tar xzvf dfpttetra-{version}.tar.gz -C espresso-{version}.tar.gz
最後に展開したディレクトリの中に入り、ビルドする.
$ cd espresso-{version}/
$ ./configure options
$ make pw pp ph
3.3 インストール手順
1. 以下の場所から sctk-{version}.tar.gz ファイルをダウンロードして, QE のトップディレクトリに
置く.
http://osdn.jp/projects/sctk/releases/
2. ダウンロードした sctk-{version}.tar.gz ファイルを, QE のトップディレクトリ内で 展開し, 出来
たディレクトリに入る.
$ cd espresso-{version}/
$ tar xzvf sctk-{version}.tar.gz
$ cd sctk/
3. ビルド環境設定ファイル make.sys を, 自分の環境に合わせて編集する. 設定すべき変数は次の通りで
ある.
• MPIF90 : MPI を使った fortran コンパイルコマンド (mpif90 など)
• FFLAGS : fortran コマンドのオプション (-fopenmp -O3 など)
• FFTW_INC_DIR : fftw3.f を含むディレクトリへのパス (/usr/include/ など)
• FFTW_LINK : FFTW3 のリンクオプション (-lfftw3 など)
• BLAS_LINK : BLAS のリンクオプション (-lblas など)
4. src/ ディレクトリ内でコンパイルする.
$ cd src/
$ make all
いくつかの実行可能ファイルが作られるので, このディレクトリを環境変数 PATH に追加すると便利で
ある.
4
Chapter 3. インストール方法
Chapter 4
各プログラムの説明
Superconducting Toolkit にはメインプログラム
• scdft.x : ギャップ方程式を解いて超伝導ギャップ ∆nk を計算する.
el−el
• rpa_el.x : scdft.x の前処理として, QE で計算した Kohn-Sham 軌道から 電子間 Coulom 相互作用行列 Knkn
′ k′
を計算する.
• twingrid.sh : rpa_el.x で用いる Kohn-Sham 軌道を計算する 2 重 k 点グリッドを生成するためのスクリプト.
• get_eigval.x : scdft.x, rpa_el.x の前処理として, QE で計算した Kohn-Sham エネルギーを読み込み, ファイ
ルに出力する.
および付加的プログラム
• deltaf.x : scdft.x で得られた ∆nk からギャップ方程式を非自己無撞着に計算し, FermiSurfer でプロット可
能なファイルを出力する.
• qpdos.x : scdft.x で得られた ∆nk からギャップ方程式を非自己無撞着に計算してから, 準粒子 DOS を計算
する.
• ultrasonic.x : scdft.x で得られた ∆nk からギャップ方程式を非自己無撞着に計算してから, 超音波吸収係数
を計算する.
• rpa.x : rpa_el.x で行った Chebysev 補間が上手く行っているかどうかを確かめるときに用いる.
• verify.x : rpa_el.x で行った Chebysev 補間が上手く行っているかどうかを確かめるときに用いる.
• bin2txt.x : rpa.x の出力をバイナリファイルからテキストファイルへ変換する
がある. 次からこれらのプログラムについて説明する.
4.1 scdft.x
4.1.1 使い方
mpiexec options PATH/scdft.x < input_file
4.1.2 標準入力書式
標準入力の書式は次のとおりである. なお, この書式は deltaf.x / qpdos.x / ultrasonic.x と同一である.
5
Sctk Documentation, リリース 0.1.0
&CONTROL
prefix =
/
&SYSTEM
temp
fbee
lbee
xic
nmf
nx
ne
emin
emax
ltetra
electron_maxstep
conv_thr
/
=
=
=
=
=
=
=
=
=
=
=
=
これらのパラメーターは順不同に指定できる. また省略した場合はデフォルト値が使われる.
6
Chapter 4. 各プログラムの説明
Sctk Documentation, リリース 0.1.0
パラ
メー
ター
prefix
型
デフォルト値
説明
文
字
列
正
の
実
数
正
の
整
数
正
の
整
数
実
数
”.”
pw.x の入力の prefix と同じにする.
0.1
温度. 単位ケルビン.
1
全バンドのうち, ギャップ方程式の計算に含める一番初めのバンド.
全バンドのうち,
rpa_el.x で考慮したバ
ンド数と同じ
ギャップ方程式の計算に含める最後のバンド.
-1.0
nmf
整
数
10
nx
正
の
整
数
正
の
整
数
正
の
実
数
正
の
実
数
1 or
2
100
ギャップ関数外挿法に用いるパラメーター. 単位 Ry. これを 0.0
未満にするとギャップ関数外挿法を使わない. デフォルトでは外挿
法を使わない設定になっている.
Comlomb カーネルの計算で用いる松原振動数積分に用いる点の
数. 0 にすると静的な Coulomb 相互作用のみをつかう. また, 負の
値にすると Coulomb 相互作用項を 0 として (フォノン項のみを考
慮して) 計算する.
scdft.x のみで使用フェルミ面近傍のバンドの付加的エネルギーグ
リッドのグリッド数.
temp
fbee
lbee
xic
ne
emin
emax
ltetra
elec正
tron_maxstep
の
整
数
conv_thr 正
の
実
数
4.1. scdft.x
50
qpdos.x のみで使用. 準粒子 DOS を計算するエネルギー点数.
1.0e-7
scdft.x のみで使用. フェルミ面近傍のバンドの付加的エネルギー
グリッドのためのパラメータ. 単位 Ry.
5.0
qpdos.x のみで使用. 準粒子 DOS を計算するエネルギーグリッド
の上限. 単位 meV.
2
scdft.x, qpdos.x, ultrasonic.x で使用, . 使用するテトラへドロン法の
種類を指定する. 1:線形テトラへドロン法, 2: 最適化テトラへドロ
ン法.
scdft.x のみで使用, ギャップ方程式を反復法で解くときの反復回数
の上限数.
100
1.0e-15
scdft.x のみで使用, ギャップ方程式を反復法で解くときの, 新旧の
ギャップ関数の差の 2 乗平均に対する収束判定のしきい値. 単位
Ry.
7
Sctk Documentation, リリース 0.1.0
4.1.3 入力データ
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
• {prefix}.save/eigval.dat : 通常の DFT 計算で求めた Kohn-Sham エネルギーやその k メッシュ
情報, 対称操作を含む. get_eigval.x により生成される.
• elph1.dat, elph2.dat, · · · : 各 q 点での電子-フォノン相互作用, フォノン振動数. ph.x により作ら
れる.
• vel1.dat, vel2.dat, · · · : 各 q 点での遮蔽 Coulomb 相互作用の Chebyshev 補間の係数. rpa_el.x によ
り生成される.
4.1.4 出力ファイル
プログラムを実行したディレクトリに, 次のものが作られる.
• delta.dat : 超伝導ギャップ関数 ∆nk . 対応する Kohn-Sham エネルギー ξnk , 積分重み, バンド番号, k 点
番号, 繰りこみ因子 Znk
4.2 rpa_el.x / rpa.x
4.2.1 使い方
mpiexec options PATH/rpa_el.x < input_file
4.2.2 標準入力書式
標準入力の書式は次のとおりである. なお, この書式は rpa.x と同一である.
&CONTROL
prefix =
/
&SYSTEM
ng(1:3) =
start_q =
last_q =
nmf =
ltetra =
laddxc =
ecutwfc =
/
これらのパラメーターは順不同に指定できる. また省略した場合はデフォルト値が使われる.
8
Chapter 4. 各プログラムの説明
Sctk Documentation, リリース 0.1.0
パラ
メー
ター
prefix
型
デフォルト値
説明
文字
列
ng(1:3) 正の
整数
配列
start_q 正の
整数
last_q 正の
整数
nmf
正の
整数
”.”
pw.x の入力の prefix と同じにする.
eigval.dat の k
点メッシュ数
と同じ
1
波動関数データの k 点メッシュ. twingrid.sh の入力と同じにしなければ
ならない.
start_q
遮蔽 Coulomb 相互作用を計算する最後の q 点のインデックス
5
ltetra
1 or 2
2
lad0 or 1
dxc
ecutwfc 実数
0
遮蔽 Coulomb 相互作用を計算する松原振動数の数. 0 を指定した場合
には, rpa.x では静的部分のみ計算する. rpa_el.x では静的部分に加えて,
振動数無限大 (遮蔽なしの計算もする.
使用するテトラへドロン法の種類を指定する. 1:線形テトラへドロン
法, 2: 最適化テトラへドロン法.
遮蔽を計算するときの近似のレベルを指定する. 0 : RPA, 1: 断熱的
LDA.
分極関数を計算するときの平面波カットオフ. 負の値を指定した場合は
カットオフを設けずに FFT グリッド内のすべての平面波を使う.
30.0
遮蔽 Coulomb 相互作用を計算するはじめの q 点のインデックス
4.2.3 入力データ
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
• {prefix}.save/eigval.dat : 通常の DFT 計算で求めた Kohn-Sham エネルギーやその k メッシュ
情報, 対称操作を含む. get_eigval.x により生成される.
• {prefix}.save/data-file.xml : 格子定数等の情報を含む. pw.x により生成される.
• {prefix}.save/K?????/gkvectors.dat : 各 k 点の Kohn-Sham 軌道の逆格子点の情報. ????? に
は k 点の番号が入る. pw.x において wf_collect=.true. とすると生成される.
• {prefix}.save/K?????/evc.dat : 各 k 点の Kohn-Sham 軌道. ????? には k 点の番号が入る.
pw.x において wf_collect=.true. とすると生成される.
4.2.4 出力ファイル
プログラムを実行したディレクトリに, 次のものが作られる.
• vc{number}.dat : rpa.x を実行した場合のみ. 各 q 点での遮蔽 Coulomb 相互作用.
• vel{number}.dat: rpa_el.x を実行した場合のみ. 各 q 点での遮蔽 Coulomb 相互作用の Chebyshev 補
間の係数.
4.3 get_eigval.x
4.3.1 使い方
$ PATH/get_eigval.x
すると prefix は何かと尋ねられるので, pw.x のインプットと同じものを入力する.
4.3. get_eigval.x
9
Sctk Documentation, リリース 0.1.0
4.3.2 入力データ
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
• {prefix}.save/data-file.xml : 格子定数等の情報を含む. pw.x により生成される.
• {prefix}.save/K?????/eigenval.xml : 各 k 点の Kohn-Sham エネルギー. ????? には k 点の番
号が入る. pw.x によって出力される. wf_collect が .true. でも .false. でも生成される.
4.3.3 出力ファイル
プログラムを実行したディレクトリに, 次のものが作られる.
• {prefix}.save/eigval.dat : 通常の DFT 計算で求めた Kohn-Sham エネルギーやその k メッシュ
情報, 対称操作を含む.
4.4 twingrid.sh
4.4.1 使い方
PATH/twingrid.sh nk1 nk2 nk3 >> input_file_for_pw.x
nk1, nk2, nk3 はそれぞれの逆格子ベクトルの方向の k 点分割数.
4.4.2 標準出力
次のように標準出力される.
K_POINTS crystal
Total_number_of_k
k_vector1 1.0
k_vector2 1.0
k_vector3 1.0
:
これにより, Γ 点を含むグリッドと, そこから半グリッドぶんずらしたグリッド上の k 点がセットで生成される.
上の使い方では, この標準出力を pw.x の入力ファイルの末尾にリダイレクトしている.
4.5 deltaf.x / qpdos.x / ultrasonic.x
4.5.1 使い方
mpiexec options PATH/deltaf.x < input_file
mpiexec options PATH/qpdos.x < input_file
mpiexec options PATH/ultrasonic.x < input_file
4.5.2 標準入力書式
標準入力の書式は scdft.x 参照.
10
Chapter 4. 各プログラムの説明
Sctk Documentation, リリース 0.1.0
4.5.3 入力データ
プログラムを実行しているディレクトリ内に, 次のものを用意しておく必要がある.
• {prefix}.save/eigval.dat : 通常の DFT 計算で求めた Kohn-Sham エネルギーやその k メッシュ
情報, 対称操作を含む. get_eigval.x により生成される.
• elph1.dat, elph2.dat, · · · : 各 q 点での電子-フォノン相互作用, フォノン振動数. ph.x により作ら
れる.
• vel1.dat, vel2.dat, · · · : 各 q 点での遮蔽 Coulomb 相互作用の Chebyshev 補間の係数. rpa_el.x によ
り生成される.
• delta.dat : scdft.x によって生成される, ギャップ関数 ∆nk のファイル.
4.5.4 出力ファイル
プログラムを実行したディレクトリに, 次のものが作られる.
• delta.frmsf, Z.frmsf : (deltaf.x のみ) 超伝導ギャップ関数 ∆nk およびくりこみ因子 Znk の Fermi
面上での値をプロットするための, fermisurfer インプットファイル.
• qpdos.dat : (qpdos.x のみ) 第 1 列:準粒子エネルギー (単位 meV), 第 2 列:準粒子状態密度 (単位 Ry−1 ).
4.5. deltaf.x / qpdos.x / ultrasonic.x
11
Chapter 5
チュートリアル
以下のチュートリアルは sample/ 内で行う. このチュートリアルで使われている擬ポテンシャル
B.pbe-n-rrkjus_psl.0.1.UPF
Mg.pbe-n-rrkjus_psl.0.3.0.UPF
は, THEOS グループによる, PS Library の一部である.
5.1 電荷密度の SCF 計算
入力ファイル: scf.in
プログラム: pw.x (QuantumESPRESSO)
$ mpiexec {option} PATH/pw.x {option} -in scf.in > scf.out
calculation = "scf" として pw.x を実行する.
ノート: 次の フォノンおよび電子-フォノン相互作用の計算, 遮蔽 Coulomb 相互作用の計算 はどちらを先にやっ
ても変わらない.
5.2 フォノンおよび電子-フォノン相互作用の計算
5.2.1 フォノン振動数, 変移ポテンシャルの計算
入力ファイル: ph.in
プログラム: ph.x (QuantumESPRESSO)
重要なパラメーター
fildyn = ’mgb2.dyn’: 動力学行列のファイル名. 次のステップの計算で使われる.
fildvscf = ’dv’,: 変移ポテンシャルのファイル名. 次のステップの計算で使われる.
ldisp = .true.: 一様 q グリッド上でフォノンを計算する.
lshift_q = .true.: Γ 点の特異性を避けるために, q グリッドをずらす.
nq1, nq2, nq3: q グリッドの分割数.
12
Sctk Documentation, リリース 0.1.0
$ mpiexec {option} PATH/ph.x {option} -in ph.in > ph.out
ノート: 慣れている人は 次の 電子-フォノン相互作用の計算 と合わせて, 各 q 点ごとに別々の実行を同時に走
らせることをおすすめする.
5.2.2 電子-フォノン相互作用の計算
入力ファイル: elph.in
プログラム: ph.x (QuantumESPRESSO)
重要なパラメーター
electron_phonon = "scdft_input": すでに計算されている変移ポテンシャル, ダイナミカ
ルマトリックスを読み込み, 電子-フォノンバーテックスを計算する.
elph_nbnd_min, elph_nbnd_max: ギャップ方程式には Fermi 準位近傍の電子-フォノン相互作
用しか寄与しないので, 計算コストを下げるために電子-フォノン相互作用を求めるバンドの本数を絞
る. Fermi 準位を含むバンドは, パッチをあてた QuantumESPRESSO にある, fermi_velocity.x
によって調べることが出来る.
$ mpiexec {option} PATH/ph.x {option} -in elph.in > elph.out
5.3 遮蔽 Coulomb 相互作用の計算
5.3.1 細かい k グリッドでの non SCF 計算
入力ファイル: nscf.in
プログラム: pw.x (QuantumESPRESSO)
重要なパラメーター
calculation = "nscf"
nbnd: 分極関数を計算するため, 非占有バンドも計算しておく必要がある. ただし, 半導体の計算の
時ほどたくさんとる必要はない. 目安は占有バンドと同程度である.
$ mpiexec {option} PATH/pw.x {option} -in nscf.in > nscf.out
計算が完了したあと続けて, get_eigval.x を実行する.
$ PATH/get_eigval.x
prefix は何かと聞かれるので, pw.x の入力と同じものを入力する.
5.3.2 遮蔽 Coulomb 相互作用計算のための波動関数の計算
入力ファイル: twin.in
プログラム: pw.x (QuantumESPRESSO)
重要なパラメーター
wf_collect = .true.
5.3. 遮蔽 Coulomb 相互作用の計算
13
Sctk Documentation, リリース 0.1.0
calculation = "bands": この時 k 点メッシュに関しては次のように twingrid.sh の出力をファイル末尾に
リダイレクトする.
$ PATH/twingrid.sh 6 6 4 >> twin.in
この時の, k 点メッシュは 電子-フォノン相互作用の計算 の ph.x のインプットの nq1, nq2, nq3 と同じにす
る. このインプットで pw.x を実行する.
$ mpiexec {option} PATH/pw.x {option} -in twin.in > twin.out
5.3.3 遮蔽 Coulomb 相互作用の計算
入力ファイル: rpa.in
プログラム: rpa_el.x
ノート: 慣れている人は first_q を変えた入力ファイルを作って, それぞれの q 点について同時実行をする
ことをおすすめする.
$ mpiexec {option} PATH/rpa_el.x < rpa.in > rpa.out
5.4 SCDFT 計算
入力ファイル: scdft.in
プログラム: scdft.x
フォノンおよび電子-フォノン相互作用の計算, 遮蔽 Coulomb 相互作用の計算 の計算が全て終了した段階で
SCDFT 計算を行う.
$ mpiexec {option} PATH/scdft.x < scdft.in > scdft.out
5.5 ポスト処理
入力ファイル: scdft.in
プログラム: deltaf.x / qpdos.x / ultrasonic.x
SCDFT 計算 でもとめた delta.dat ( ∆nk ) を用いて次の量を計算することができる.
FermiSurfer でプロット可能な ∆nk データ
$ mpiexec {option} PATH/deltaf.x < scdft.in > deltaf.out
超伝導準粒子 DOS. 計算時間は比較的長い.
$ mpiexec {option} PATH/qpdos.x < scdft.in > qpdos.out
超音波吸収係数. 結果は標準出力される.
$ mpiexec {option} PATH/ultrasonic.x < scdft.in > ultrasonic.out
14
Chapter 5. チュートリアル
Sctk Documentation, リリース 0.1.0
Figure 5.1: MgB2 のギャップ関数.
5.5. ポスト処理
15
Chapter 6
波数グリッドおよびバンド範囲の指定につ
いて
本計算では様々な波数グリッドやバンドを指定する範囲が出てくるため分かりにくい場合がある. ここではそ
れらについて説明をする.
6.1 バンドの範囲
• 電荷密度の SCF 計算, フォノン振動数, 変移ポテンシャルの計算 でのバンド上限 nbnd(scf)
pw.x が価電子数から自動決定するものを使えばよい. したがって入力ファイルで指定する必
要はない.
• 遮蔽 Coulomb 相互作用の計算 でのバンド上限 nbnd(rpa)
典型的には nbnd(rpa) を nbnd(scf) の 2 倍程度にする.
rpa_el.x の計算コストは, nbnd(rpa) の 2 乗に比例する.
• 電子-フォノン相互作用の計算 での elph_nbnd_min, elph_nbnd_max
典型的には Fermi 準位を含むバンドの下限と上限 ( fermi_velocity.x によって調べること
が出来る) だが, 極めて大きいフォノンの振動数を持つ物質に対してはより広くとる必要がある.
• scdft.x における, 電子-電子 Coulomb 項のバンドの上限と下限 fbee, lbee
fbee=1, lbee=nbnd(rpa), すなわちデフォルトのままで良い. バンド数に対する収束を調べ
る場合などにそこから減らしてみる.
• deltaf.x によって出力されるバンドの上限と下限 fbfs, lbfs
(バンド交差を無視した上での)Fermi 面を横切るバンドの上限と下限がプログラムによって自
動計算される.
これらのバンドの大小関係は次のようになる.
1 ≤ fbee ≤ elph_nbnd_min ≤ fbfs ≤ lbfs ≤ elph_nbnd_max ≈ nbnd(scf) ≤ lbee ≤ nbnd(rpa)
6.2 波数グリッド
• 電荷密度の SCF 計算, フォノン振動数, 変移ポテンシャルの計算 での, 電子状態に関する波数グリッド
16
Sctk Documentation, リリース 0.1.0
pw.x のインプットファイルで, 次のように指定される.
K_POINTS automatic
{nk1} {nk2} {nk3} 0 0 0
このグリッドで得られる k 点数 Nksmooth に対する各プログラムの計算コストの依存性は次の
ようになる.
– 電荷密度の SCF 計算, フォノン振動数, 変移ポテンシャルの計算 の計算コストは Nksmooth
に比例する.
• フォノンおよび電子-フォノン相互作用の計算, 遮蔽 Coulomb 相互作用計算のための波動関数の計算 での
波数グリッド
ph.x のインプット nq1, nq2, nq3 と, twingrid.sh の引数, および 電子-フォノン相互作用の
計算 での nk1, nk2, nk3 は同じにしなければならない.
このグリッドで得られる q 点数 Nq に対する各プログラムの計算コストの依存性は次のように
なる.
– pw.x の計算コストは Nq に比例する.
– フォノン振動数, 変移ポテンシャルの計算 での (すべての q での計算を合わせた) 計算コス
トは Nq に比例する.
– 電子-フォノン相互作用の計算 での (すべての q での計算を合わせた) 計算コストは Nq2 に
比例する.
– rpa_el.x での (すべての q での計算を合わせた) 計算コストは Nq2 に比例する.
• 細かい グリッドでの non SCF 計算 での波数グリッド [1]
これは状態密度を計算するときと同程度に細かい k グリッドを取る必要がある. このグリッド
で得られる k 点数 Nkdense に対する各プログラムの計算コストの依存性は次のようになる.
– scdft.x および rpa_el.x の計算コストは Nkdense にあまり影響されない.
– deltaf.x / qpdos.x / ultrasonic.x の計算コストは Nkdense に比例する.
これらの波数グリッドの大小関係は次のようになる.
Nq ≤ Nksmooth ≤ Nkdense
6.2. 波数グリッド
17
Chapter 7
問い合わせ先
プログラムのバグや質問は以下のフォーラムへご投稿ください.
http://osdn.jp/projects/sctk/forums/
開発に参加したい方は以下の連絡先にて受け付けております.
東京大学物性研究所
河村光晶
mkawamura__at__issp.u-tokyo.ac.jp
[1] M. Kawamura, R. Akashi, S. Tsuneyuki,
18
Chapter 8
参考文献
[1] M. Kawamura, R. Akashi, S. Tsuneyuki arXiv:1610.07329
19