Wannier90を用いたSrVO3のワニエ軌道の作製
Last Update:2024/10/10
(2020/5/10)
1. はじめに
Wannier90はQuantum ESPRESSO (QE)などの第一原理計算コードから最局在ワニエ軌道を作成できるプログラムです。作成したワニエ軌道からタイトバインディングパラメータを求めたり、輸送特性を調べたりと色々な事に適用できます。ここではMateriApps LIVE!上でQEとWannier90を使ってSrVO3という物質のワニエ軌道の作成を行ってみたいと思います。なお、RESPACKというプログラムを使って作成したみた結果はこちらのページに記載されておりますので、そちらも是非ご覧ください。なお、使用するMateriApps LIVE!のバージョンが3.0以下の場合は以下のコマンドを実行してWannier90をインストールして下さい。
sudo apt-get update
sudo apt-get install wannier90
2. 計算の準備
まず、wannier90_srvo3という実行用ディレクトリを作り、そこにQEとWannier90の計算に使うインプットファイルをダウンロード&解凍しましょう。このインプットファイルはRESPACKというプログラムの例題にあるインプットを少し変更したものになっています。
mkdir wannier90_srvo3
cd wannier90_srvo3
wget https://ma.issp.u-tokyo.ac.jp/wp-content/uploads/sites/3/2020/05/srvo3_wan.tar.gz
tar zxvf srvo3_wan.tar.gz
次にQEの計算に必要な擬ポテンシャルを以下のコマンドでコピーします。
cp -r /usr/share/respack/sample/quantum-espresso/SrVO3.sc.6x6x6/PP ./
最後にtmpという名前のディレクトリを作ってください。このtmpディレクトリにQEの計算結果が格納されます。
mkdir tmp
3. QEによる第一原理計算
準備が整いましたら、以下のコマンドを実行して下さい。
pw.x < SrVO3.scf.in | tee SrVO3.scf.out
cp -r tmp/scf tmp/nscf
pw.x < SrVO3.nscf.in | tee SrVO3.nscf.out
と実行して下さい。約10分もあれば全ての計算が終わります。なお、初めの実行がSCF計算を、最後の実行がnon SCF計算を行なっています。Quantum ESPRESSOの詳しい使い方は、以下の公式サイトや本サイトのレビューなどが参考になります。
- Quantum ESPRESSOの公式サイト
- pw.xのマニュアル
- Quantum ESPRESSO の MateriApps LIVE! での examples の実行例(2018.6.17)
- QUANTUM ESPRESSOのsekirei(物性研スパコン)でのコンパイル・使用例
4. ワニエ軌道の作成
次に、Wannier90によるワニエ軌道を作成します。
まず、
wannier90.x -pp SrVO3
pw2wannier90.x < SrVO3.pw2wan90.in > SrVO3.pw2wan90.out
を実行して下さい。初めの実行はSrVO3.winをインプットとして、pw2wannier90.xの実行に必要なインプットファイル、SrVO3.nnkpを生成します。pw2wannier90.xは、QEの計算結果をWannier90で使えるよう整形したデータをファイル(SrVO3.amn,SrVO3.eig,SrVO3.mmnなど)に格納しています。
最後に
wannier90.x SrVO3
を実行して下さい。これでWannier90によってワニエ軌道が作製されました。
ワニエ関数の作り方はSrVO3.winに書かれています。色々なパラメータが設定されていますが、詳細はマニュアルやチュートリアル(例えば日本語だとhttp://www.cmpt.phys.tohoku.ac.jp/~koretsune/SATL_qe_tutorial/wannier.html)をご参照ください。例えば
num_bands = 55 num_wann = 3
は、QEのnscf計算で使用したバンド数(nbnd)と作りたいワニエ関数の個数をしています。
begin projections V:dxy;dxz;dyz end projections
はワニエ関数の初期値を設定しています。今回の計算ではV原子のt2g軌道を選んでいます。初期値は、QEを用いてpDOSを計算したり、電荷密度・波動関数から軌道の性質を見たりして選ぶようです。
5. 実行結果
実行ディレクトリ下にワニエ軌道に関する情報が出力されます。
gnuplot -persistent SrVO3_band.gnu
を実行するとワニエ軌道によるバンド構造がプロットされます(下図を参照)。RESPACKのレビュー記事に記載されているバンドと同じようになっているのがわかります。
ワニエ軌道の情報はSrVO3.woutの最後の方に
Final State WF centre and spread 1 ( 1.921257, 1.921257, 1.921257 ) 1.65430577 WF centre and spread 2 ( 1.921257, 1.921257, 1.921257 ) 1.65430577 WF centre and spread 3 ( 1.921257, 1.921257, 1.921257 ) 1.65430577 Sum of centres and spreads ( 5.763772, 5.763772, 5.763772 ) 4.96291730
と出力されていると思います。ワニエ関数の中心(centre)が変な位置にないか、広がり(spread)が大きすぎていないかはここで確認することができます。ワニエ軌道の実空間表示はSrVO3_00001.xsf, SrVO3_00002.xsf, SrVO3_00003.xsfに出力されています。SrVO3.winの中でwannier_plot = .true.と指定しないと出力されない点に注意して下さい。
例えば、
vesta SrVO3_00001.xsf
と打つとVESTAで軌道1のワニエ軌道を表示することができます。下図では上のコマンドを実行した後で、酸素原子の色を青に変えたりしています。今回の計算ではV原子の3つのt2g軌道にプロジェクションしてワニエ軌道の作成を行いました。結果として、V原子のt2g軌道とOのp軌道が混成したワニエ軌道が作成されていることがわかります。
タイトバインディングパラメータはSrVO3_hr.datに書き込まれています。例えば580~582行には
0 0 1 1 1 -0.265009 -0.000000 0 0 1 2 1 0.000000 -0.000000 0 0 1 3 1 -0.000000 0.000000
と出力されていると思います。初めの3つの整数が格子ベクトル、続く二つの自然数が軌道番号、残りの実数がホッピングです。なお、SrVO3_tb.datにはハミルトニアンの行列要素以外にも位置演算子の行列要素が出力されています。
6. まとめ
QEとWannier90によるワニエ関数の作成法を紹介しました。Wannier90は他にも色々と機能があるらしいので今度は違う計算を行ってみたいと思います。また、筆者はWannier90を使ったことがなかったので、インプットを作るのが結構大変でした。今後は、もう少し簡単にインプットを用意できるようなツールを紹介したいと思います。
#修正履歴
– 2024/10/10 リンク修正