Commit afb15c8f authored by Henning Janssen's avatar Henning Janssen

Add some missing code for radial dependence

parent 5ac1a0cc
...@@ -89,13 +89,13 @@ SUBROUTINE greensfImag(atoms,sym,input,ispin,nbands,dosWeights,ind,wtkpt,eig,usd ...@@ -89,13 +89,13 @@ SUBROUTINE greensfImag(atoms,sym,input,ispin,nbands,dosWeights,ind,wtkpt,eig,usd
usdus%ddn(l,nType,ispin)) usdus%ddn(l,nType,ispin))
IF(.NOT.input%l_gfsphavg) THEN IF(.NOT.input%l_gfsphavg) THEN
im(ie,m,mp,2) = im(ie,m,mp,2) - pi_const * weight *& im(ie,m,mp,2) = im(ie,m,mp,2) - pi_const * weight *&
conjg(eigVecCoeffs%acof(ib,lm,natom,ispin))*eigVecCoeffs%acof(ib,lmp,natom,ispin) conjg(eigVecCoeffs%acof(ib,lmp,natom,ispin))*eigVecCoeffs%acof(ib,lm,natom,ispin)
im(ie,m,mp,3) = im(ie,m,mp,3) - pi_const * weight *& im(ie,m,mp,3) = im(ie,m,mp,3) - pi_const * weight *&
conjg(eigVecCoeffs%bcof(ib,lm,natom,ispin))*eigVecCoeffs%bcof(ib,lmp,natom,ispin) conjg(eigVecCoeffs%bcof(ib,lmp,natom,ispin))*eigVecCoeffs%bcof(ib,lm,natom,ispin)
im(ie,m,mp,4) = im(ie,m,mp,4) - pi_const * weight *& im(ie,m,mp,4) = im(ie,m,mp,4) - pi_const * weight *&
conjg(eigVecCoeffs%acof(ib,lm,natom,ispin))*eigVecCoeffs%bcof(ib,lmp,natom,ispin) conjg(eigVecCoeffs%acof(ib,lmp,natom,ispin))*eigVecCoeffs%bcof(ib,lm,natom,ispin)
im(ie,m,mp,5) = im(ie,m,mp,5) - pi_const * weight *& im(ie,m,mp,5) = im(ie,m,mp,5) - pi_const * weight *&
conjg(eigVecCoeffs%bcof(ib,lm,natom,ispin))*eigVecCoeffs%acof(ib,lmp,natom,ispin) conjg(eigVecCoeffs%bcof(ib,lmp,natom,ispin))*eigVecCoeffs%acof(ib,lm,natom,ispin)
END IF END IF
! !
! add local orbital contribution (not implemented for radial dependence yet and not tested for average) ! add local orbital contribution (not implemented for radial dependence yet and not tested for average)
......
...@@ -94,7 +94,16 @@ MODULE m_greensfImag21 ...@@ -94,7 +94,16 @@ MODULE m_greensfImag21
+ CONJG(eigVecCoeffs%bcof(ib,lmp,natom,2)) * eigVecCoeffs%bcof(ib,lm,natom,1) * denCoeffsOffdiag%dd21n(l,nType)& + CONJG(eigVecCoeffs%bcof(ib,lmp,natom,2)) * eigVecCoeffs%bcof(ib,lm,natom,1) * denCoeffsOffdiag%dd21n(l,nType)&
+ CONJG(eigVecCoeffs%acof(ib,lmp,natom,2)) * eigVecCoeffs%bcof(ib,lm,natom,1) * denCoeffsOffdiag%ud21n(l,nType)& + CONJG(eigVecCoeffs%acof(ib,lmp,natom,2)) * eigVecCoeffs%bcof(ib,lm,natom,1) * denCoeffsOffdiag%ud21n(l,nType)&
+ CONJG(eigVecCoeffs%bcof(ib,lmp,natom,2)) * eigVecCoeffs%acof(ib,lm,natom,1) * denCoeffsOffdiag%du21n(l,nType)) + CONJG(eigVecCoeffs%bcof(ib,lmp,natom,2)) * eigVecCoeffs%acof(ib,lm,natom,1) * denCoeffsOffdiag%du21n(l,nType))
IF(.NOT.input%l_gfsphavg) THEN
im(ie,m,mp,2) = im(ie,m,mp,2) - pi_const * weight *&
conjg(eigVecCoeffs%acof(ib,lmp,natom,2))*eigVecCoeffs%acof(ib,lm,natom,1)
im(ie,m,mp,3) = im(ie,m,mp,3) - pi_const * weight *&
conjg(eigVecCoeffs%bcof(ib,lmp,natom,2))*eigVecCoeffs%bcof(ib,lm,natom,1)
im(ie,m,mp,4) = im(ie,m,mp,4) - pi_const * weight *&
conjg(eigVecCoeffs%acof(ib,lmp,natom,2))*eigVecCoeffs%bcof(ib,lm,natom,1)
im(ie,m,mp,5) = im(ie,m,mp,5) - pi_const * weight *&
conjg(eigVecCoeffs%bcof(ib,lmp,natom,2))*eigVecCoeffs%acof(ib,lm,natom,1)
ENDIF
! !
!Contribution from local Orbitals !Contribution from local Orbitals
! !
......
...@@ -101,22 +101,4 @@ SUBROUTINE calc_onsite(atoms,input,sym,noco,greensfCoeffs,g) ...@@ -101,22 +101,4 @@ SUBROUTINE calc_onsite(atoms,input,sym,noco,greensfCoeffs,g)
END SUBROUTINE calc_onsite END SUBROUTINE calc_onsite
!SUBROUTINE rot_gf_mat(g,noco,i_gf,nType)
!
! USE m_rotdenmat
!
! IMPLICIT NONE
!
! TYPE(t_greensf), INTENT(INOUT) :: g
! TYPE(t_noco), INTENT(IN) :: noco
! INTEGER, INTENT(IN) :: i_gf
! INTEGER, INTENT(IN) :: nType
!
! CALL rot_den_mat(noco%alph(nType),noco%beta(nType),&
! g%gmmpMat(iz,i_gf,-lmaxU_const:lmaxU_const,-lmaxU_const:lmaxU_const,1,ipm),&
! g%gmmpMat(iz,i_gf,-lmaxU_const:lmaxU_const,-lmaxU_const:lmaxU_const,2,ipm),&
! g%gmmpMat(iz,i_gf,-lmaxU_const:lmaxU_const,-lmaxU_const:lmaxU_const,3,ipm))
!
!END SUBROUTINE
END MODULE m_onsite END MODULE m_onsite
\ No newline at end of file
...@@ -188,7 +188,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts ...@@ -188,7 +188,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
IF (atoms%n_hia.GT.0) THEN IF (atoms%n_hia.GT.0) THEN
IF (input%secvar) CALL juDFT_error("LDA+Hubbard1 and sevcar not implemented",calledby ="postprocessInput") IF (input%secvar) CALL juDFT_error("LDA+Hubbard1 and sevcar not implemented",calledby ="postprocessInput")
IF (noco%l_mperp) CALL juDFT_error("LDA+Hubbard1 and l_mperp not implemented",calledby ="postprocessInput") !IF (noco%l_mperp) CALL juDFT_error("LDA+Hubbard1 and l_mperp not implemented",calledby ="postprocessInput")
IF (noco%l_soc.AND..NOT.noco%l_spav) CALL juDFT_warn("LDA+Hubbard1 with SOC and non averaged SOC potential not tested",calledby ="postprocessInput") IF (noco%l_soc.AND..NOT.noco%l_spav) CALL juDFT_warn("LDA+Hubbard1 with SOC and non averaged SOC potential not tested",calledby ="postprocessInput")
END IF END IF
!greens function !greens function
...@@ -521,7 +521,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts ...@@ -521,7 +521,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
CALL apply_displacements(cell,input,vacuum,oneD,sym,noco,atoms) CALL apply_displacements(cell,input,vacuum,oneD,sym,noco,atoms)
!Calculate kpoint in the full BZ !Calculate kpoint in the full BZ
IF (kpts%l_gamma.and. banddos%ndir .eq. 0.and.kpts%specificationType==2.and. atoms%n_gf==0) THEN IF (kpts%l_gamma.and. banddos%ndir .eq. 0.and.kpts%specificationType==2) THEN
CALL gen_bz(kpts,sym) CALL gen_bz(kpts,sym)
ELSE ELSE
kpts%nkptf=0 kpts%nkptf=0
......
...@@ -82,12 +82,13 @@ MODULE m_cdnpot_io_common ...@@ -82,12 +82,13 @@ MODULE m_cdnpot_io_common
IF(atoms%lmaxd.NE.refAtoms%lmaxd) l_same = .FALSE. IF(atoms%lmaxd.NE.refAtoms%lmaxd) l_same = .FALSE.
IF(atoms%jmtd.NE.refAtoms%jmtd) l_same = .FALSE. IF(atoms%jmtd.NE.refAtoms%jmtd) l_same = .FALSE.
IF(atoms%n_u.NE.refAtoms%n_u) l_same = .FALSE. IF(atoms%n_u.NE.refAtoms%n_u) l_same = .FALSE.
IF(atoms%n_hia.NE.refAtoms%n_hia) l_same = .FALSE.
IF(vacuum%dvac.NE.refVacuum%dvac) l_same = .FALSE. IF(vacuum%dvac.NE.refVacuum%dvac) l_same = .FALSE.
IF(sym%nop.NE.refSym%nop) l_same = .FALSE. IF(sym%nop.NE.refSym%nop) l_same = .FALSE.
IF(sym%nop2.NE.refSym%nop2) l_same = .FALSE. IF(sym%nop2.NE.refSym%nop2) l_same = .FALSE.
IF(atoms%n_u.EQ.refAtoms%n_u) THEN IF(atoms%n_u.EQ.refAtoms%n_u.AND.atoms%n_hia.EQ.refAtoms%n_hia) THEN
DO i = 1, atoms%n_u DO i = 1, atoms%n_u+atoms%n_hia
IF (atoms%lda_u(i)%atomType.NE.refAtoms%lda_u(i)%atomType) l_same = .FALSE. IF (atoms%lda_u(i)%atomType.NE.refAtoms%lda_u(i)%atomType) l_same = .FALSE.
IF (atoms%lda_u(i)%l.NE.refAtoms%lda_u(i)%l) l_same = .FALSE. IF (atoms%lda_u(i)%l.NE.refAtoms%lda_u(i)%l) l_same = .FALSE.
END DO END DO
......
...@@ -39,7 +39,7 @@ CONTAINS ...@@ -39,7 +39,7 @@ CONTAINS
INTEGER n INTEGER n
REAL rdum REAL rdum
! .. Local Arrays .. ! .. Local Arrays ..
INTEGER i(42),ierr(3) INTEGER i(44),ierr(3)
REAL r(34) REAL r(34)
LOGICAL l(46) LOGICAL l(46)
! .. ! ..
...@@ -58,7 +58,7 @@ CONTAINS ...@@ -58,7 +58,7 @@ CONTAINS
i(27)=vacuum%nstars ; i(28)=vacuum%nstm ; i(29)=oneD%odd%nq2 ; i(30)=oneD%odd%nop i(27)=vacuum%nstars ; i(28)=vacuum%nstm ; i(29)=oneD%odd%nq2 ; i(30)=oneD%odd%nop
i(31)=input%gw ; i(32)=input%gw_neigd ; i(33)=hybrid%ewaldlambda ; i(34)=hybrid%lexp i(31)=input%gw ; i(32)=input%gw_neigd ; i(33)=hybrid%ewaldlambda ; i(34)=hybrid%lexp
i(35)=hybrid%bands1 ; i(36)=input%maxiter ; i(37)=input%imix ; i(38)=banddos%orbCompAtom i(35)=hybrid%bands1 ; i(36)=input%maxiter ; i(37)=input%imix ; i(38)=banddos%orbCompAtom
i(39)=input%kcrel;i(40)=banddos%s_cell_x;i(41)=banddos%s_cell_y;i(42)=banddos%s_cell_z i(39)=input%kcrel;i(40)=banddos%s_cell_x;i(41)=banddos%s_cell_y;i(42)=banddos%s_cell_z;i(43)=atoms%n_hia;i(44)=atoms%n_gf
r(1)=cell%omtil ; r(2)=cell%area ; r(3)=vacuum%delz ; r(4)=cell%z1 ; r(5)=input%alpha r(1)=cell%omtil ; r(2)=cell%area ; r(3)=vacuum%delz ; r(4)=cell%z1 ; r(5)=input%alpha
r(6)=sliceplot%e1s ; r(7)=sliceplot%e2s ; r(8)=noco%theta; r(9)=noco%phi; r(10)=vacuum%tworkf r(6)=sliceplot%e1s ; r(7)=sliceplot%e2s ; r(8)=noco%theta; r(9)=noco%phi; r(10)=vacuum%tworkf
...@@ -94,6 +94,7 @@ CONTAINS ...@@ -94,6 +94,7 @@ CONTAINS
atoms%ntype=i(3) ; banddos%orbCompAtom=i(38);banddos%s_cell_x=i(40);banddos%s_cell_y=i(41);banddos%s_cell_z=i(42) atoms%ntype=i(3) ; banddos%orbCompAtom=i(38);banddos%s_cell_x=i(40);banddos%s_cell_y=i(41);banddos%s_cell_z=i(42)
input%coretail_lmax=i(2) ; input%kcrel=i(39) input%coretail_lmax=i(2) ; input%kcrel=i(39)
stars%kimax=i(25);stars%kimax2=i(26) stars%kimax=i(25);stars%kimax2=i(26)
atoms%n_hia=i(43);atoms%n_gf=i(44)
! !
CALL MPI_BCAST(r,SIZE(r),MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) CALL MPI_BCAST(r,SIZE(r),MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
input%minDistance=r(29) ; obsolete%chng=r(30) input%minDistance=r(29) ; obsolete%chng=r(30)
......
...@@ -44,7 +44,7 @@ CONTAINS ...@@ -44,7 +44,7 @@ CONTAINS
CALL MPI_BCAST(l_pw_wAlloc,1,MPI_LOGICAL,0,mpi%mpi_comm,ierr) CALL MPI_BCAST(l_pw_wAlloc,1,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
IF((mpi%irank.NE.0).AND.l_denMatAlloc) THEN IF((mpi%irank.NE.0).AND.l_denMatAlloc) THEN
IF(.NOT.ALLOCATED(potden%mmpMat)) THEN IF(.NOT.ALLOCATED(potden%mmpMat)) THEN
ALLOCATE(potDen%mmpMat(-lmaxU_const:lmaxU_const,-lmaxU_const:lmaxU_const,MAX(1,atoms%n_u),input%jspins)) ALLOCATE(potDen%mmpMat(-lmaxU_const:lmaxU_const,-lmaxU_const:lmaxU_const,MAX(1,atoms%n_u+atoms%n_hia),input%jspins))
END IF END IF
END IF END IF
......
...@@ -118,11 +118,10 @@ MODULE m_types_greensf ...@@ -118,11 +118,10 @@ MODULE m_types_greensf
IF(atoms%n_gf.GT.0) THEN !Are there Green's functions to be calculated? IF(atoms%n_gf.GT.0) THEN !Are there Green's functions to be calculated?
IF(input%l_gfsphavg) THEN
spin_dim = MERGE(3,input%jspins,input%l_gfmperp) spin_dim = MERGE(3,input%jspins,input%l_gfmperp)
ALLOCATE (thisGREENSF%gmmpMat(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2)) ALLOCATE (thisGREENSF%gmmpMat(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2))
thisGREENSF%gmmpMat = 0.0 thisGREENSF%gmmpMat = 0.0
ELSE IF(.NOT.input%l_gfsphavg) THEN
ALLOCATE (thisGREENSF%uu(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2)) ALLOCATE (thisGREENSF%uu(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2))
ALLOCATE (thisGREENSF%dd(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2)) ALLOCATE (thisGREENSF%dd(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2))
ALLOCATE (thisGREENSF%du(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2)) ALLOCATE (thisGREENSF%du(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2))
......
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