Vasp+wannier90 band structure problem
Posted: Mon Sep 28, 2015 12:18 pm
Dear all,
I want to make the calculations of band structure of bulk PbTe using wannier90-1.2. Until I do not take into account the spin – orbit interactions everything goes well. However, when I switch on spin – orbit, I face the problem. The obtained bands are not smooth. I checked the wannier90 outfile and I found that at the end of wannierisation the functions are not converged. Delta O_D is of order of 10-3 and the Omega D ~2. Increasing the number of iterations, number of orbitals, number of bands or k-points mesh does not change anything. The only thing which improved convergence and in the end the band structure is switching off the symmetry during the DFT calculations. However, finally I want to make a hybrid and GW calculations. In such cases switching off the symmetry make them almost impossible to run and finish. I know that such calculations with wannier90 and switched on symmetry and spin – orbit interactions are possible. But I don’t know how to do that and where I should look for the solution of my problem. Is it a problem of correct compilations of vasp or wannier90? If yes what kind of flags should I use? Or it is a problem related to parameters I use?
The exemplary wannier90.win file which I used:
bands_plot = true
bands_plot_format = xmgrace
bands_num_points = 100
iprint = 3
num_iter = 200
num_print_cycles = 20
begin kpoint_path
W 0.250 0.500 0.750 L 0.500 0.500 0.500
L 0.500 0.500 0.500 G 0.000 0.000 0.000
G 0.000 0.000 0.000 X 0.500 0.000 0.500
X 0.500 0.000 0.500 U 0.625 0.250 0.625
U 0.625 0.250 0.625 G 1.000 1.000 1.000
end kpoint_path
num_wann = 26
num_bands = 26
exclude_bands = 27-256
begin projections
Pb:s;p;d
Te:s;p
end projections
spinors = .true.
begin unit_cell_cart
0.0000000 3.2212500 3.2212500
3.2212500 0.0000000 3.2212500
3.2212500 3.2212500 0.0000000
end unit_cell_cart
begin atoms_cart
Pb 0.0000000 0.0000000 0.0000000
Te 3.2212500 3.2212500 3.2212500
end atoms_cart
mp_grid = 12 12 12
begin kpoints
0.000000000000 0.000000000000 0.000000000000
...
end kpoints
The used makefile (vasp 5.4.1) is following:
# Precompiler options
CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \
-DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \
-DnoAugXCmeta -Duse_bse_te \
-Duse_shmem -Dtbdyn -DVASP2WANNIER90
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90 -mkl
FREE = -free -names lowercase
FFLAGS = -assume byterecl
OFLAG = -O2 -march=core-avx2 -xCORE-AVX2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_openmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
INCS =-I$(MKLROOT)/include/fftw
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) ../../../wannier90-1.2/libwannier.a
OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O -march=core-avx2 -xCORE-AVX2
FFLAGS_LIB = -O1 -march=core-avx2 -xCORE-AVX2
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
For the compilation intel.15.0 and OpenMPI 1.8.4 were used. For earlier versions on vasp I had the same problems.
Could anyone help me?
Marta
I want to make the calculations of band structure of bulk PbTe using wannier90-1.2. Until I do not take into account the spin – orbit interactions everything goes well. However, when I switch on spin – orbit, I face the problem. The obtained bands are not smooth. I checked the wannier90 outfile and I found that at the end of wannierisation the functions are not converged. Delta O_D is of order of 10-3 and the Omega D ~2. Increasing the number of iterations, number of orbitals, number of bands or k-points mesh does not change anything. The only thing which improved convergence and in the end the band structure is switching off the symmetry during the DFT calculations. However, finally I want to make a hybrid and GW calculations. In such cases switching off the symmetry make them almost impossible to run and finish. I know that such calculations with wannier90 and switched on symmetry and spin – orbit interactions are possible. But I don’t know how to do that and where I should look for the solution of my problem. Is it a problem of correct compilations of vasp or wannier90? If yes what kind of flags should I use? Or it is a problem related to parameters I use?
The exemplary wannier90.win file which I used:
bands_plot = true
bands_plot_format = xmgrace
bands_num_points = 100
iprint = 3
num_iter = 200
num_print_cycles = 20
begin kpoint_path
W 0.250 0.500 0.750 L 0.500 0.500 0.500
L 0.500 0.500 0.500 G 0.000 0.000 0.000
G 0.000 0.000 0.000 X 0.500 0.000 0.500
X 0.500 0.000 0.500 U 0.625 0.250 0.625
U 0.625 0.250 0.625 G 1.000 1.000 1.000
end kpoint_path
num_wann = 26
num_bands = 26
exclude_bands = 27-256
begin projections
Pb:s;p;d
Te:s;p
end projections
spinors = .true.
begin unit_cell_cart
0.0000000 3.2212500 3.2212500
3.2212500 0.0000000 3.2212500
3.2212500 3.2212500 0.0000000
end unit_cell_cart
begin atoms_cart
Pb 0.0000000 0.0000000 0.0000000
Te 3.2212500 3.2212500 3.2212500
end atoms_cart
mp_grid = 12 12 12
begin kpoints
0.000000000000 0.000000000000 0.000000000000
...
end kpoints
The used makefile (vasp 5.4.1) is following:
# Precompiler options
CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \
-DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \
-DnoAugXCmeta -Duse_bse_te \
-Duse_shmem -Dtbdyn -DVASP2WANNIER90
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90 -mkl
FREE = -free -names lowercase
FFLAGS = -assume byterecl
OFLAG = -O2 -march=core-avx2 -xCORE-AVX2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_openmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
INCS =-I$(MKLROOT)/include/fftw
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) ../../../wannier90-1.2/libwannier.a
OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O -march=core-avx2 -xCORE-AVX2
FFLAGS_LIB = -O1 -march=core-avx2 -xCORE-AVX2
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
For the compilation intel.15.0 and OpenMPI 1.8.4 were used. For earlier versions on vasp I had the same problems.
Could anyone help me?
Marta