密度汎関数理論によるバンド計算では、バンドギャップを過小評価してしまうことが知られています。 バンドギャップの大きさを改善する方法はいくつか考案されていて、その中の一つであるハイブリッド汎関数法による計算方法を解説します。
汎関数の種類は様々な人が考案していて、WIEN2kにも多くのものが実装されています。 必要に応じて汎関数を変えることになりますが、よくわからなければデフォルトのままで十分です。
事前に通常のSCF計算を行ってください。
ハイブリッド汎関数に使う入力ファイルを対話形式で生成してくれるプログラムinit_hf_lapwがあるので、これを使います。
$ init_hf_lapw
設定するのは次の項目です。
設定が終わればrun_lapwによりハイブリッド汎関数を使ったSCF計算を実行します。
$ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -p
フラグ-hfでハイブリッド汎関数による計算を行います。 フラグ-redklistはRBZによる計算を行うときにつけますので、なければFBZでの計算となります。
$ rm case.klist_fbz $ rm case.klist_ibz $ rm case.outputkgenhf $ rm case.klist_rfbz $ rm case.klist_ribz $ run_kgenhf_lapw $ run_lapw -hf -redklist -ec 0.0001 -cc 0.0001 -newklist -p
通常通り計算できますが、QTL(軌道ごとの電荷密度に分解するプログラム)を実行する場合はオプション -hf が必要です。
x_lapw lapw2 と x_lapw tetra の実行の際にオプション -hf をつけてください
$ 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,d,d-eg,d-t2g 2 tot,s,p end $ x tetra -p -hf
バンド計算のみ、便利なスクリプトが用意されています。
$ run_bandplothf_lapw -redklist
$ x_lapw spaghetti -hf