Commit f90e0957 authored by sponce's avatar sponce

Debug of initial projector in the case of spinor (SOC case, noncolin).

Initial spread was garbage. Should now be correct. 
An .nnkp file is written/read following the wannier_prog approach. 
lambda_tr is affected by this (it should now be correct). 



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12551 c92efa57-630b-4861-b058-cf58834340f0
parent bf351fa6
......@@ -9,7 +9,7 @@ include make.libs
IFLAGS = -I../../include
MODFLAGS = -I../../iotk/src -I../../Modules -I../../LAXlib -I../../iotk/src \
-I../../FFTXlib -I../../PW/src -I../../LR_Modules -I../../PHonon/PH -I../../PP/src -I.
-I../../FFTXlib -I../../PW/src -I../../LR_Modules -I../../PHonon/PH -I../../PP/src/ -I.
#
# The above is in alphabetical order except when order matter during compilation
......@@ -115,7 +115,7 @@ write_ephmat.o
PHOBJS = ../../PHonon/PH/libph.a
PWOBJS = ../../PW/src/libpw.a
W90LIB = ../../wannier90-2.0.1/libwannier.a
W90LIB = ../../wannier90-2.0.1/libwannier.a
LRMODS = ../../LR_Modules/liblrmod.a
PWOBJS = ../../PW/src/libpw.a
QEMODS = ../../Modules/libqemod.a ../../FFTXlib/libqefft.a ../../LAXlib/libqela.a
......@@ -123,7 +123,7 @@ LIBOBJS = ../../clib/clib.a ../../iotk/src/libiotk.a
TLDEPS= bindir mods libs pw-lib pw ph
all : pw ph wannier pp ld1 upf libepw.a epw.x
all : pw ph wannier wcorr pp ld1 upf libepw.a epw.x
libepw.a : $(EPWOBJS)
$(AR) $(ARFLAGS) $@ $?
......
......@@ -41,5 +41,16 @@
REAL(DP), PARAMETER :: kelvin2eV= 8.6173427909d-05
REAL(DP), PARAMETER :: ryd2ghz = 3.289828d6
!
! ... zero up to a given accuracy
!
REAL(DP), PARAMETER :: eps4 = 1.0E-4_DP
REAL(DP), PARAMETER :: eps6 = 1.0E-6_DP
REAL(DP), PARAMETER :: eps8 = 1.0E-8_DP
REAL(DP), PARAMETER :: eps12 = 1.0E-12_DP
REAL(DP), PARAMETER :: eps14 = 1.0E-14_DP
REAL(DP), PARAMETER :: eps16 = 1.0E-16_DP
REAL(DP), PARAMETER :: eps24 = 1.0E-24_DP
REAL(DP), PARAMETER :: eps32 = 1.0E-32_DP
!
END MODULE constants_epw
This diff is collapsed.
......@@ -29,6 +29,8 @@ module wannier
write_amn, write_mmn, reduce_unk, write_spn
! input data from nnkp file
real(DP), allocatable :: center_w(:,:) ! center_w(3,n_wannier)
integer, allocatable :: spin_eig(:)
real(DP), allocatable :: spin_qaxis(:,:)
integer, allocatable :: l_w(:), mr_w(:) ! l and mr of wannier (n_wannier) as from table 3.1,3.2 of spec.
integer, allocatable :: r_w(:) ! index of radial function (n_wannier) as from table 3.3 of spec.
real(DP), allocatable :: xaxis(:,:),zaxis(:,:) ! xaxis and zaxis(3,n_wannier)
......@@ -46,7 +48,7 @@ module wannier
integer :: num_bands ! number of bands left after exclusions
character(len=3), allocatable :: atsym(:) ! atomic symbols. atsym(nat)
integer :: num_nnmax=12
complex(DP), allocatable :: m_mat(:,:,:,:), a_mat(:,:,:)
complex(DP), allocatable :: m_mat(:,:,:,:), a_mat(:,:,:), spn_mat(:,:,:)
complex(DP), allocatable :: u_mat(:,:,:), u_mat_opt(:,:,:)
logical, allocatable :: lwindow(:,:)
real(DP), allocatable :: wann_centers(:,:),wann_spreads(:)
......
......@@ -183,11 +183,12 @@ subroutine wannier_setup(seed__name,mp_grid_loc,num_kpts_loc,&
exclude_bands_loc(1:num_exclude_bands) = exclude_bands(1:num_exclude_bands)
end if
if (postproc_setup) then
! SP: could not made postproc_setup = .true. from EPW
! if (postproc_setup) then
call kmesh_write()
write(stdout,'(1x,a25,f11.3,a)') 'Time to write kmesh ',io_time(),' (sec)'
write(stdout,'(/a)') ' '//trim(seedname)//'.nnkp written.'
endif
! endif
call kmesh_dealloc()
......@@ -209,8 +210,8 @@ end subroutine wannier_setup
subroutine wannier_run(seed__name,mp_grid_loc,num_kpts_loc, &
real_lattice_loc,recip_lattice_loc,kpt_latt_loc,num_bands_loc, &
num_wann_loc,nntot_loc,num_atoms_loc,atom_symbols_loc, &
atoms_cart_loc,gamma_only_loc,M_matrix_loc,A_matrix_loc,eigenvalues_loc, &
U_matrix_loc,U_matrix_opt_loc,lwindow_loc,wann_centres_loc, &
atoms_cart_loc,gamma_only_loc,m_matrix_loc,A_matrix_loc,eigenvalues_loc, &
u_matrix_loc,u_matrix_opt_loc,lwindow_loc,wann_centres_loc, &
wann_spreads_loc,spread_loc)
......@@ -240,11 +241,11 @@ subroutine wannier_run(seed__name,mp_grid_loc,num_kpts_loc, &
character(len=*), dimension(num_atoms_loc), intent(in) :: atom_symbols_loc
real(kind=dp), dimension(3,num_atoms_loc), intent(in) :: atoms_cart_loc
logical, intent(in) :: gamma_only_loc
complex(kind=dp), dimension(num_bands_loc,num_bands_loc,nntot_loc,num_kpts_loc), intent(in) :: M_matrix_loc
complex(kind=dp), dimension(num_bands_loc,num_bands_loc,nntot_loc,num_kpts_loc), intent(in) :: m_matrix_loc
complex(kind=dp), dimension(num_bands_loc,num_wann_loc,num_kpts_loc), intent(in) :: A_matrix_loc
real(kind=dp), dimension(num_bands_loc,num_kpts_loc), intent(in) :: eigenvalues_loc
complex(kind=dp), dimension(num_wann_loc,num_wann_loc,num_kpts_loc), intent(out) :: U_matrix_loc
complex(kind=dp), dimension(num_bands_loc,num_wann_loc,num_kpts_loc), optional, intent(out) :: U_matrix_opt_loc
complex(kind=dp), dimension(num_wann_loc,num_wann_loc,num_kpts_loc), intent(out) :: u_matrix_loc
complex(kind=dp), dimension(num_bands_loc,num_wann_loc,num_kpts_loc), optional, intent(out) :: u_matrix_opt_loc
logical, dimension(num_bands_loc,num_kpts_loc), optional, intent(out) :: lwindow_loc
real(kind=dp), dimension(3,num_wann_loc), optional, intent(out) :: wann_centres_loc
real(kind=dp), dimension(num_wann_loc), optional, intent(out) :: wann_spreads_loc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment