VASP + WANNIER90 + spin orbit coupling
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 3
- Joined: Wed Dec 05, 2012 11:42 am
VASP + WANNIER90 + spin orbit coupling
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
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
-
- Newbie
- Posts: 9
- Joined: Thu May 18, 2017 11:48 am
Re: VASP + WANNIER90 + spin orbit coupling
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).
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).
-
- Newbie
- Posts: 3
- Joined: Wed Dec 05, 2012 11:42 am
Re: VASP + WANNIER90 + spin orbit coupling
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
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
-
- Newbie
- Posts: 9
- Joined: Thu May 18, 2017 11:48 am
Re: VASP + WANNIER90 + spin orbit coupling
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.
-
- Newbie
- Posts: 3
- Joined: Wed Dec 05, 2012 11:42 am
Re: VASP + WANNIER90 + spin orbit coupling
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?
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?
-
- Newbie
- Posts: 9
- Joined: Thu May 18, 2017 11:48 am
Re: VASP + WANNIER90 + spin orbit coupling
For Wannier interpolation it is importaint to select sutable initial projections. For this, it is good to plot PDOS and bands of your material.
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):
and wannier90.win (2 runs: for disantanglement&wannierization and for plotting):
one can obtain the following interpolation (yellow - vasp, dotted - Wannier-interpolated):
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.;
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. #
################################################
You do not have the required permissions to view the files attached to this post.