mod_rhoval Module

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


Subroutines

public subroutine rhoval(ihost, ldorhoef, icst, ins, ielast, nsra, ispin, nspin, nspinpot, i1, ez, wez, drdi, r, vins, visp, zat, ipan, ircut, irmin, thetas, ifunm, lmsp, rho2ns, r2nef, rhoorb, den, denlm, muorb, espv, cleb, loflm, icleb, iend, jend, solver, soctl, ctl, vtrel, btrel, rmrel, drdirel, r2drdirel, zrel, jwsrel, irshift, itermvdir, mvevil, mvevilef, nmvecmax, idoldau, lopt, phildau, wldau, denmatc, natyp, nqdos, lmax)

License
Creative Commons License
Category
physical-observables, KKRhost

C a l c u l a t i o n

o f

t h e

d e n s i t y

Read more…

Arguments

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