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
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 |