VASPKITを使ったUnfoldingしたバンド構造の書き出し方
自分の論文が出版されたので、布教も兼ねて使った手法の解説でもしたいと思います。
https://pubs.acs.org/doi/10.1021/acs.jpcc.2c06048
まずはVASPKITをインストールします。
これから先はVASPKITのTutorialsに書いてあることとほぼ同じなので、適宜そちらも見てください。
まずは真空層を含めた単位セルを作ります。
これは論文中にもあるmonoclinic - ZrO2 (111)面の単位セルですが
注意することがあって、必ずセルの中心が構造(いわゆるスラブ)の中心である必要があります。
(単純に真空層追加するだけじゃダメってこと)
あと酸素欠陥とかはまだ追加しないでね。
次にVASPKITを起動してKPATH.inファイルを作成します。
(必ずさっき作った単位セルで作成すること!)
今回は吸着系を扱うので2D系と同じ方法で以下のように302と打ち込んで作成します。
vaspkit 302
次にスーパーセルを作成します。
今回は2*2*1のもので計算するのでTRANSMAT.inファイルを以下のように作成します。
Read transformation matrix from the TRANSMAT.in file if it exists. 2 0 0 0 2 0 0 0 1
そしたら以下のコマンドを実行します。
vaspkit -task 400
そうするとSUPERCELL.vaspファイルができると思うので、これに適宜酸素欠陥や吸着種を追加していきます。
次に最初に作成したKPATH.inをもとにKPOINTSファイルを作成していきます。
詳細はvaspkitのtutorialsを見てね。
でKPOINTSが用意できたらINCARとPOTCARを用意します。
INCARは各々設定したいパラメーターはあると思うのでアレですが
LWAVE = .TRUE.
だけは必ず設定してね。
重たいWAVECARと共にVASPのJobが終わったら以下を実行します。
vaspkit -task 282
そうするとEBS.datファイルが書き出されると思うので
~/vaspkit/examples/band_unfolding/
の中にあるpythonスクリプトを使ってバンド構造を書き出します。
ちなみに丸の大きさはDOSでいうarb. unitの大きさみたいなものです。
最後に書くのもアレだけど構造最適化はGamma点だけであらかじめ回して
もう一度Slabの中心がスーパーセルの中心に来るようにしてバンド計算を一点計算で回す方が効率的かも。
(この時Slab+molの中心がスーパーセルの中心に来るのではないことは注意)