mod_wmatldau Module

Uses the Coulomb matrix U (array ULDAU), the density matrix (array DENMAT) and the occupation numbers dentot (total) and (array DENTOTS) (per spin).

It also contains a routine to write the entries for different potential entries

Note

Modifications by N. Long Xmas Juelich 2015


Uses

    • mod_datatypes

Subroutines

public subroutine wmatldau(ntldau, itldau, nspin, denmatc, lopt, ueff, jeff, uldau, wldau, eu, edc, mmaxd, npotd, natyp, nspind, lmax)

Author
Ph. Mavropoulos, H. Ebert
License
Creative Commons License
Category
total-energy, potential, lda+u, KKRhost

C a l c u l a t i o n

o f

C o u l o m b

i n t e r a c t i o n

p o t e n t i a l

i n

L D A + U

n o n - r e l a t i v i s t i c

c a s e

o t h e r w i s e

m a t r i c e s

D E N M A T

a n d

V L D A U

m u s t

h a v e

d o u b l e

d i m e n s i o n

Read more…

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, npotd) :: denmatc
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(inout), 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) :: npotd

(2(KREL+KORBIT)+(1-(KREL+KORBIT))NSPIND)*NATYP)

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

public subroutine rwrite(z, mmaxd, mmax, ifile)

License
Creative Commons License
Category
input-output, potential, lda+u, KKRhost

A u x i l i a r y

s u b r o u t i n e

t o

w r i t e

t h e

e n t r i e s

o f

t h e

d i f f e r e n t

p o t e n t i a l s

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension (mmaxd, mmaxd) :: z
integer, intent(in) :: mmaxd
integer, intent(in) :: mmax
integer, intent(in) :: ifile