Page 1 of 1

Non-collinear spin calculations with LORBIT 2 or 12

Posted: Tue Mar 26, 2019 5:29 pm
by uthpala
Dear all,

Hope you all are having an excellent week!

I am running non-collinear calculations with LORBIT=2 or 12 to get the projections with the phase factor.
My PROCAR file looks like this:

Code: Select all

PROCAR lm decomposed + phase
# of k-points:  160         # of bands:   50         # of ions:    5

 k-point     1 :    0.00000000 0.00000000 0.00000000     weight = 0.00625000

band     1 # energy  -29.05755049 # occ.  1.00000000
 
ion      s     py     pz     px    dxy    dyz    dz2    dxz  x2-y2    tot
    1  0.972  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.972
    2  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    3  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    4  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    5  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
tot    0.974  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.974
    1  0.963  0.000 -0.000 -0.000 -0.000 -0.000  0.000 -0.000 -0.000  0.963
    2  0.000  0.000 -0.000  0.000 -0.000  0.000  0.000 -0.000 -0.000  0.000
    3  0.000  0.000 -0.000 -0.000  0.000  0.000  0.000  0.000  0.000  0.000
    4  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    5  0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
tot    0.964  0.000 -0.000 -0.000 -0.000  0.000  0.000 -0.000 -0.000  0.964
    1 -0.032  0.000 -0.000 -0.000  0.000  0.000 -0.000 -0.000 -0.000 -0.032
    2 -0.000  0.000  0.000 -0.000  0.000  0.000  0.000 -0.000  0.000 -0.000
    3 -0.000  0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000 -0.000
    4 -0.000  0.000 -0.000 -0.000  0.000  0.000  0.000  0.000  0.000 -0.000
    5 -0.000  0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000 -0.000
tot   -0.032  0.000 -0.000 -0.000  0.000  0.000 -0.000 -0.000  0.000 -0.032
    1  0.131 -0.000 -0.000  0.000  0.000  0.000 -0.000 -0.000 -0.000  0.131
    2  0.000  0.000 -0.000 -0.000  0.000 -0.000  0.000 -0.000 -0.000  0.000
    3  0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    4  0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
    5  0.000 -0.000  0.000 -0.000  0.000  0.000  0.000  0.000  0.000  0.000
tot    0.131 -0.000 -0.000  0.000  0.000 -0.000 -0.000 -0.000 -0.000  0.131
ion          s             py             pz             px             dxy            dyz            dz2            dxz          dx2-y2  
    1 -1.326 -0.418   0.000  0.000   0.000 -0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   1.933
    2 -0.022 -0.007  -0.000 -0.000   0.000 -0.000   0.000 -0.000   0.000 -0.000   0.000  0.000  -0.000 -0.000  -0.000  0.000   0.000  0.000   0.001
    3 -0.027 -0.009   0.000 -0.000   0.000  0.000   0.000 -0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.001
    4 -0.027 -0.009   0.000  0.000   0.000  0.000  -0.000 -0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.001
    5 -0.027 -0.009   0.000 -0.000  -0.000  0.000  -0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.000  0.000   0.001
charge 1.936          0.000          0.000          0.000          0.000          0.000          0.000          0.000          0.000          1.936 
I am wondering why I only get one projection block with the phase. Shouldn't I get one for each spin channel (Sx, Sy, Sz)?
I dug through the vasp code and in sphpro.F I found the following lines:

Code: Select all

IF (LORBIT==2) THEN
         IF (WDES%LNONCOLLINEAR) THEN
            ! the phase factor is only qualitative, we just sum over up and down
            ! for the non collinear case
            PHAS(:,NI,NK,WDES%NB_LOW+(NB-1)*WDES%NB_PAR,1)= & 
               CSUM_PHASE(:,1)*SQRT(ABS(CSUM_ABS(:,1)))/ABS(CSUM_PHASE(:,1))+ &
               CSUM_PHASE(:,2)*SQRT(ABS(CSUM_ABS(:,2)))/ABS(CSUM_PHASE(:,2))
         ELSE
            PHAS(:,NI,NK,WDES%NB_LOW+(NB-1)*WDES%NB_PAR,1:WDES%ISPIN)=CSUM_PHASE(:,1:WDES%ISPIN)* &
               SQRT(ABS(CSUM_ABS(:,1:WDES%ISPIN)))/ABS(CSUM_PHASE(:,1:WDES%ISPIN))
         ENDIF
      ENDIF
I'm confused when it says "we just sum over up and down for the non colinear case" cause we have multiple directions of spin channels.
Please let me know if I am going about this all wrong.

Thanks in advance!

Best,
Uthpala