Skip to content
Snippets Groups Projects
Commit 6969c58d authored by Philipp Rüssmann's avatar Philipp Rüssmann
Browse files

Make LDA+U run in KKRimp

parent 79807bc6
No related branches found
No related tags found
No related merge requests found
......@@ -177,6 +177,7 @@ if (ldau%lopt.ge.0.and.ie.ge.ldau%ieldaustart.and.ie.le.ldau%ieldauend) then
lmlo = ldau%lopt**2 + 1 ! lda+u
lmhi = (ldau%lopt + 1)**2 ! lda+u
mmax = lmhi - lmlo + 1
if (use_fullgmat.eq.1) then ! 2x2 in spin space ! lda+u
......
......@@ -40,6 +40,7 @@ C
USE MOD_PHICALC
use mod_version_info
use global_variables, only: ipand
use mod_mympi, only: myrank, master
IMPLICIT NONE
TYPE(LDAU_TYPE),ALLOCATABLE :: LDAU(:) ! lda+u variables, intended dimension: (natyp) ! lda+u
......@@ -153,11 +154,13 @@ C
DO I1 = 1,100
FACT(I1) = FACT(I1-1)*DBLE(I1) ! factorial
END DO
WRITE (6,*)
WRITE (6,'(79(1H=))')
WRITE (6,'(A)') ' LDA+U INITIALISE Coulomb matrix U'
WRITE (6,*)
WRITE (6,'(79(1H=))')
if (myrank==master) then
WRITE (6,*)
WRITE (6,'(79(1H=))')
WRITE (6,'(A)') ' LDA+U INITIALISE Coulomb matrix U'
WRITE (6,*)
WRITE (6,'(79(1H=))')
end if
C
C AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
C Loop over atoms...which need LDA+U ( LOPT >= 0 )
......@@ -307,6 +310,8 @@ C
C
C UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
C
if (myrank==master) then
WRITE (6,*)
WRITE (6,'(A,i3)') ' ATOM ',I1
WRITE (6,*)
......@@ -332,6 +337,8 @@ C
& IM3=1,2*LL+1)
END DO
WRITE (6,'(79(1H=))')
end if
C
......
......@@ -466,12 +466,14 @@ end if
ALLOCATE( LDAU(NATOM) ) !lda+u
LDAU(:)%LOPT = -1 !lda+u
IF ( CONFIG_RUNFLAG('LDA+U') ) THEN !lda+u
WRITE(*,*) 'LDA+U calculation' !lda+u
if (myrank==master) WRITE(*,*) 'LDA+U calculation' !lda+u
CALL INITLDAU(LMAXD,NATOM,NSPIN,VPOT,ZATOM,1,CELL,LDAU) !lda+u
DO IATOM = 1,NATOM !lda+u
IF (LDAU(IATOM)%LOPT.GE.0) WRITE(*,FMT='(A12,I4,a3,I3,3(A6,F6.3))') & !lda+u
'LDA+U: Atom',IATOM,' l=',LDAU(IATOM)%LOPT,' UEFF=',LDAU(IATOM)%UEFF, & !lda+u
' JEFF=',LDAU(IATOM)%JEFF,' EREF=',LDAU(IATOM)%EREFLDAU !lda+u
IF (LDAU(IATOM)%LOPT.GE.0 .and. myrank==master) then
WRITE(*,FMT='(A12,I4,a3,I3,3(A6,F6.3))') & !lda+u
'LDA+U: Atom',IATOM,' l=',LDAU(IATOM)%LOPT,' UEFF=',LDAU(IATOM)%UEFF, & !lda+u
' JEFF=',LDAU(IATOM)%JEFF,' EREF=',LDAU(IATOM)%EREFLDAU !lda+u
end if
IF (LDAU(IATOM)%LOPT.GT.LMAXATOM(IATOM)) THEN !lda+u
WRITE(*,*) 'Atom:',IATOM,' LDA+U orbital=',LDAU(IATOM)%LOPT, & !lda+u
' but lmax=',LMAXATOM(IATOM) !lda+u
......
......@@ -40,7 +40,6 @@ contains
nspind = 2
open (67,file='ldaupot',form='formatted')
call version_print_header(67)
rewind (67)
if (lwrite) then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment