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

MulPCalc: 原子ごとに分割されたk空間スピン密度行列

MulPCalcは 「kSpin」で得られたAtomMulPファイル、MulP_xxファイル、AMulPBandファイル、または AMulPBand_xxファイルから マリケン密度を解析するためのデータを抽出します。 まず、ディレクトリ「source」においてコンパイルを行い、実行ファイルを生成して下さい。

    % make MulPCalc
コンパイルに成功すると、実行ファイル「MulPCalc」がディレクトリ「work」に生成されます。 最初に、ディレクトリ「work」中に収容された入力ファイル「SiC_Primitive_BD.dat」を用いてOpenMX計算を実行します。 SCF計算の後に以下のキーワードを設定し、BandDispersion計算をポストプロセスコード「kSpin」を用いて実行します。
    Filename.scfout    sic_primitive.scfout # default: default
    Filename.outdata   sic_primitive_BD     # default: default
    Calc.Type          BandDispersion       # default: MulPOnly
    Energy.Range       -10.0  6.0           # eV; default: 0.0  0.0
次に、MulPCalcを以下のように実行します。
    % ./MulPCalc SiC_Primitive_BD.dat
炭素原子の$p_z$軌道のデータを抽出するために以下の設定を用います。
    Filename.atomMulP sic_primitive_BD.AMulPBand_p3 # default: default
    Filename.xyzdata   sic_primitive_BD_MC_C_p3     # default: default
    Num.of.Extract.Atom        1                 # default: 1
    Extract.Atom               1                 # default: 1 2 ... (Num.of.Extract.Atom)
加えて、以下のキーワードを設定することで、図の見た目を調整することができます。
    MulP.Vec.Scale       0.1  0.1  0.1           # default: 1.0  1.0  1.0
    Data.Reduction             2                 # default: 1
69MulPCalcを数回同様に実行し、 MulPopファイルの第11、第4、第5列をgnuplotの円スタイルを用いてプロットすることで得ることができます。


Figure 69: SiCプリミティブセル(不完全さの無い二次元ハニカム構造)の原子分割されたk空間スピン密度行列。 この系はバンドアンフォールディング法 52章、 バンド構造の解析 52.1節で説明されたものである。 緑色と紫色の円はそれぞれ炭素原子の$s$, $p_x$, $p_y$ 軌道を占有する電子数と $p_z$軌道を占有する電子数を表す。半径は電子数の大きさを反映。 本データは AMulPBand_xx ファイルの sic_primitive_BD.AMulPBand_s, sic_primitive_BD.AMulPBand_p1, sic_primitive_BD.AMulPBand_p2, または sic_primitive_BD.AMulPBand_p3 または sic_primitive_BD.AMulPBand_p からMulPCalcを用いて抽出された。
\includegraphics[width=12.0cm]{Rashba-Fig5.eps}

もう一つの入力ファイル例「Au111Surface23_FL.dat」がディレクトリ「work」に収容されています。 これは清浄なAu(111)表面のスラブモデルの計算を行うものです。 この計算は他の計算例よりも多くの計算時間を要すことに注意して下さい。 SCF計算と後続のFermiLoop計算によって、バンド分散とスピンテクスチャが得られます。 図 70(a)と 70(b)にその計算結果を図示します。 ここで、二つの組のRashbaバンドが現れています。スラブモデルにおける上下の表面での 表面状態が縮退しているためです。 MulPCalcを用いれば片側の表面原子の寄与のみを解析することが可能となります。 片側の表面からのスピンテクスチャの寄与を図 70(c)に示します。 この結果はMulPCalcの機能を用いて得られたものです。


Figure 70: (a) Au(111)表面のラシュバスピン分裂のバンド分散。バンドファイル「Au111Surface23.Band」をプロット。 BandDispersion 53.4節を参照のこと。 赤色の曲線はRashbaバンドを表し、バンドインデックス413, 414, 415, 416に対応。 色付けはGNUBANDファイル「Au111Surface23.GNUBAND」を変更するか、OMXTool [146]を利用することで再現できます。 $\Gamma $点まわりでのRashbaスピン分裂のスピンテクスチャ。(b) Au(111)の両表面の寄与、(c) Au(111)の片表面の寄与。 ベクトルは各k点でのパウリ行列のベクトルの期待値を表し、以下のPxyz_YYファイルにそれぞれ記録: Au111Surface23_FL.Pxyz_413, Au111Surface23_FL.Pxyz_414, Au111Surface23_FL.Pxyz_415, Au111Surface23_FL.Pxyz_416, Au111Surface23_FL_MC.Pxyz_413, Au111Surface23_FL_MC.Pxyz_414, Au111Surface23_FL_MC.Pxyz_415 Au111Surface23_FL_MC.Pxyz_416。 閉曲線は一定エネルギー面を表し、以下のFermiSurf_YYファイルにそれぞれ記録:Au111Surface23_FL.FermiSurf_413, Au111Surface23_FL.FermiSurf_414, Au111Surface23_FL.FermiSurf_415, Au111Surface23_FL.FermiSurf_416, Au111Surface23_FL_MC.FermiSurf_413, Au111Surface23_FL_MC.FermiSurf_414, Au111Surface23_FL_MC.FermiSurf_415, Au111Surface23_FL_MC.FermiSurf_416。 中心の十字点は$\Gamma $に対応。 これらの図はそれぞれプロット例ファイルAu111Surface23_FL.plotexample と Au111Surface23_FL_MC.plotexample により作成。
\includegraphics[width=11.0cm]{Rashba-Fig6.eps}


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

MulPCalcに関連するキーワードの一覧(全Calc.Type共通)

Filename.atomMulP
AtomMulPファイル、MulP_xxファイル、AMulPBandファイル、またはAMulPBand_xx ファイルの名前を指定します。

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

Num.of.Extract.Atom
MulPCalcが抽出すべきマリケン密度のデータの原子の数を指定します。 デフォルト値は1です。

Extract.Atom
MulPCalcが抽出すべきマリケン密度のデータの原子を指定します。 デフォルト値は「1 2 ... キーワード「Num.of.Extract.Atom」の値」です。

Data.Reduction
MulPCalcが抽出すべきマリケン密度のデータのk点の数を指定します。 このキーワードはk点の間引き、あるいはデータサイズの縮小に有用です。

MulP.Vec.Scale
スピンテクスチャを表現するベクトルを描く縮尺を指定します。 例えば、値「0.1 0.2 0.3」は$x$軸に0.1、$y$軸に0.2、$z$軸に0.3の縮尺を指定します。 Filename.outdata
「kSpin」の計算と同一の設定として下さい。

Calc.Type
「kSpin」の計算と同一の設定として下さい。

MulPCalcに関連するキーワードの一覧(Calc.Type = FermiLoop or GridCalc)

Search.kCentral
「kSpin」の計算と同一の設定として下さい。

Calc.Type.3mesh
「kSpin」の計算と同一の設定として下さい。

Energy.Range
「kSpin」の計算と同一の設定として下さい。

MulPCalcに関連するキーワードの一覧(Calc.Type = BandDispersion)

Energy.Range
「kSpin」の計算と同一の設定として下さい。

Band.Nkpath
「kSpin」の計算と同一の設定として下さい。

Band.kpath
「kSpin」の計算と同一の設定として下さい。

MulPCalcに関連するキーワードの一覧(Calc.Type = MulPOnly)

Calc.Type.3mesh
計算する面を指定します。 1, 2, 3の値はそれぞれ$k_ak_b$, $k_bk_c$, $k_ck_a$面に対応しています。 デフォルト値は1です。

出力ファイル

「MulPCal」による計算が正常に完了すると、以下の出力ファイルが作業ディレクトリに生成されます。

MulPop ファイル
このファイルは各k点に対するデータを記録します。 第1、第2、第3列はそれぞれk点のÅ$^{-1}$単位での $k_x$, $k_y$, $k_z$ 成分に対応します。 第4列はeV単位でのエネルギーに対応し、 第5、第6、第7列はそれぞれ電子の総数、$\alpha $スピンの数、$\beta $スピンの数に対応します。 第8、第9、第10列はそれぞれBohr磁子単位での$\sigma _x$, $\sigma _y$, $\sigma _z$ の期待値に対応します。 もし、キーワード「Calc.Type」の設定が「BandDispersion」ならば 第11列はBohr$^{-1}$単位でkパスに沿ったk点の距離に対応します。

MulPop_YY ファイル
このファイルはバンドインデックスYYの各k点のデータを記録します。 このファイルの内容の表記はMulPopファイルと同一です。

plotexample ファイル
もしキーワード「Calc.Type」の値が「GridCalc」ならば、 このファイルはgnuplotスクリプトとして活用できます。

plotexample_YY ファイル
もしキーワード「Calc.Type」の値が「GridCalc」ならば、 このファイルはバンドインデックスYYのバンドのgnuplotスクリプトとして活用できます。


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