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
Type | Intent | Optional | 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 |