The spherical part of the d or f wavefunction is found by adding
the average interaction potential WLDAUAV
to the spherical
potential. Then the non-spherical parts are found by using only
the deviation of WLDAU
from the average. This speeds up the
convergence of the Born series. See also subroutines
regsol
, pnstmat
and pnsqns
.
Note
Average WLDAU for spherical wavefunctions -LDA+U implementation Mar. 2002-Dec.2004 Ph. Mavropoulos, H. Ebert, V. Popescu
C a l c u l a t i o n
o f
t h e
d e n s i t y
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ihost | |||
logical, | intent(in) | :: | ldorhoef | |||
integer, | intent(in) | :: | icst |
Number of Born approximation |
||
integer, | intent(in) | :: | ins | |||
integer, | intent(in) | :: | ielast | |||
integer, | intent(in) | :: | nsra | |||
integer, | intent(in) | :: | ispin | |||
integer, | intent(in) | :: | nspin |
Counter for spin directions |
||
integer, | intent(in) | :: | nspinpot | |||
integer, | intent(in) | :: | i1 | |||
complex(kind=dp), | intent(in), | dimension (iemxd) | :: | ez | ||
complex(kind=dp), | intent(in), | dimension (iemxd) | :: | wez | ||
real(kind=dp), | intent(in), | dimension (irmd) | :: | drdi |
Derivative dr/di |
|
real(kind=dp), | intent(in), | dimension (irmd) | :: | r | ||
real(kind=dp), | intent(in), | dimension (irmind:irmd, lmpotd) | :: | vins |
Non-spherical part of the potential |
|
real(kind=dp), | intent(in), | dimension (irmd) | :: | visp |
Spherical part of the potential |
|
real(kind=dp), | intent(in) | :: | zat |
Nuclear charge |
||
integer, | intent(in) | :: | ipan |
Number of panels in non-MT-region |
||
integer, | intent(in), | dimension (0:ipand) | :: | ircut |
R points of panel borders |
|
integer, | intent(in) | :: | irmin |
Max R for spherical treatment |
||
real(kind=dp), | intent(in), | dimension (irid, nfund) | :: | thetas |
shape function THETA=0 outer space THETA =1 inside WS cell in spherical harmonics expansion |
|
integer, | intent(in), | dimension (lmxspd) | :: | ifunm | ||
integer, | intent(in), | dimension (lmxspd) | :: | lmsp | ||
real(kind=dp), | intent(out), | dimension (irmd, lmpotd, 1+krel) | :: | rho2ns |
radial density |
|
real(kind=dp), | intent(out), | dimension (irmd, lmpotd, 1+krel) | :: | r2nef |
rho at FERMI energy |
|
real(kind=dp), | intent(out), | dimension (irmd*krel+(1-krel)) | :: | rhoorb | ||
complex(kind=dp), | intent(in), | dimension (0:lmax+1, ielast*(1+krel), nqdos) | :: | den | ||
complex(kind=dp), | intent(in), | dimension (lmmaxd, ielast*(1+krel), nqdos) | :: | denlm | ||
real(kind=dp), | intent(out), | dimension (0:lmax+2, 3) | :: | muorb |
orbital magnetic moment |
|
real(kind=dp), | intent(out), | dimension (0:lmax+1, 2) | :: | espv |
changed for REL case |
|
real(kind=dp), | intent(in), | dimension (ncleb, 2) | :: | cleb |
GAUNT coefficients (GAUNT) |
|
integer, | intent(in), | dimension (lm2d) | :: | loflm |
l of lm=(l,m) (GAUNT) |
|
integer, | intent(in), | dimension (ncleb, 4) | :: | icleb |
Pointer array |
|
integer, | intent(in) | :: | iend |
Number of nonzero gaunt coefficients |
||
integer, | intent(in), | dimension (lmpotd, 0:lmax, 0:lmax) | :: | jend |
Pointer array for icleb() |
|
character(len=10), | intent(in) | :: | solver | |||
real(kind=dp), | intent(in), | dimension (krel*lmax+1) | :: | soctl | ||
real(kind=dp), | intent(in), | dimension (krel*lmax+1) | :: | ctl | ||
real(kind=dp), | intent(in), | dimension (irmd*krel+(1-krel)) | :: | vtrel |
potential (spherical part) |
|
real(kind=dp), | intent(in), | dimension (irmd*krel+(1-krel)) | :: | btrel |
magnetic field |
|
real(kind=dp), | intent(in), | dimension (irmd*krel+(1-krel)) | :: | rmrel |
radial mesh |
|
real(kind=dp), | intent(in), | dimension (irmd*krel+(1-krel)) | :: | drdirel |
derivative of radial mesh |
|
real(kind=dp), | intent(in), | dimension (irmd*krel+(1-krel)) | :: | r2drdirel |
() |
|
integer, | intent(in) | :: | zrel |
atomic number (cast integer) |
||
integer, | intent(in) | :: | jwsrel |
index of the WS radius |
||
integer, | intent(in) | :: | irshift |
shift of the REL radial mesh with respect no NREL |
||
logical, | intent(in) | :: | itermvdir | |||
complex(kind=dp), | intent(out), | dimension (0:lmax, 3, nmvecmax) | :: | mvevil | ||
complex(kind=dp), | intent(out), | dimension (0:lmax, 3, nmvecmax) | :: | mvevilef | ||
integer, | intent(in) | :: | nmvecmax | |||
integer, | intent(in) | :: | idoldau |
flag to perform LDA+U |
||
integer, | intent(in) | :: | lopt |
angular momentum QNUM for the atoms on which LDA+U should be applied (-1 to switch it OFF) |
||
complex(kind=dp), | intent(in), | dimension (irmd) | :: | phildau | ||
real(kind=dp), | intent(inout), | dimension (mmaxd, mmaxd, nspind) | :: | wldau |
potential matrix |
|
complex(kind=dp), | intent(out), | dimension (mmaxd, mmaxd) | :: | denmatc | ||
integer, | intent(in) | :: | natyp |
Number of kinds of atoms in unit cell |
||
integer, | intent(inout) | :: | nqdos | |||
integer, | intent(in) | :: | lmax |
Maximum l component in wave function expansion |