バンド分散

バンド分散は次の2つの段階を経由して、計算されます。

(1) SCF計算

ダイヤモンド構造の炭素を例として、バンド分散の計算方法を説明します。 「work」ディレクトリ内のファイル「Cdia.dat」には、原子の座標、単位胞ベクトル および「scf.Kgrid」が次のように指定されています。

    Atoms.Number         2
    Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
    <Atoms.SpeciesAndCoordinates           
     1   C  0.000  0.000  0.000   2.0 2.0
     2   C  0.890  0.890  0.890   2.0 2.0
    Atoms.SpeciesAndCoordinates>
    Atoms.UnitVectors.Unit             Ang # Ang|AU
    <Atoms.UnitVectors                     
      1.7800  1.7800  0.0000
      1.7800  0.0000  1.7800
      0.0000  1.7800  1.7800
    Atoms.UnitVectors>

    scf.Kgrid                  7 7 7       # means n1 x n2 x n3

バンド分散の単位胞ベクトルとバンド分散を計算するためのk点の経路は次の書式で与えられます。

    Band.dispersion             on        # on|off, default=off
    <Band.KPath.UnitCell
     3.56  0.00  0.00
     0.00  3.56  0.00
     0.00  0.00  3.56
    Band.KPath.UnitCell>
    Band.Nkpath                  5
    <Band.kpath                
      15  0.0 0.0 0.0   1.0 0.0 0.0   g X
      15  1.0 0.0 0.0   1.0 0.5 0.0   X W
      15  1.0 0.5 0.0   0.5 0.5 0.5   W L
      15  0.5 0.5 0.5   0.0 0.0 0.0   L g
      15  0.0 0.0 0.0   1.0 0.0 0.0   g X 
    Band.kpath>

次にOpenMXを以下の様に、通常実行します。

    % ./openmx Cdia.dat
  
ここでは単一コアを使用した計算例を示しましたが、もちろん並列計算も実行可能です。 この実行が正常に終了すると、「work」ディレクトリに「cdia.Band」というファイルが生成されます。 キーワード「Band.KPath.UnitCell」が存在する場合には この単位胞ベクトルを用いてk点経路の指定に用いられる逆格子ベクトル基底が計算されます。 もしこのキーワード「Band.KPath.UnitCell」が指定されない場合には、「Atoms.UnitVectors」による 単位胞ベクトルを用いて逆格子ベクトルを計算し、その目的に使用されます。

(2) データをgnuplot形式に変換する

「source」ディレクトリに「bandgnu13.c」というファイルがあります。このファイルを次のようにしてコンパイルします。

    % gcc bandgnu13.c -lm -o bandgnu13
  
コンパイルが正常に終了すると、「source」ディレクトリに実行可能なファイル「bandgnu13」が生成します。 このファイルを「work」ディレクトリにコピーして下さい。 実行ファイル「bandgnu13」を用いて、次のコマンドを実行することにより、ファイル「cdia.Band」はgnuplot形式に変換されます。
    % ./bandgnu13 cdia.Band	
  
これで、「cdia.GNUBAND」、「cdia.BANDDAT1」(および「cdia.BANDDAT2」)の2または3個のファイルが生成されます。 ファイル「cdia.GNUBAND」はgnuplotのスクリプトであり、アップとダウンのスピン状態のデータファイル(それぞれ「cdia.BANDDAT1」および「cdiaBANDDAT2」)を 読み込むためのファイルです。 もし「LSDA-CA」、「LSDA-PW」、「GGA-PBE」のいずれかを用いるスピン分極計算を行った場合には、「*.BANDDAT1」に加えて ダウンスピン状態の「System.Name.BANDDAT2」が生成されます。 ファイル「cdia.GNUBAND」は次のコマンドにより、gnuplotを使ってプロットすることができます。
    % gnuplot cdia.GNUBAND
  
14 はここで説明した方法で計算した炭素ダイヤモンドのバンド分散を示しています。 ただし「cdia.GNUBAND」内のy軸の範囲は変更されています。 化学ポテンシャルがエネルギーの原点となるように自動的に移動されていますので、注意して下さい。 化学ポテンシャルの具体的な値は、「cdia.out」中に記載されています。

逆格子の基底ベクトルを適切に選ぶと、バンド分散の計算においてk点の指定が容易になります。 バンド分散の計算で使用する単位胞ベクトルを新たに設定する場合には、 「Band.KPath.UnitCell」キーワード」を用いて、 下記の例のように指定します。

   <Band.KPath.UnitCell
    3.56 0.0 0.0
    0.0 3.56 0.0
    0.0 0.0 3.56
   Band.KPath.UnitCell>
記述は「$<$Band.KPath.UnitCell」で開始し、「Band.KPath.UnitCell$>$」で終了します。
「Band.KPath.UnitCell」キーワードの記述がある場合、同キーワードで指定した単位胞ベクトルからバンド分散の 計算に使用する逆格子基底ベクトルを算出します。 「Band.KPath.UnitCell」を指定しない場合には、「Atoms.UnitVectors」キーワードで指定した単位胞ベクトルから 計算した逆格子ベクトルが基底として使用されます。面心立方格子構造 (fcc)や体心立方格子構造(bcc)の場合には 「Band.KPath.UnitCell」キーワードで逆格子ベクトルを再定義した方が、特殊k点の指定が容易です。

図 14: 炭素ダイヤモンドのバンド分散。入力ファイルは「work」ディレクトリ内の「Cdia.dat」。
\begin{figure}\begin{center}
\epsfig{file=cdia-band.eps,width=14cm}
\end{center}
\end{figure}



2017-03-07