RHOLM Subroutine

public subroutine RHOLM(DEN, DF, GMAT, NSRA, RHO2NS, DRDI, IPAN, IRCUT, PZ, FZ, QZ, SZ, CLEB, ICLEB, IEND, JEND, EKL, IRMD, NCLEB, LMAXD, LMMAXD, LMPOTD)

Uses

    • MOD_CSIMPK

calculate in the paramagnetic case (nspin=1) : the valence charge density times r2 from the greensfunction calculate in the spin-polarized case (nspin=2) : the valence charge density times r2 and the valence spin density times r**2 from the greensfunction , ( convention spin density := density(spin up)-density(spin down) ) calculate the valence density of states , in the spin-polarized case spin dependent ; splitted into its l-contributions .

in this subroutine an implicit energy-spin integration is done : this subroutine is called for each energy and spin value and n(r,e) times df (the energy weight) is calculated .

recognize that the density of states is always complex also in the case of "real-energy-integation" (ief>0) since in that case the energy integration is done parallel to the real energy axis but not on the real energy axis . in the paramagnetic case only rho2ns(irmd,lmxtsq,natypd,1) is used containing the charge density times r2 . in the spin-polarized case rho2ns(...,1) contains the charge density times r2 and rho2ns(...,2) the spin density times r**2 .

the charge density is expanded in spherical harmonics :

      rho(r) =   { rho(lm,r) * y(r,lm) }       (summed over lm)

   rho(lm,r) =   { do rho(r) * y(r,lm)         (integrated over
                                                  unit sphere)

in the case of spin-polarization : the spin density is developed in spherical harmonics :

     sden(r) =   { sden(lm,r) * y(r,lm) }      (summed over lm)

  sden(lm,r) =   { do sden(r) * y(r,lm)        (integrated over
                                                  unit sphere)

n(r,e) is developed in

 n(r,e) = { y(r,l'm') * n(l'm',lm,r,e) * y(r,lm) }

therefore a faltung of n(l'm',lm,r,e) with the gaunt coeffients has to be used to calculate the lm-contribution of the charge density . (see notes by b.drittler)

attention : the gaunt coeffients are stored in an index array (see subroutine gaunt) the structure part of the greens-function (gmat) is symmetric in its lm-indices , therefore only one half of the matrix is calculated in the subroutine for the back-symmetrisation . the gaunt coeffients are symmetric too (since the are calculated for real spherical harmonics) . that is why the lm2- loop only goes up to lm1 and the summands are multiplied by a factor of 2 in the case of lm1 not equal to lm2 .

                        b.drittler   may 1987
                          changed  dec 1988

For KREL = 1 (relativistic mode) NPOTD = 2 * NATYPD
LMMAXD = 2 * (LMAXD+1)^2
NSPIND = 1

Arguments

Type IntentOptional Attributes Name
double complex :: DEN(0:LMAXD+1)
double complex :: DF
double complex :: GMAT(LMMAXD,LMMAXD)
integer :: NSRA
double precision :: RHO2NS(IRMD,LMPOTD)
double precision :: DRDI(IRMD)
integer :: IPAN
integer :: IRCUT(0:IPAN)
double complex :: PZ(IRMD,0:LMAXD)
double complex :: FZ(IRMD,0:LMAXD)
double complex :: QZ(IRMD,0:LMAXD)
double complex :: SZ(IRMD,0:LMAXD)
double precision :: CLEB(*)
integer :: ICLEB(NCLEB,4)
integer :: IEND
integer :: JEND(LMPOTD,0:LMAXD,0:LMAXD)
double complex :: EKL(0:LMAXD)
integer :: IRMD
integer :: NCLEB
integer :: LMAXD
integer :: LMMAXD
integer :: LMPOTD