I want to plot spin-textures for a particular band which possesses Rashba type of splitting with arrows distributed in a full graph sheet, just like given in the paper spin-texture(Fig. 3 and 5).
My attempt:
I did a DFT calculation using the k-mesh grid which I obtained from PyProcar API.
pyprocar.generate2dkmesh(-0.2, -0.2, 0.2,0.2,0,7,7)
After DFT, I used the PROCAR file and extracted data from the particular band and particular spin-projection (Sx,Sy,Sz).
As we know the PROCAR file contains the spin-projections for non-collinear spins in the last column and the last three rows for each k point and each band. I used the filter module of PyProcar to get this data.
In my 2d-kmesh, there are 49 points and the 24th is my Gamma point (0,0,0) so around that point, I choose 5 k-points in each direction. making total 11 k-points.
So, now I have spin projections data (values, positive or negative for each k-point) for that band.
I have data like this:
Sx1 0.6882 0.544........11 -0.627
and similarly for Sy and Sz. (negligible values of Sz.
Meaning to say I have the values in a single array (column), how do I distribute these on a 2D grid.
I used python'squiver plot and I did it as follows:
x = np.linspace(-0.2,0.2,11)y = xX,Y = np.meshgrid(x,y)SX,SY = np.meshgrid(Sx[1],Sy[1])plt.quiver(X,Y,SX,SY)
where Sx[1] and Sy[1] are the second columns in Sx and Sy.
This is not giving me the correct spin texture. The arrows are randomly distributed everywhere. While checking with the PyProcar's fermi2D module I am getting two circular contours with red and blue (spin-up and down) projections.
I also want to know how so I incorporate the Sz contribution using the colour property. as shown in the figures (Fig. 3 and 5).
If someone knows how to plot in MATHEMATICA, please let me know.
Dear All,
I want to plot spin-textures for a particular band which possesses Rashba type of splitting with arrows distributed in a full graph sheet, just like given in the paper spin-texture(Fig. 3 and 5).
My attempt:
I did a DFT calculation using the k-mesh grid which I obtained from PyProcar API.
pyprocar.generate2dkmesh(-0.2, -0.2, 0.2,0.2,0,7,7)
After DFT, I used the
PROCAR
file and extracted data from the particular band and particular spin-projection(Sx,Sy,Sz)
. As we know the PROCAR file contains the spin-projections for non-collinear spins in the last column and the last three rows for each k point and each band. I used thefilter
module of PyProcar to get this data.In my 2d-kmesh, there are 49 points and the 24th is my Gamma point (0,0,0) so around that point, I choose 5 k-points in each direction. making total 11 k-points.
So, now I have spin projections data (values, positive or negative for each k-point) for that band.
I have data like this:
Sx
1 0.688
2 0.544
....
....
11 -0.627
and similarly for
Sy
andSz
. (negligible values ofSz
.Meaning to say I have the values in a single array (column), how do I distribute these on a 2D grid. I used
python's
quiver plot
and I did it as follows:x = np.linspace(-0.2,0.2,11)
y = x
X,Y = np.meshgrid(x,y)
SX,SY = np.meshgrid(Sx[1],Sy[1])
plt.quiver(X,Y,SX,SY)
where
Sx[1]
andSy[1]
are the second columns in Sx and Sy.This is not giving me the correct spin texture. The arrows are randomly distributed everywhere. While checking with the PyProcar's fermi2D module I am getting two circular contours with red and blue (spin-up and down) projections.
I also want to know how so I incorporate the
Sz
contribution using the colour property. as shown in the figures (Fig. 3 and 5).If someone knows how to plot in
MATHEMATICA
, please let me know.