wmatldausoc Subroutine

public subroutine wmatldausoc(ntldau, itldau, nspin, denmatn, lopt, ueff, jeff, uldau, wldau, eu, edc, mmaxd, natyp, nspind, lmax)

Uses

Calculation of Coulomb interaction potential in LDA+U relativistic + SOC (new solver) The expression evaluated (array VLDAU) is:

Note

For details see H. Ebert at al., Sol. Stat. Comm. 127 (2003) 443

Note

EU,EDC initialised outside the routine

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ntldau

number of atoms on which LDA+U is applied

integer, intent(in), dimension (natyp) :: itldau

integer pointer connecting the NTLDAU atoms to their corresponding index in the unit cell

integer, intent(in) :: nspin

Counter for spin directions

complex(kind=dp), intent(inout), dimension (mmaxd, mmaxd, 2, 2, natyp) :: denmatn
integer, intent(in), dimension (natyp) :: lopt

angular momentum QNUM for the atoms on which LDA+U should be applied (-1 to switch it OFF)

real(kind=dp), intent(in), dimension (natyp) :: ueff

input U parameter for each atom

real(kind=dp), intent(in), dimension (natyp) :: jeff

input J parameter for each atom

real(kind=dp), intent(in), dimension (mmaxd, mmaxd, mmaxd, mmaxd, natyp) :: uldau

calculated Coulomb matrix elements (EREFLDAU)

real(kind=dp), intent(inout), dimension (mmaxd, mmaxd, nspind, natyp) :: wldau

potential matrix

real(kind=dp), intent(inout), dimension (natyp) :: eu

Total energy corrections

real(kind=dp), intent(inout), dimension (natyp) :: edc

Double-counting correction

integer, intent(in) :: mmaxd

2*LMAX+1

integer, intent(in) :: natyp

Number of kinds of atoms in unit cell

integer, intent(in) :: nspind

KREL+(1-KREL)*(NSPIN+1)

integer, intent(in) :: lmax

Maximum l component in wave function expansion