Commit 31c2a140 by Daniel Wortmann

### Fix for the determination of LOs. Zn was given a "2-d" LO, which created an infinite loop.

`Changed the defaults in atom_input.f and added some timers&stops to prevent this in future.`
parent f90923dd
 ... @@ -83,6 +83,7 @@ CONTAINS ... @@ -83,6 +83,7 @@ CONTAINS ENDDO ENDDO node = nqn - (l+1) node = nqn - (l+1) IF (node<0) CALL judft_error("Error in setup of energy-parameters",hint="This could e.g. happen if you try to use 1p-states") e = 0.0 e = 0.0 ! determine upper edge ! determine upper edge nodeu = -1 ; start = .TRUE. nodeu = -1 ; start = .TRUE. ... @@ -91,9 +92,11 @@ CONTAINS ... @@ -91,9 +92,11 @@ CONTAINS atoms%dx(n),atoms%jri(n),c, us,dus,nodeu,f(:,1),f(:,2)) atoms%dx(n),atoms%jri(n),c, us,dus,nodeu,f(:,1),f(:,2)) IF ( ( nodeu > node ) .AND. start ) THEN IF ( ( nodeu > node ) .AND. start ) THEN e = e - 1.0 e = e - 1.0 IF (e<-1E10) CALL judft_error("Determination of energy parameters did not converge",hint="Perhaps your potential is broken?") nodeu = -1 nodeu = -1 ELSE ELSE e = e + 0.01 e = e + 0.01 IF (e>1E10) CALL judft_error("Determination of energy parameters did not converge",hint="Perhaps your potential is broken?") start = .FALSE. start = .FALSE. ENDIF ENDIF ENDDO ENDDO ... @@ -106,6 +109,7 @@ CONTAINS ... @@ -106,6 +109,7 @@ CONTAINS CALL radsra(e,l,vr(:),atoms%rmsh(1,n),& CALL radsra(e,l,vr(:),atoms%rmsh(1,n),& atoms%dx(n),atoms%jri(n),c, us,dus,nodeu,f(:,1),f(:,2)) atoms%dx(n),atoms%jri(n),c, us,dus,nodeu,f(:,1),f(:,2)) e = e - 0.01 e = e - 0.01 IF (e<-1E10) CALL judft_error("Determination of energy parameters did not converge",hint="Perhaps your potential is broken?") ENDDO ENDDO e_lo = e e_lo = e ELSE ELSE ... @@ -196,6 +200,7 @@ CONTAINS ... @@ -196,6 +200,7 @@ CONTAINS ENDDO ENDDO ! search for branches ! search for branches node = ABS(nqn) - (l+1) node = ABS(nqn) - (l+1) IF (node<0) CALL judft_error("Error in setup of energy-parameters",hint="This could e.g. happen if you try to use 1p-states") e = 0.0 ! The initial value of e is arbitrary. e = 0.0 ! The initial value of e is arbitrary. large_e_step = 5.0 ! 5.0 Htr steps for coarse energy searches large_e_step = 5.0 ! 5.0 Htr steps for coarse energy searches ... ...
 ... @@ -928,14 +928,14 @@ c in s and p states equal occupation of up and down states ... @@ -928,14 +928,14 @@ c in s and p states equal occupation of up and down states !Defaults !Defaults ncst1 =(/0,0, 0, ! Va,H,He ncst1 =(/0,0, 0, ! Va,H,He + 01, 01, 1, 1, 1, 1, 1, 1, ! Li - Ne + 01, 01, 1, 1, 1, 1, 1, 1, ! Li - Ne + 304,304, 4, 4, 4, 4, 4, 4, ! Na - Ar + 304,304, 4, 4, 4, 4, 4, 4, ! Na - Ar + 307,307,307,307,307,307,307,307,207,207, 7,409,409,409,409,409, + 307,307,307,307,307,307,307,307,207,207, 7, 7,409,409,409,409, + 409, 9, ! K - Kr + 409, 9, ! K - Kr + 312,312,312,312,312,312,312,212,212,212,312,414,414,414,414,414, + 312,312,312,312,312,312,312,212,212,212,312,212,414,414,414,414, + 414,414, ! Rb - Xe + 414,414, ! Rb - Xe + 317,317,217,217,217,217,217,217,217,217,217,17, 17,17,17,17,17, ! Cs - Lu + 317,317,217,217,217,217,217,217,217,217,217,17, 17,17,17,17,17, ! Cs - Lu + 1119,1119,319,319,219,219,219,219,619,421,421,421,421,421,421, ! Hf - Rn + 1119,1119,319,319,219,219,219,219,219,421,421,421,421,421,421, ! Hf - Rn + 324,324,224,224,224,24,24,24,24,24,24,24, 24,24,24,24,24/) ! Fr - Lw + 324,324,224,224,224,24,24,24,24,24,24,24, 24,24,24,24,24/) ! Fr - Lw if (judft_was_argument("-fast_defaults")) if (judft_was_argument("-fast_defaults")) ... ...
 ... @@ -243,7 +243,9 @@ CONTAINS ... @@ -243,7 +243,9 @@ CONTAINS CALL timestart("generation of hamiltonian and diagonalization (total)") CALL timestart("generation of hamiltonian and diagonalization (total)") CALL timestart("eigen") CALL timestart("eigen") vTemp = vTot vTemp = vTot CALL timestart("Updating energy parameters") CALL enpara%update(mpi,atoms,vacuum,input,vToT) CALL enpara%update(mpi,atoms,vacuum,input,vToT) CALL timestop("Updating energy parameters") CALL eigen(mpi,stars,sphhar,atoms,obsolete,xcpot,sym,kpts,DIMENSION,vacuum,input,& CALL eigen(mpi,stars,sphhar,atoms,obsolete,xcpot,sym,kpts,DIMENSION,vacuum,input,& cell,enpara,banddos,noco,oneD,hybrid,iter,eig_id,results,inDen,vTemp,vx) cell,enpara,banddos,noco,oneD,hybrid,iter,eig_id,results,inDen,vTemp,vx) vTot%mmpMat = vTemp%mmpMat vTot%mmpMat = vTemp%mmpMat ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!