next up previous contents index
Next: BandDispersion: バンド分散関係の計算 Up: k空間でのスピンテクスチャの解析 Previous: FermiLoop: 一定エネルギー面での計算   Contents   Index

GridCalc: k点格子での計算

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

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

    Filename.scfout      Au111Surface.scfout 
    Filename.outdata     Au111Surface_GL     
    Calc.Type            GridCalc          # FermiLoop, GridCalc,
                                             BandDispersion, or MulPOnly 
                                             default: MulPOnly
    Energy.Range        -1.0  1.0          # eV; default: 0.0  0.0
    Search.kCentral      0.0  0.0  0.0     # default: 0.0  0.0  0.0
    Calc.Type.3mesh      2                 # default: 1
    kRange.3mesh         0.5  0.5          # default: 0.5  0.5
    k-plane.1stStep      14 14             # default: 2 2
    Calc.Bandbyband      Off               # default: Off
    Calc.Band.Min        55
    Calc.Band.Max        56
    MulP.Vec.Scale       0.1  0.1  0.1     # default: 1.0  1.0  1.0


キーワードの仕様

上記のキーワードはFermiLoopの場合と同一ですが、 GridCalcの観点から各キーワードの仕様を以下に説明します。 キーワード「Enery.Range」の振る舞いはFermiLoopでのそれと異なることに注意してください。

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

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

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

Energy.Range
解析を実施するバンドを探索するためのエネルギー範囲を指定します。 単位はeVです。キーワード「Calc.Bandbyband」が「OFF」の場合、 このキーワードが有効となります(Calc.Bandbybandを参照してください)。 デフォルト値は「-0.5 0.5」です。つまりエネルギーの下限値が-0.5 (eV)、上限値は0.5 (eV)となります。

Search.kCentral
ある中心k点の周辺で「Energy.Range」で指定されたエネルギー範囲内にあるk点の探索が実施されます。 本キーワードによりこの中心k点の指定を行います。 k点の指定方法はキーワード「Band.kpath」に従います。 デフォルト値は「0.0 0.0 0.0」(つまり$\Gamma $点)です。

Calc.Type.3mesh
スピンテクスチャが計算される面を指定します。 '1', '2', '3'の値はそれぞれ$k_ak_b$, $k_bk_c$, $k_ck_a$面に対応します。 デフォルト値は1です。

kRange.3mesh
k点が計算される逆空間の二次元領域を二つの値で指定します。 例えば、キーワード「Calc.Type.3mesh」の値が1($k_ak_b$面)の際には、 値「0.2 0.3」は $-0.2\leq k_a\leq 0.2$, $-0.3 \leq k_b \leq 0.3$ の領域を指定します。 k点の指定の表記はキーワード「Band.kpath」に従います。 デフォルト値は「0.5 0.5」(つまり第一ブリルアンゾーンの全体)です。

k-plane.1stStep
キーワード「kRange.3mesh」で指定された領域を分割する格子点の数を与えます。 これは第一段階の探索において用いられます。 例えば、キーワード「Calc.Type.3mesh」の値が1 ($k_ak_b$面)ならば、 値「2 3」は$k_a$軸方向に2点の格子点、$k_b$軸方向に3点の格子点で分割することを意味します。 デフォルト値は「2 2」です。

Calc.Bandbyband
GridCalcに与えられたバンドを計算させるなら「ON」、さもなければ「OFF」を指定します (Calc.BandMin; Calc.BandMaxも参照してください)。 デフォルト値は「OFF」です。

Calc.BandMin
バンドインデックスを指定することで計算するバンドの範囲の下限値を指定します。 キーワード「Calc.Bandbyband」の値がONの場合にこのキーワードは有効です(Calc.Bandbyband; Calc.BandMaxを参照してください)。 バンドインデックスはOMXTool [146] を利用するか、またはBandDispersionの機能(章53.4)により確認できます。

Calc.BandMax
バンドインデックスを指定することで計算するバンドの範囲の上限値を指定します。 キーワード「Calc.Bandbyband」の値がONの場合にこのキーワードは有効です(Calc.Bandbyband; Calc.BandMaxを参照してください)。 バンドインデックスはOMXTool [146] を利用するか、またはBandDispersionの機能(章53.4)により確認できます。

MulP.Vec.Scale
スピンテクスチャを表現するベクトルを描く際の縮尺を指定します。 例えば、値「0.1 0.2 0.3」は$x$軸に0.1、$y$軸に0.2、$z$軸に0.3の縮尺を指定します。 このキーワードは「XXXXX.Pxyz_YY」のみに影響します。 (XXXXXはキーワード「Filename.outdata」の値、YYはバンドインデックス)。 デフォルト値は「1.0 1.0 1.0」です。

計算

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

    % ./kSpin Au111Surface_GC.dat
または、MPI計算では、例えば、4MPIプロセスの場合は以下のとおり実施します。
    % mpirun -np 4 ./kSpin Au111Surface_GC.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 "GridCalc" Calculation (4).

    ########### ORBITAL DATA ##################
    ClaOrb_MAX[0]:   2
    ClaOrb_MAX[1]:   8
    Total Band (2*n): 124
    Central (  0.000000   0.000000   0.000000)
    ###########################################

    ########### EIGEN VALUE ###################
    The number of BANDs    8 (  49->  56)
    Total MulP data:1568
    ###########################################

    ############ CALC TIME ####################
      Total Calculation Time:  3.656405 (s)
            Eigen Value Calc:  3.498849 (s)
    ###########################################
    ############ CALC TIME ####################
      Total Calculation Time:  3.670708 (s)
    ###########################################


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

    Au111Surface_GC.EigenMap_49
    Au111Surface_GC.Pxyz_49
    Au111Surface_GC.plotexample_49
    Au111Surface_GC.EigenMap_50
    Au111Surface_GC.Pxyz_50
    Au111Surface_GC.plotexample_50
    Au111Surface_GC.EigenMap_51
    Au111Surface_GC.Pxyz_51
    Au111Surface_GC.plotexample_51
    Au111Surface_GC.EigenMap_52
    Au111Surface_GC.Pxyz_52
    Au111Surface_GC.plotexample_52
    Au111Surface_GC.EigenMap_53
    Au111Surface_GC.Pxyz_53
    Au111Surface_GC.plotexample_53
    Au111Surface_GC.EigenMap_54
    Au111Surface_GC.Pxyz_54
    Au111Surface_GC.plotexample_54
    Au111Surface_GC.EigenMap_55
    Au111Surface_GC.Pxyz_55
    Au111Surface_GC.plotexample_55
    Au111Surface_GC.EigenMap_56
    Au111Surface_GC.Pxyz_56
    Au111Surface_GC.plotexample_56
    Au111Surface_GC.AtomMulP
    Au111Surface_GC.MulP_s
    Au111Surface_GC.MulP_p
    Au111Surface_GC.MulP_p1
    Au111Surface_GC.MulP_p2
    Au111Surface_GC.MulP_p3
    Au111Surface_GC.MulP_d
    Au111Surface_GC.MulP_d1
    Au111Surface_GC.MulP_d2
    Au111Surface_GC.MulP_d3
    Au111Surface_GC.MulP_d4
    Au111Surface_GC.MulP_d5
    Au111Surface_GC.atominfo
    temporal_12345.input

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

    % gnuplot Au111Surface_GC.plotexample_55
    % gnuplot Au111Surface_GC.plotexample_56


Figure 66: Au(111)表面の$\Gamma $点周りでのラシュバスピン分裂を示すスピンテクスチャ。 (a) バンドインデックス55に対応。(b) バンドインデックス56に対応。 ベクトルはPxyz_YYファイル「Au111Surface_GC.Pxyz_55」と「Au111Surface_GC.Pxyz_56」に記録された各k点での パウリ行列固有ベクトルによる$\sigma _x$, $\sigma _y$, $\sigma _z$の期待値。 カラーマップはEigenMap_YYファイル 「Au111Surface_GC.EigenMap_55」と「Au111Surface_GC.EigenMap_56」のそれぞれに記録されたk点でのエネルギーでの高さ。 中心の十字点は$\Gamma $に対応。 この図はプロット例のファイル「Au111Surface_GC.plotexample_55」と「Au111Surface_GC.plotexample_56」により作成。
\includegraphics[width=16.0cm]{Rashba-Fig3.eps}


出力ファイル

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

EigenMap_YY ファイル
このファイルはバンド(バンドインデックスYY)のk点データを記録します。 第一、第二、第三列はそれぞれ$k_x$, $k_y$, $k_z$ 成分に対応します。単位はBohr$^{-1}$です。 第四列はエネルギー(eV単位)です。

Pxyz_YY ファイル
このファイルはEigenMap_YYファイルに記録された各k点でのパウリ行列ベクトルの期待値のデータを記録します。 第一、第二、第三列はそれぞれ$k_x$, $k_y$, $k_z$ 成分に対応します。単位はBohr$^{-1}$です。 第四、第五列、第六列はそれぞれ$\sigma _x$, $\sigma _y$, $\sigma _z$の期待値です。 単位はBohr磁子です。

AtomMulP ファイル
このファイルはMulPCalc53.6節)により解析された原子寄与で分解されたk空間スピン密度行列 のデータを記録します。

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

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

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

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

(オプショナル)k空間スピン密度行列の解析

MulPCalcを用いてAtomMulPファイルまたはMulP_xxファイルからk空間スピン密度行列を解析するためのデータが抽出できます。 MulPCalc の入力ファイルの例が入力ファイル「Au111Surface_GC.dat」の下部にあります。 上記の計算後にk空間スピン密度行列の解析を以下の手順で行います。

    % ./MulPCalc Au111Surface_GC.dat
MulPCalcに関するさらなる情報は53.6節も参照してください。


next up previous contents index
Next: BandDispersion: バンド分散関係の計算 Up: k空間でのスピンテクスチャの解析 Previous: FermiLoop: 一定エネルギー面での計算   Contents   Index