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炭素原子の軌道のデータを抽出するために以下の設定を用います。
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図69はMulPCalcを数回同様に実行し、 MulPopファイルの第11、第4、第5列をgnuplotの円スタイルを用いてプロットすることで得ることができます。
|
もう一つの入力ファイル例「Au111Surface23_FL.dat」がディレクトリ「work」に収容されています。
これは清浄なAu(111)表面のスラブモデルの計算を行うものです。
この計算は他の計算例よりも多くの計算時間を要すことに注意して下さい。
SCF計算と後続のFermiLoop計算によって、バンド分散とスピンテクスチャが得られます。
図 70(a)と 70(b)にその計算結果を図示します。
ここで、二つの組のRashbaバンドが現れています。スラブモデルにおける上下の表面での
表面状態が縮退しているためです。
MulPCalcを用いれば片側の表面原子の寄与のみを解析することが可能となります。
片側の表面からのスピンテクスチャの寄与を図 70(c)に示します。
この結果はMulPCalcの機能を用いて得られたものです。
|
それぞれのキーワードの仕様を以下に説明します。
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」は軸に0.1、軸に0.2、軸に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の値はそれぞれ, , 面に対応しています。
デフォルト値は1です。
出力ファイル
「MulPCal」による計算が正常に完了すると、以下の出力ファイルが作業ディレクトリに生成されます。
MulPop ファイル
このファイルは各k点に対するデータを記録します。
第1、第2、第3列はそれぞれk点のÅ単位での , , 成分に対応します。
第4列はeV単位でのエネルギーに対応し、
第5、第6、第7列はそれぞれ電子の総数、スピンの数、スピンの数に対応します。
第8、第9、第10列はそれぞれBohr磁子単位での, , の期待値に対応します。
もし、キーワード「Calc.Type」の設定が「BandDispersion」ならば
第11列はBohr単位でkパスに沿ったk点の距離に対応します。
MulPop_YY ファイル
このファイルはバンドインデックスYYの各k点のデータを記録します。
このファイルの内容の表記はMulPopファイルと同一です。
plotexample ファイル
もしキーワード「Calc.Type」の値が「GridCalc」ならば、
このファイルはgnuplotスクリプトとして活用できます。
plotexample_YY ファイル
もしキーワード「Calc.Type」の値が「GridCalc」ならば、
このファイルはバンドインデックスYYのバンドのgnuplotスクリプトとして活用できます。