クロスアビリティ Winmostarサポートチームです。
WinmostarはQuautum ESPRESSOを簡単かつ高度に利用するための統合GUI環境となっています。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 WinmostarのWebサイト をご覧ください。
#0. はじめに
第一原理計算ソフトQuantunm ESPRESSO https://www.quantum-espresso.org の入力ファイルの書き方について、複数回にわたって解説していきます。今回は第8回目です。バンド構造計算の方法について解説したいと思います。
この記事では、初歩的な内容しか紹介しません。
入力ファイルの詳細について知りたい方は、マニュアル http://www.quantum-espresso.org/Doc/INPUT_PW.html をご参照下さい。
#1. 計算手順
Quantum ESPRESSOでは以下の3段階の手順にて、バンド構造計算ができます。
- SCF計算
- バンドエネルギー計算
- バンド構造データの生成
一つ目の手順「SCF計算」は、以前の記事で紹介した通りの内容にて計算します。詳細は、https://qiita.com/xa_member/items/a098e94d633a1d29f1c0をご覧ください。SCF計算にて電子密度を決定した後、二つ目の手順として「バンドエネルギー計算」を実施します。電子密度を固定しつつ、指定されたBrillouin Zone内のパスに沿って、波動関数とその固有値たるバンドエネルギーを計算します。三つ目の手順では、先に計算したバンドエネルギーを用いてバンド構造のデータを生成します。以降の章にて、バンドエネルギー計算 および バンド構造データの生成 の手順について解説します。
#2. バンドエネルギー計算
バンドエネルギー計算の実行には、SCF計算と同様に実行モジュール"pw.x"を使用します。また、入力ファイルについても、SCF計算とほぼ同様のものを用います。ただし、SCF計算の入力ファイルから、以下の 2-1. ~ 2-3. の内容を修正する必要があります。
##2-1. 基本設定
先ずは、calculationという変数に"bands"と設定します。これを設定すると、バンドエネルギー計算が実施されます。必須の内容ですので、忘れずに設定して下さい。
&CONTROL
calculation = "bands"
/
##2-2. Brillouin Zone内のパス
バンド構造計算をするためには、事前にBrilloin Zone内のパスを定義する必要があります。入力ファイル内の”K_POINTS”にて、これを定義します。設定内容は以下の通りです。
K_POINTS {tpiba_b}
12
gG 20
X 20
W 20
K 20
gG 20
L 20
U 20
W 20
L 20
K 0
U 20
X 0
1行目の”tpiba_b”は、Brillouin Zone内のパスを宣言するためのキーワードです。2行目は、設定する特殊点の数です。3行目以降で特殊点を設定します。1列目は特殊点の記号、2列目は次の特殊点までのk点分割数です。Γ点およびΣ点は、それぞれ、gGおよびgSと表記します。
##2-3. バンド数
SCF計算では電子密度の最適化が目的であるため、占有バンドのみが必要となります。一方、バンド構造計算では非占有バンドの情報も重要な意味を持ちます。そこで、非占有バンドのエネルギーを取得すべく、バンド数を多目に設定する必要があります。バンド数は、入力ファイルのnbndという変数にて設定します。SCF計算の時に使用したバンド数の1.5~2.0倍程度の値を設定すると良いです。
&SYSTEM
nbnd = 8
/
SCF計算にて使用したバンド数は、SCF計算時の出力ファイルに記載されています。以下が出力ファイルの該当箇所です。
number of atoms/cell = 2
number of atomic types = 1
number of electrons = 8.00
number of Kohn-Sham states= 4 ← SCF計算で使用したバンド数
kinetic-energy cutoff = 40.0000 Ry
charge density cutoff = 160.0000 Ry
#3. バンド構造データの生成
バンドエネルギー計算が完了したら、バンド構造データの生成を行います。当該の処理には、実行モジュール"band.x"を使用します。band.xの実行には、以下のような入力ファイルを用います。
&BANDS
filband = "band_structure"
lsym = .FALSE.
spin_component = 1
/
filbandには、バンド構造データを出力するファイル名を設定します。上記の例では、band_structure.gnuというファイルにバンド構造データが出力されます。当該のデータをgnuplotなどでプロットすると、バンド構造が描画できます。
lsymというキーワードでは、各バンドの各点において対称性を計算するか否かを設定します。デフォルトでは、対称性は計算しません(lsym = .FALSE.)。
スピン分極DFTを使用している場合(nspin = 2)、上向きスピンと下向きスピンに対するバンド構造データを別個に出力する必要があります。入力ファイルのspin_componentにて、これを制御します。spin_component = 1 としてband.xを実行すると、上向きスピンのバンド構造データが出力されます。spin_component = 2 とすると、下向きスピンのデータが出力されます。
なお、Winmostarを利用するとQuautum ESPRESSOをGUI上から簡単かつ高度に活用することができます。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 WinmostarのWebサイト をご覧ください。
Quantum ESPRESSO入力ファイル作成手順シリーズ
1.結晶構造の作成
2.SCF計算の設定
3.擬ポテンシャルファイルの選択方法
4.原子座標のみの最適化
5.格子ベクトル及び格子内部の原子座標の最適化
6.状態密度の計算
7.局所状態密度の計算
8.バンド構造の計算
9.バンド数の設定
10.van der Waals相互作用
11.LDA+U法
12.NEB法
13.Phonon計算(特定q点)
14.Phonon計算(バンド構造)
15.擬ポテンシャルの作成
16.擬ポテンシャルのテスト
17.SCF計算の入力ファイルの実例