User Tools

Site Tools


wien2k:ハイブリッド汎関数法

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wien2k:ハイブリッド汎関数法 [2020/03/20 17:35] – [ハイブリッド汎関数を使ったSCF計算] koudaiwien2k:ハイブリッド汎関数法 [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 57: Line 55:
 $ rm case.klist_ribz $ rm case.klist_ribz
 $ run_kgenhf_lapw $ run_kgenhf_lapw
-$ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -newklist+$ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -newklist -p
 </code> </code>
 +    * バンド数とk点数について必ず収束を確認しましょう
  
 ===== 各種物理量の計算 ===== ===== 各種物理量の計算 =====
  
-x_lapw を使った計算はほぼハイブリッド汎関数法に対応しています。 +通常通り計算できますが、QTL(軌道ごとの電荷密度に分解するプログラム)を実行する場合はオプション -hf が必要です 
-実行する際にオプション -hf を付けてください。  + 
-==== 部分状態密度計算 ====+==== 状態密度 ==== 
 + 
 +x_lapw lapw2 と x_lapw tetra の実行の際にオプション -hf をつけてください
  
 <code> <code>
 $ x_lapw kgen $ x_lapw kgen
-$ x_lapw lapw1 -hf -p +$ x_lapw lapw1 -p 
-$ x_lapw lapw2 -qtl -hf -p +$ x_lapw lapw2 -p -qtl -hf    # x_lapw qtl -p -hf も可 
-</code> +$ configure_int_lapw -b  total 1 tot,d,d-eg,d-t2g  2 tot,s, end 
-case.int を適当に編集して +tetra -p -hf
-<code> +
-x_lapw tetra -hf+
 </code> </code>
 +
  
  
 ==== バンド計算 ==== ==== バンド計算 ====
  
-通常通り、バンドの経路を指定するファイルcase.klist_bandを作成します。+バンド計算み、便利なスクリプトが用意されています。
  
-続いてrun_bandplothf_lapwを実行します(これは通常の x_lapw lapw1 -band の計算に相当します)。 +  - 通常通り、バンドの経路を指定するファイルcase.klist_bandを作成します。 
-さきほどRBZを使った場合はオプション-redklistをつけます。 +  - run_bandplothf_lapwを実行します(これは通常の x_lapw lapw1 -band の計算に相当します)。さきほどRBZを使った場合はオプション-redklistをつけます。<code> 
-また、軌道ごとの重みを見る場合はオプション-qtlをつけます。 +$ run_bandplothf_lapw -redklist
- +
-<code> +
-$ run_bandplothf_lapw -redklist -qtl+
 </code> </code>
- +  - 通常通りcase.inspを作成し、フラグ-hfをつけて x_lapw spaghetti を実行します。<code>
-計算が終われば、通常通りcase.inspを作成し、フラグspaghettiとオプション-hfをつけてx_lapwを実行します。 +
- +
-<code>+
 $ x_lapw spaghetti -hf $ x_lapw spaghetti -hf
 </code> </code>
wien2k/ハイブリッド汎関数法.1584693357.txt.gz · Last modified: 2021/06/27 22:01 (external edit)