====== 概要 ======
* フェルミ面を描きます。
* XCrySDenを使います。
====== フェルミ面の描き方 ======
SCF計算を事前に済ませておいてください。
- XCrySDenを起動
$ xcrysden --wien_fermisurface /
* --wien_fermisurfaceの後ろには作業ディレクトリのパスが入ります。上は現在いるディレクトリと同じ場合。
* Xcrysdenを起動して [File]→[Open WIEN2k]→[Fermi Surface] で、計算を行っているディレクトリを選択するのでも可
- Number of kpointsを多めにとる(フェルミ面がきれいになるまで徐々に増やしていけば良い)
- [Generate k-mesh]→[Done]
- [Calculate Eigenvalues [x lapw1 ]]
* 並列化計算をする場合はParallel execution of lapw1/lapw2にチェックを入れる
* k点が多いと時間がかかる
- [Calculate Fermi energy [x lapw2 -fermi]]
- [Render Fermi surface]
* Specify the Fermi energyはそのままにして[OK]
* BarGraphやBandwidthから、select bandsのフェルミ準位にかかっているバンドを選択して[Selected]
* それぞれのバンドのフェルミ面を見ることができる。全部を一気に表示したかったら[Merged Bands]を選ぶ
* できたフェルミ面を保存したい場合はフェルミ面の表示領域で右クリックして[File]->[Save Fermi Surface(s) in BXSF format]
* 保存したファイルはそれぞれのバンドのフェルミ面で分かれてしまうので(ファイル名はcase.bxsf.band-xとなる。xは対応するバンドのインデックス)、下のような感じになるように自分でファイルを開いて結合してください
BEGIN_INFO
Fermi Energy: (フェルミ準位)
END_INFO
BEGIN_BLOCK_BANDGRID_3D
band_energies
BANDGRID_3D_BANDS
(バンドの数)
(k点の数)
(基準点)
(逆格子ベクトル1)
(逆格子ベクトル2)
(逆格子ベクトル3)
BAND: (最初のバンド)
(データ)
BAND: (次のバンド)
(データ)
・・・
BAND: (最後のバンド)
(データ)
END_BANDGRID_3D
END_BLOCK_BANDGRID_3D
* 再び見るときは次のコマンドで開く
$ xcrysden --bxsf case.bxsf
===== 軌道ポテンシャルを入れている場合 =====
XcrysdenからWIEN2kを呼び出すときに -orb オプションを入れられない。
なのでGGA+Uをしている場合は先にlapw1, lapw2を計算しておく
$ x kgen # k点数を指定
$ x lapw1 -up -orb
$ x lapw1 -dn -orb
$ x lapw2 -up -fermi -orb # アップスピンのフェルミエネルギーを計算
$ x lapw2 -dn -fermi -orb # アップとダウンでフェルミ面が異なる場合
$ xcrysden --wien_fermisurface / # Render Fermi Surfaceを選択
===== 注意 =====
* XcrysDenのソースコードにk点数の上限が定められている
* もし文句を言われたらXCrysDenのソースコードから wn_readbakgen.f を開いて MAX_NKPT(全ブリルアンゾーンのk点数の上限)と MAX_IRNKPT(既約ブリルアンゾーンのk点数の上限)の値を増やしてコンパイルしなおせばよい。