next up previous contents index
Next: MulPOnly: 利用者指定のk点での計算 Up: k空間でのスピンテクスチャの解析 Previous: GridCalc: k点格子での計算   Contents   Index

BandDispersion: バンド分散関係の計算

ポストプロセスコード「kSpin」にはk空間スピン密度行列を計算する4つの方法があります。 これはキーワード「Calc.Type」で指定します。 ここでは4つの方法のうち、BandDispersionを説明します。 BandDispersionの機能を用いて、バンド分散関係上で各原子に分解されたk空間スピン密度行列を ユーザー指定のエネルギー範囲内で計算できます。 BandDispersionを用いたスピンテクスチャの解析例としてAu(111)表面のモデルをここで説明します。 まず、ディレクトリ「work」中に収容された入力ファイル「Au111Surface_BD.dat」を用いてOpenMX計算を実行します。 次に、MulPCalc53.6の機能を用いてスピンテクスチャを計算できます。 「kSpin」の実行に関連するキーワードを以下に列挙します。 これらのキーワードは入力ファイル「Au111Surface_BD.dat」中に記載されています。 また入力ファイル「Au111Surface_BD.dat」はディレクリ「work」中に収容されています。

kSpinに関連するキーワードの一覧

    Filename.scfout      Au111Surface.scfout 
    Filename.outdata     Au111Surface_BD     
    Calc.Type            BandDispersion    # FermiLoop, GridCalc,
                                             BandDispersion, or MulPOnly 
                                             default: MulPOnly
    Energy.Range        -1.0  1.0          # eV; default: 0.0  0.0
    Band.Nkpath                2
    <Band.kpath
      135  0.0  0.500000  0.000000    0.0   0.000000  0.000000     M  G
      135  0.0  0.000000  0.000000    0.0  -0.500000  0.000000     G -M
    Band.kpath>


キーワードの仕様

それぞれのキーワードの仕様を以下に説明します。

Filename.scfout
「kSpin」によって読み込まれるscfoutファイルの名前を指定します。

Filename.outdata
出力ファイルの名前を指定します。このキーワードはOpenMX計算のキーワード「System.Name」に相当します。

Calc.Type
FermiLoop, GridCalc, BandDispersion, もしくは MulPOnlyのいずれかを選択します。 デフォルトの設定はMulPOnlyです。ここではBandDispersionを選択します。

Energy.Range
解析を実施するバンドを探索するためのエネルギー範囲を指定します。 単位はeVです。 デフォルト値は「-0.5 0.5」です。つまりエネルギーの下限値が-0.5 (eV)、上限値は0.5 (eV)となります。

Band.Nkpath
バンド分散を計算するk点のパスの数を指定します。 この表記は通常のOpenMXの計算と同一です。

Band.kpath
バンド分散を計算するk点のパスを指定します。 この表記は通常のOpenMX計算と同一です。

計算

ポストプロセスコード「kSpin」により原子ごとに分解されたk空間スピン密度行列が計算されます。 ここではポストプロセスコード「kSpin」はディレクトリ「work」にあると仮定して説明を行います。 ディレクトリ「work」に移動して、計算を以下のとおり実行します。

    % ./kSpin Au111Surface_BD.dat
または、MPI計算では、例えば、4MPIプロセスの場合は以下のとおり実行します。
    % mpirun -np 4 ./kSpin Au111Surface_BD.dat 

計算の進行に伴い、以下の標準出力が得られます。

    ******************************************************************
    ******************************************************************
     kSpin:
     code for evaluating spin related properties
     in momentum space of solid state materials.
     Copyright (C), 2019,
     Hiroki Kotaka, Naoya Yamaguchi and Fumiyuki Ishii.
     This software includes the work that is distributed
     in version 3 of the GPL (GPLv3).
 
     Please cite the following article:
     H. Kotaka, F. Ishii, and M. Saito,
     Jpn. J. Appl. Phys. 52, 035204 (2013).
     DOI: 10.7567/JJAP.52.035204.
    ******************************************************************
    ******************************************************************


    Input filename is "Au111Surface.scfout"  


    Start "BandDispersion" Calculation (3).  
    line_Nk[1]:  0.665829
    ( 0.000000,  0.500000,  0.000000 ) -> ( 0.000000,  0.000000,  0.000000 )
    line_Nk[2]:  1.331658
    ( 0.000000,  0.000000,  0.000000 ) -> ( 0.000000, -0.500000,  0.000000 )
    ########### ORBITAL DATA ##################
    ClaOrb_MAX[0]:   2
    ClaOrb_MAX[1]:   8
    Total Band (2*n): 124
    ###########################################
    Band.Nkpath: 2
    135 ( 0.000000,  0.500000,  0.000000 ) >>> ( 0.000000,  0.000000,  0.000000 ) M G
    135 ( 0.000000,  0.000000,  0.000000 ) >>> ( 0.000000, -0.500000,  0.000000 ) G -M
    l_min:  49   l_max:  56   l_cal:   8 
    Au111Surface_BD.Band49_1
    Au111Surface_BD.Band50_1
    Au111Surface_BD.Band51_1
    Au111Surface_BD.Band52_1
    Au111Surface_BD.Band53_1
    Au111Surface_BD.Band54_1
    Au111Surface_BD.Band55_1
    Au111Surface_BD.Band56_1
    l_min:  49   l_max:  56   l_cal:   8 
    Au111Surface_BD.Band49_2
    Au111Surface_BD.Band50_2
    Au111Surface_BD.Band51_2
    Au111Surface_BD.Band52_2
    Au111Surface_BD.Band53_2
    Au111Surface_BD.Band54_2
    Au111Surface_BD.Band55_2
    Au111Surface_BD.Band56_2
    ###########################################
    Total MulP data:2176
    ############ CALC TIME ####################
      Total Calculation Time:  4.772406 (s)
    ###########################################

上記のとおり計算が正常に完了すると、 ディレクトリ「work」に以下の出力ファイルが生成されます。

    Au111Surface_BD.BAND
    Au111Surface_BD.Band49_1
    Au111Surface_BD.Band50_1
    Au111Surface_BD.Band51_1
    Au111Surface_BD.Band52_1
    Au111Surface_BD.Band53_1
    Au111Surface_BD.Band54_1
    Au111Surface_BD.Band55_1
    Au111Surface_BD.Band56_1
    Au111Surface_BD.Band49_2
    Au111Surface_BD.Band50_2
    Au111Surface_BD.Band51_2
    Au111Surface_BD.Band52_2
    Au111Surface_BD.Band53_2
    Au111Surface_BD.Band54_2
    Au111Surface_BD.Band55_2
    Au111Surface_BD.Band56_2
    Au111Surface_BD.AMulPBand
    Au111Surface_BD.AMulPBand_s
    Au111Surface_BD.AMulPBand_p
    Au111Surface_BD.AMulPBand_p1
    Au111Surface_BD.AMulPBand_p2
    Au111Surface_BD.AMulPBand_p3
    Au111Surface_BD.AMulPBand_d
    Au111Surface_BD.AMulPBand_d1
    Au111Surface_BD.AMulPBand_d2
    Au111Surface_BD.AMulPBand_d3
    Au111Surface_BD.AMulPBand_d4
    Au111Surface_BD.AMulPBand_d5
    Au111Surface_BD.plotexample
    Au111Surface_BD.atominfo
    temporal_12345.input

例として、以下のコマンドを実行すると、 図 67(a)に示す Au(111)表面のラシュバスピン分裂のスピンテクスチャが得られます。

    % gnuplot Au111Surface_BD.plotexample
バンド分散でのスピンテクスチャの情報を得るため、次のように解析を実行します。 53.6 MulPCalc.


Figure 67: (a) Au(111)表面のラシュバスピン分裂を示すバンド分散。 この図はバンドファイル「Au111Surface_BD.BAND」とプロット例ファイル「Au111Surface_BD.plotexample」 により作成。 (b) Au(111)表面の各原子に分解されたk空間スピン密度行列。 この図はMulPopファイル「Au111Surface_BD_MC.MulPop」により作成。 円は各k点での$\alpha $$\beta $のスピンの電子数の差を表す。半径と色はそれぞれその大きさと符合を反映。 この図はプロット例のファイル「Au111Surface_BD_MC.plotexample」により作成。
\includegraphics[width=16.0cm]{Rashba-Fig4.eps}


出力ファイル

各出力ファイルの内容を以下に説明します。

BAND ファイル
このファイルはバンド分散のデータを記録します。 第一、第二列はkパス上のk点間の距離(単位はBohr$^{-1}$)と固有エネルギー(単位はeV)に相当します。

Band_YY_Z ファイル
このファイルは各ブランチ(バンドインデックスYY、kパスインデックスZ)のバンド分散のデータを記録します。 このファイルの内容の表記はBANDファイルと同一です。

AMulPBand ファイル
このファイルは 原子ごとに分解されたk空間スピン密度行列のデータを記録します。 そして、MulPCalc53.6で解析できます。

AMulPBand_xx ファイル
このファイルは原子ごとに分解されたk空間スピン密度行列の$xx$成分のデータを記録します。 このファイルはMulPCalc53.6で解析できます。

plotexample ファイル
このファイルはgnuplotスクリプトの例を提供します。

atominfo ファイル
このファイルは格子ベクトルとPAOの情報を提供します。

temporal_12345.input
このファイルは scfoutファイルに記録された入力ファイルのコピーです。

(オプショナル)原子ごとに分解されたk空間スピン密度行列の解析

MulPCalcを用いてAtomMulPファイルまたはAMulPBand_xxファイルから原子ごとに分解されたk空間スピン密度行列を解析するための データが抽出できます。ディレクトリ「source」中で以下のようにコンパイルし、実行ファイルを作成して下さい。

    % make MulPCalc
コンパイルが成功すると、実行ファイル「MulPCalc」がディレクトリ「work」に生成します。 一例として、Au(111)表面のRashbaスピン分裂のバンド分散に着目し、原子寄与に分解されたk空間スピン密度行列を解析します。 最初に、以下のキーワードを入力ファイル「Au111Surface_BD.dat」に追加します。
    Filename.atomMulP Au111Surface_BD.AMulPBand # default: default
    Filename.xyzdata   Au111Surface_BD_MC       # default: default
    Num.of.Extract.Atom        3                # default: 1
    Extract.Atom               1 2 3            # default: 1 2 ... (Num.of.Extract.Atom)
ポストプロセスコード「kSpin」による計算後に、原子寄与に分解されたk空間スピン密度行列を以下のように解析できます。
    % ./MulPCalc Au111Surface_BD.dat
加えて、以下のキーワードを設定することで、図の見た目を調整することができます。
    MulP.Vec.Scale       0.1  0.1  0.1          # default: 1.0  1.0  1.0
    Data.Reduction             1                # default: 1
MulPCalcを実行後に、ディレクトリ「work」に以下の出力ファイルが得られます。
    Au111Surface_BD_MC.MulPop
    Au111Surface_BD_MC.MulPop49
    Au111Surface_BD_MC.MulPop50
    Au111Surface_BD_MC.MulPop51
    Au111Surface_BD_MC.MulPop52
    Au111Surface_BD_MC.MulPop53
    Au111Surface_BD_MC.MulPop54
    Au111Surface_BD_MC.MulPop55
    Au111Surface_BD_MC.MulPop56
    Au111Surface_BD_MC.plotexample
例として、以下のコマンドを実行すると、図 67(b)が得られます。 これは原子寄与に分解されたk空間スピン密度行列の情報を Au(111)表面のRashbaスピン分裂バンド上に加味して表示したものです。
    % gnuplot Au111Surface_BD_MC.plotexample
MulPCalcに関するさらなる情報は53.6節も参照してください。


next up previous contents index
Next: MulPOnly: 利用者指定のk点での計算 Up: k空間でのスピンテクスチャの解析 Previous: GridCalc: k点格子での計算   Contents   Index