まず、構造不完全性のないプリミティブセルのSiCに対するバンド計算において、それぞれのバンドを 各擬原子軌道からの寄与に分解してみましょう。 ここでは、バンドのアンフォールディングは行いません。 SCF計算は、以下の様に実行します。
% mpirun -np 16 openmx SiC_Primitive.dat > sic_primitive.std &入力ファイル「SiC_Primitive.dat」は「work/unfolding_example」ディレクトリに含まれており、 基底関数や構造は以下の様に指定されています。
Species.Number 3 <Definition.of.Atomic.Species C C7.0-s2p2d1 C_PBE19 Si Si7.0-s2p2d1 Si_PBE19 Te Te11.0-s2p2d2f1 E Definition.of.Atomic.Species> Atoms.Number 3 Atoms.SpeciesAndCoordinates.Unit FRAC # Ang|AU <Atoms.SpeciesAndCoordinates 1 C 0.33333333 0.66666666 0.50000000 2.0 2.0 2 Si 0.66666666 0.33333333 0.50000000 2.0 2.0 3 Te 0.00000000 0.00000000 0.50000000 0.0 0.0 Atoms.SpeciesAndCoordinates> Atoms.UnitVectors.Unit Ang # Ang|AU <Atoms.UnitVectors 3.0690 0.0000000000 0.000 -1.5345 2.6578319641 0.000 0.0000 0.0000000000 10.000 Atoms.UnitVectors>
伝導帯の記述を改善するために、長い裾の基底関数を有する空原子を、六角形の中央に配置しています。 キーワード「Band.dispersion」を以下の様に設定して下さい。
Band.dispersion on # on|off, default=off Band.Nkpath 3 <Band.kpath 60 0.33333333333 0.33333333333 0.00000000000 0.00000000000 0.00000000000 0.00000000000 K G 52 0.00000000000 0.00000000000 0.00000000000 0.50000000000 0.00000000000 0.00000000000 G M 30 0.50000000000 0.00000000000 0.00000000000 0.33333333333 0.33333333333 0.00000000000 M K Band.kpath>「sic_primitive.BANDDAT1」により、図61(a)のようにバンド構造を描画することが可能です。 バンド構造の描画については「Band dispersion」の章をご覧下さい。
|
バンドアンフォールディング法の計算にあたっては、以下のキーワードも設定する必要があります。
Unfolding.Electronic.Band on # on|off, default=off Unfolding.LowerBound -10.0 # default=-10 eV Unfolding.UpperBound 6.0 # default= 10 eV Unfolding.Nkpoint 4 <Unfolding.kpoint K 0.33333333333 0.33333333333 0.0000000000 G 0.00000000000 0.00000000000 0.0000000000 M 0.50000000000 0.00000000000 0.0000000000 K 0.33333333333 0.33333333333 0.0000000000 Unfolding.kpoint> Unfolding.desired_totalnkpt 30
上記のキーワードの内容を以下に説明します。
「on」にすることで、バンドアンフォールディング法を行います。デフォルトは「off」です。
「Unfolding.LowerBound」によって解析を行うバンドのエネルギー最小値を指定します。 エネルギーはフェルミエネルギーを基準とし、デフォルト値は-10 eVとなっています。
「Unfolding.UpperBound」では、解析を行うバンドのエネルギー最大値を指定します。 エネルギーはフェルミエネルギーを基準とし、デフォルト値は10 eVとなっています。
「Unfolding.Nkpoint」では、「Unfolding.kpoint」で列挙するk点の数を指定します。
「Unfolding.kpoint」では、「Unfolding.Nkpoint」にて指定した数だけk点を指定します。 上記の例では4つのk点が列挙されており、「K」から「G」、「G」から「M」、「M」から「K」のパスとなっています。 このパスに沿ってバンドの解析が行われます。 k点を指定する際には、「Atoms.UnitVectors」で指定した単位胞の逆格子ベクトルに対する規格化座標を用いて下さい。 「Unfolding.ReferenceVectors」によって、バンドアンフォールディング法に用いる格子ベクトルを変更することもできます。 「Unfolding.ReferenceVectors」を指定しなかった場合には、「Atoms.UnitVectors」で指定した格子ベクトルが 自動的に使用されることに注意して下さい。 「Unfolding.ReferenceVectors」については、次の節にて説明します。
「Unfolding.kpoint」において指定されたパスは概ね等間隔に分割され、 分割される間隔は、(k空間における総パス長)/「Unfolding.desired_totalnkpt」で見積もられます。 ただし、実際の間隔は「Unfolding.kpoint」にて指定したk点が常に解析に含まれるように、自動的に調整されます。
バンド構造の解析に関連した出力ファイル
SCFが収束すると、バンドの解析・アンフォールディングに関連した以下のファイルが生成されます。
参考文献 [142] 中の式(24)より得られる全スペクトルの重みが保存されています。 1列目は「Unfolding.kpoint」にて指定された最初のk点からの距離(Bohr単位)、 2列目はフェルミエネルギーを基準とするエネルギー(eV単位)、 3列目は全スペクトルの重みです。 スピン分極した計算の場合には、「System.Name.unfold_totdn」がダウンスピン用に追加で生成され、 ノンコリニア計算の場合には「System.Name.unfold_tot」という単一のファイルが生成されます。
参考文献 [142] 中の式(26)より得られる軌道分解されたスペクトルの重みが保存されています。 1列目は「Unfolding.kpoint」にて指定された最初のk点からの距離(Bohr単位)、 2列目はフェルミエネルギーを基準とするエネルギー(eV単位)、 3列目は軌道分解されたスペクトルの重みです。 軌道分解されたスペクトルの重みの出力順序は「System.Name.out」をご参照下さい。 スピン分極した計算の場合には、「System.Name.unfold_orbdn」がダウンスピン用に追加で生成され、 ノンコリニア計算の場合には「System.Name.unfold_orb」という単一のファイルが生成されます。
上記のデータをgnuplotにて描画するための例が「System.Name.unfold_plotexample」として生成されます。 gnuplotのコマンドラインにおいて、以下の様に打ち込むことで描画可能です。
gnuplot> load `sic_primitive.unfold_plotexample'目的に応じて、適宜編集をして使用して下さい。
gnuplotを用いることで、「sic_primitive.BANDDAT1」、「sic_primitive.unfold_totup」の描画を行うには、 以下のコマンドを使用して下さい。
gnuplot> set style data lines gnuplot> set zeroaxis gnuplot> set key below gnuplot> set ytics 1 gnuplot> set mytics 5 gnuplot> set xra [0.000000:1.708883] gnuplot> set yra [-10.0:6.0] gnuplot> set ylabel "eV" gnuplot> set xtics ("K" 0.000000, "G" 0.722258, "M" 1.347753, "K" 1.708882) gnuplot> p "sic_primitive.BANDDAT1","sic_primitive.unfold_totup" u 1:2:($3*0.02) w circle上記のコマンドにより、図 61 (a)と同様の図を描くことができます。 実線は「sic_primitive.BANDDAT1」を、丸印は「sic_primitive.unfold_totup」を表しています。 丸印の大きさはスペクトルの重みを反映しますが、今回はオリジナルセルのブリルアンゾーンにて 得られたバンドを解析したため、全て同じ大きさとなっています。
次に、軌道分解されたスペクトルの重み「sic_primitive.unfold_orbup」を見てみましょう。 上記と同様に、以下のコマンドで描画することが可能です。
gnuplot> p "sic_primitive.BANDDAT1","sic_primitive.unfold_orbup" u 1:2:(($3+$4+$5+$6)*0.05) w circle, "sic_primitive.unfold_orbup" u 1:2:($7*0.05) w circleこのコマンドにより、図 61 (b)を得ることができます。 この例では、炭素原子の、、 軌道のスペクトルの重みの総和を緑の丸印で、 炭素原子の軌道のスペクトルの重みを紫の丸印で描画しています。 本解析を行うことで、バンドとバンドを明確に区別することが可能となります。 「sic_primitive.unfold_orbup」の形式については、上述の説明をご参照下さい。