wien2k:ハイブリッド汎関数法
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wien2k:ハイブリッド汎関数法 [2020/07/04 15:59] – [各種物理量の計算] koudai | wien2k:ハイブリッド汎関数法 [2021/06/27 22:04] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 5: | Line 5: | ||
汎関数の種類は様々な人が考案していて、WIEN2kにも多くのものが実装されています。 | 汎関数の種類は様々な人が考案していて、WIEN2kにも多くのものが実装されています。 | ||
- | デフォルトではPBEという種類の汎関数を使います。 | ||
必要に応じて汎関数を変えることになりますが、よくわからなければデフォルトのままで十分です。 | 必要に応じて汎関数を変えることになりますが、よくわからなければデフォルトのままで十分です。 | ||
- | |||
- | 事前に通常のSCF計算を行ってください。 | ||
Line 15: | Line 12: | ||
===== ハイブリッド汎関数を使ったSCF計算 ===== | ===== ハイブリッド汎関数を使ったSCF計算 ===== | ||
+ | 事前に通常のSCF計算を行ってください。 | ||
ハイブリッド汎関数に使う入力ファイルを対話形式で生成してくれるプログラムinit_hf_lapwがあるので、これを使います。 | ハイブリッド汎関数に使う入力ファイルを対話形式で生成してくれるプログラムinit_hf_lapwがあるので、これを使います。 | ||
Line 26: | Line 24: | ||
- バンドの数nband | - バンドの数nband | ||
* case.inhfというファイルが作成され、自動的に開きます。 | * case.inhfというファイルが作成され、自動的に開きます。 | ||
- | * 計算に使うバンドの数を指定します。少なくとも電子が詰まっているバンド(価電子バンド)の数プラス1が必要です。 | + | * 計算に使うバンドの数を指定します。少なくとも電子が詰まっているバンド(占有バンド)の数プラス1が必要です。 |
- | * バンドの数が増えれば計算精度はあがりますが、計算時間はnbandの自乗で増えていきます。 | + | * 非占有バンドの数が増えれば計算精度はあがりますが、計算時間はnbandの自乗で増えていきます。 |
* case.scfが読み込まれ、価電子バンドの数や伝導バンドのエネルギー範囲などがわかるように画面に表示されますので、これを参考に指定します。 | * case.scfが読み込まれ、価電子バンドの数や伝導バンドのエネルギー範囲などがわかるように画面に表示されますので、これを参考に指定します。 | ||
* 設定後は新しく生成されたファイルcase.in1の6行目を確認し、もし考慮する一番上の伝導バンドのエネルギーがemax(=Ef+de)よりも大きくなるようであれば、deの値を大きくします。 | * 設定後は新しく生成されたファイルcase.in1の6行目を確認し、もし考慮する一番上の伝導バンドのエネルギーがemax(=Ef+de)よりも大きくなるようであれば、deの値を大きくします。 | ||
Line 59: | Line 57: | ||
$ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -newklist -p | $ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -newklist -p | ||
</ | </ | ||
+ | * バンド数とk点数について必ず収束を確認しましょう | ||
===== 各種物理量の計算 ===== | ===== 各種物理量の計算 ===== | ||
- | x_lapw | + | 通常通り計算できますが、QTL(軌道ごとの電荷密度に分解するプログラム)を実行する場合はオプション -hf が必要です。 |
+ | ==== 状態密度 ==== | ||
- | ==== バンド計算 ==== | + | x_lapw lapw2 と x_lapw tetra の実行の際にオプション -hf をつけてください |
- | + | ||
- | 通常通り、バンドの経路を指定するファイルcase.klist_bandを作成します。 | + | |
- | + | ||
- | 続いてrun_bandplothf_lapwを実行します(これは通常の x_lapw lapw1 -band の計算に相当します)。 | + | |
- | さきほどRBZを使った場合はオプション-redklistをつけます。 | + | |
< | < | ||
- | $ run_bandplothf_lapw | + | $ x_lapw kgen |
+ | $ x_lapw lapw1 -p | ||
+ | $ x_lapw lapw2 -p -qtl -hf # x_lapw qtl -p -hf も可 | ||
+ | $ configure_int_lapw -b total 1 tot, | ||
+ | $ x tetra -p -hf | ||
</ | </ | ||
- | 計算が終われば、通常通りcase.inspを作成し、フラグ-hfをつけて x_lapw spaghetti を実行します。 | ||
- | < | + | |
+ | ==== バンド計算 ==== | ||
+ | |||
+ | バンド計算のみ、便利なスクリプトが用意されています。 | ||
+ | |||
+ | - 通常通り、バンドの経路を指定するファイルcase.klist_bandを作成します。 | ||
+ | - run_bandplothf_lapwを実行します(これは通常の x_lapw lapw1 -band の計算に相当します)。さきほどRBZを使った場合はオプション-redklistをつけます。< | ||
+ | $ run_bandplothf_lapw -redklist | ||
+ | </ | ||
+ | - 通常通りcase.inspを作成し、フラグ-hfをつけて x_lapw spaghetti を実行します。< | ||
$ x_lapw spaghetti -hf | $ x_lapw spaghetti -hf | ||
</ | </ |
wien2k/ハイブリッド汎関数法.1593845996.txt.gz · Last modified: 2021/06/27 22:01 (external edit)