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
usdus%ddn(l,nType,ispin))
IF(.NOT.input%l_gfsphavg) THEN
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 *&
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 *&
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 *&
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
!
! add local orbital contribution (not implemented for radial dependence yet and not tested for average)
......
......@@ -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%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))
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
!
......
......@@ -101,22 +101,4 @@ SUBROUTINE calc_onsite(atoms,input,sym,noco,greensfCoeffs,g)
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
\ No newline at end of file
......@@ -188,7 +188,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
IF (atoms%n_hia.GT.0) THEN
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")
END IF
!greens function
......@@ -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)
!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)
ELSE
kpts%nkptf=0
......
......@@ -82,12 +82,13 @@ MODULE m_cdnpot_io_common
IF(atoms%lmaxd.NE.refAtoms%lmaxd) 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_hia.NE.refAtoms%n_hia) l_same = .FALSE.
IF(vacuum%dvac.NE.refVacuum%dvac) l_same = .FALSE.
IF(sym%nop.NE.refSym%nop) l_same = .FALSE.
IF(sym%nop2.NE.refSym%nop2) l_same = .FALSE.
IF(atoms%n_u.EQ.refAtoms%n_u) THEN
DO i = 1, atoms%n_u
IF(atoms%n_u.EQ.refAtoms%n_u.AND.atoms%n_hia.EQ.refAtoms%n_hia) THEN
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)%l.NE.refAtoms%lda_u(i)%l) l_same = .FALSE.
END DO
......
......@@ -39,7 +39,7 @@ CONTAINS
INTEGER n
REAL rdum
! .. Local Arrays ..
INTEGER i(42),ierr(3)
INTEGER i(44),ierr(3)
REAL r(34)
LOGICAL l(46)
! ..
......@@ -58,7 +58,7 @@ CONTAINS
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(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(6)=sliceplot%e1s ; r(7)=sliceplot%e2s ; r(8)=noco%theta; r(9)=noco%phi; r(10)=vacuum%tworkf
......@@ -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)
input%coretail_lmax=i(2) ; input%kcrel=i(39)
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)
input%minDistance=r(29) ; obsolete%chng=r(30)
......
......@@ -44,7 +44,7 @@ CONTAINS
CALL MPI_BCAST(l_pw_wAlloc,1,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
IF((mpi%irank.NE.0).AND.l_denMatAlloc) 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
......
......@@ -118,11 +118,10 @@ MODULE m_types_greensf
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)
ALLOCATE (thisGREENSF%gmmpMat(thisGREENSF%nz,MAX(1,atoms%n_gf),-lmax:lmax,-lmax:lmax,spin_dim,2))
thisGREENSF%gmmpMat = 0.0
ELSE
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))
thisGREENSF%gmmpMat = 0.0
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%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))
......
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