Page 1 of 1

VASP + WANNIER90 + spin orbit coupling

Posted: Tue Feb 05, 2019 9:25 am
by ew
Hi all,

I have a question concerning the combination of VASP and WANNIER90.

My aim is to calculate Hamiltonian Matrix elements in the Wannier function basis for different materials with spin orbit coupling.

As an example let's take mercury telluride (HgTe).

The vasp calculations work fine, but when it comes to the Wannier90 calculation (LWANNIER90_RUN = .TRUE. in the INCAR file), things start getting tricky.

In comparison to non-SOC calculations I just double the number of wannier functions (nuw_wann). But then my calculation does not stop properly and I do not get any output file (despite setting write_hr = T).

In my wannier90.win file I choose num_wann = 16 and spinors = .true. with the following projections on orbital basis functions:

Begin Projections
Hg : sp3
Te : sp3
End Projections.


But then in my log file I get a mysterious message:

.
.
.
Projection 26 done.
Projection 27 done.
Projection 28 done.
Projection 29 done.
Projection 30 done.
Projection 31 done.
Projection 32 done.
MLWF_WANNIER90: ERROR: number of projections not equal to num_wann 32
16


I do not understand why the projections go higher than 16 or the meaning of the error message.

Does anyone of you have experience in including spin orbit coupling in a VASP+WANNIER90 calculation and can explain me what I am doing wrong?

Thank you very much in advance!

Best regards

Re: VASP + WANNIER90 + spin orbit coupling

Posted: Mon Feb 25, 2019 2:59 pm
by d.pshenay
I had the same problem (I used vasp.5.4.4 with gnu compillers and wannier 1.2).
Try to switch off parallelization parameters in INCAR.
In my case it helped me (Experimentally, I found that I can only left k-point parallelization).

Re: VASP + WANNIER90 + spin orbit coupling

Posted: Fri Mar 01, 2019 4:15 pm
by ew
Hey, thank you very much for your reply.

Recently I also did some tests with wannier 1.2 and achieved some promising results,
I'll keep testing with your parallelization hint.

However, are you sure that your calculations are correct when you turn on spin orbit coupling? There are some posts in the forum that
suggest that VASP and WANNIER90 cannot work together at all (e.g. https://cms.mpi.univie.ac.at/vasp-forum ... =3&t=16899).
If that's the case I may have to find an alternative way, maybe with the LOCPROJ-parameter.

Best regards

Re: VASP + WANNIER90 + spin orbit coupling

Posted: Mon Mar 04, 2019 5:04 pm
by d.pshenay
Yes, I saw that. But, how can I check if it works OK? - I used it with SOC for band interpolation and compared obtained band structure with DFT results. They fit each other pretty close (to withing meV inside frozen window). My similar calculations using QuantumEspresso+Wannier90 interpolation with SOC also gave the same band structure.

Re: VASP + WANNIER90 + spin orbit coupling

Posted: Wed Mar 27, 2019 4:19 pm
by ew
Hey, it's me again.

You said that your DFT and WANNIER90 band structures are very close to within some meV. Unfortunately, I do not succeed in achieving this accuracy.
I already tried to change the frozen window but without any effect.

Especially in the band gap, I still have a huge difference of about 0.2 eV. Do you have any idea where this could come from?

Re: VASP + WANNIER90 + spin orbit coupling

Posted: Fri Mar 29, 2019 7:02 pm
by d.pshenay
For Wannier interpolation it is importaint to select sutable initial projections. For this, it is good to plot PDOS and bands of your material.
HgTe_pdos_all.png
HgTe_bands_all.png
Then you will see that 8 bands close to Fermi level are composed mainly from p-orbitals of Te and s-orbitals of Hg. They are quite good separated from other bands. From these pictures you can also deside on energy ranges for disentanglement.

So using a0=6.644894, 10x10x10 k-mesh and following INCAR (2 runs: SCF and NSCF - comment/uncomment lines):

Code: Select all

#
# PREC
 ENCUT = 400 
 LREAL = .FALSE.; GGA = PE
 PREC = Normal; ALGO = Normal;
 ISMEAR = 0; SIGMA = 0.026
# 
# SOC
 ISPIN = 1; LNONCOLLINEAR = .TRUE.; LSORBIT = .TRUE.
 MAGMOM = 6*0.0000; GGA_COMPAT = .FALSE.; LMAXMIX = 4; 
# 
# 1) SCF
 EDIFF = 1.00e-9; LWAVE = .FALSE.;
 KPAR = 4; NCORE = 4
#
# 2) NSCF for wannier
# EDIFF = 1.00e-6; ICHARG = 11;
# LWANNIER90 = .TRUE.; ISYM = -1;
# KPAR = 4; LCHARG = .FALSE.; LWAVE = .FALSE.; 
and wannier90.win (2 runs: for disantanglement&wannierization and for plotting):

Code: Select all

num_wann = 8

# correct if needed, based on vasp results
num_bands = 32 

num_iter = 1000
conv_tol = 1e-9
conv_window = 3
#
dis_num_iter = 4000
dis_conv_tol = 1e-9
dis_conv_window = 3
dis_win_min =  -3
dis_froz_min = -3
dis_froz_max = 4.9
#

num_print_cycles  = 10

spinors = .true.

begin projections
Hg : s
Te : pz, px, py
end projections

################################################
#restart = plot                                #
#bands_plot = true                             #
#begin kpoint_path                             #
#G 0.000 0.000 0.000    X 0.500 0.000 0.500    #
#X 0.500 0.000 0.500    W 0.500 0.250 0.750    #
#W 0.500 0.250 0.750    K 0.375 0.375 0.750    #
#K 0.375 0.375 0.750    G 0.000 0.000 0.000    #
#G 0.000 0.000 0.000    L 0.500 0.500 0.500    #
#L 0.500 0.500 0.500    U 0.625 0.250 0.625    #
#U 0.625 0.250 0.625    W 0.500 0.250 0.750    #
#W 0.500 0.250 0.750    L 0.500 0.500 0.500    #
#L 0.500 0.500 0.500    K 0.375 0.375 0.750    #
#end kpoint_path                               #
#bands_num_points = 20                         #
#bands_plot_format = gnuplot                   #
#write_hr =.true.                              #
################################################
one can obtain the following interpolation (yellow - vasp, dotted - Wannier-interpolated):
HgTe_bands_vasp-vs-wannier.png