'kSpin' has four ways to calculate the kspace spin density matrix, which can be specified by a keyword 'Calc.Type'. Here we introduce BandDispersion among the four ways. BandDispersion can calculate the kspace spin density matrix resolved to each atom on the band dispersion relation within a userspecified energy range. First, the calculation of the band dispersion using BandDispersion is illustrated here with a simple model of an Au(111) surface. Then, you can calculate spin textures using 53.6 MulPCalc.
After a calculation of OpenMX with an input file 'Au111Surface_BD.dat' stored in the directory 'work', you may try to run 'kSpin'. The keywords relevant to the executation of kSpin can be found at the bottom of the input file 'Au111Surface_BD.dat' stored in the directory 'work' as shown below:
List of keywords relevant to 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>
Specification of keywords
The specification of each keyword is explained below:
Filename.scfout
Specify the name of the scfout file which will be read by 'kSpin'.
Filename.outdata
Specify a name for output files. This keyword corresponds to the keyword 'System.Name'
for OpenMX calculations.
Calc.Type
Choose either FermiLoop, GridCalc, BandDispersion, or MulPOnly.
The default setting is MulPOnly. Here we choose BandDispersion for the exercise.
Energy.Range
Specify the two different values for an energy range for which BandDispersion should search bands.
The unit is in eV. The default is '0.5 0.5' (i.e. the range is [0.5, 0.5]).
Band.Nkpath
Specify the number of kpaths along whichBandDispersion should calculate the band dispersion.
The notation is the same as that in the conventional calculation.
Band.kpath
Specify kpaths along which BandDispersion should calculate the band dispersion.
The notation is the same as that in the conventional calculation.
Calculation
The kspace spin density matrix resolved to each atom is calculated by a postprocessing code 'kSpin' in the directory 'work'. Please move to the directory 'work', and perform a calculation as follows:
% ./kSpin Au111Surface_BD.dator for the MPI calculation, for example, the case with 4 MPI processes
% mpirun np 4 ./kSpin Au111Surface_BD.dat
As the calculation proceeds, you may see the following standard output:
****************************************************************** ****************************************************************** 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) ###########################################
When the calculation is completed normally as shown above, you can find the following output files in the directory '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.inputAs an example, by executing the following command, you can obtain a figure of the band dispersion for the Rashba spin splitting in the Au(111) surface as shown in Fig. 67(a).
% gnuplot Au111Surface_BD.plotexampleIn order to obtain information of spin textures on the band dispersion, you may try to analyze by 53.6 MulPCalc.

Output files
The content of each output file is explained below:
BAND file
This file stores data for the band dispersion. The first and second columns correspond to the
distance for the kpoints along each kpath (in units of Bohr) and
the energy for each of them (in units of eV), respectively.
Band_YY_Z file
This file stores data for the band dispersion of each branch with the band index YY and kpath index Z.
The notation of contents of this file is the same as the BAND file.
AMulPBand file
This file stores data of the kspace spin density matrix resolved to each atom,
and can be analyzed by 53.6 MulPCalc.
AMulPBand_xx file
This file stores data of the xxcomponent of the kspace spin density matrix resolved to each atom,
and can be analyzed by 53.6 MulPCalc.
plotexample file
This file supplies an example of gnuplot scripts.
atominfo file
This file supplies information of lattice vectors and PAOs.
temporal_12345.input
This file is a copy of the input file stored in the scfout file.
Analysis of the kspace spin density matrix resolved to each atom
MulPCalc can extract data to analyze the kspace spin density matrix resolved to each atom from AMulPBand files or AMulPBand_xx files. The executable file can be obtained by compilation in the directory 'source' as follows:
% make MulPCalcAfter the successful compilation, you can find the executable file 'MulPCalc' in the directory 'work'. Let us analyze the kspace spin density matrix resolved to the atomic contribution on the band dispersion for the Rashba spin splitting in the Au(111) surface. First, add the following keywords and values into the input file 'Au111Surface_BD.dat', for example:
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)After the above calculation, you can analyze the kspace spin density matrix resolved to the atomic contribution as follows:
% ./MulPCalc Au111Surface_BD.datIn addtion, you can adjust data for making better figures by the following keywords and values:
MulP.Vec.Scale 0.1 0.1 0.1 # default: 1.0 1.0 1.0 Data.Reduction 1 # default: 1After executing MulPCalc, you can find the following output files in the directory '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.plotexampleAs an example, by executing the following command, you can obtain a figure of the band dispersion for the Rashba spin splitting in the Au(111) surface with the kspace spin density matrix resolved to the atom contribution as shown in Fig. 67(b).
% gnuplot Au111Surface_BD_MC.plotexampleFor more information of MulPCalc, see also the subsection of 53.6 MulPCalc.