Skip to Content.
Sympa Menu

forum - Possible minor bug in 4.4.4 : type 5 psps w/o core-correction

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Possible minor bug in 4.4.4 : type 5 psps w/o core-correction


Chronological Thread 
  • From: "Eric J. Walter" <ewalter@particle.physics.wm.edu>
  • To: forum@abinit.org
  • Subject: Possible minor bug in 4.4.4 : type 5 psps w/o core-correction
  • Date: Mon, 20 Jun 2005 18:20:07 -0400

Dear Abinit forum,

I think that I have encountered a minor bug in the 4.4.4 release.
Specifically, in Src_2psp/psp5in.F90:

------------------------------------------------------------
!Generate core charge function and derivatives, if needed
if(n1xccc>0)then
! Use the revised expression of 5 Nov 1992, also used for format=1.
call psp1cc(fchrg,n1xccc,xccc1d)
xcccrc=3*rchrg
end if
------------------------------------------------------------

It appears as though xcccrc is never initialized if one uses type 5
pseudopotentials WITHOUT a core correction (n1xccc=0). I think this is
due to a possible error in pspini.F90:

------------------------------------------------------------
do ipsp=1,npsp

ekb(:)=zero;ffspl(:,:,:)=zero;vlspl(:,:)=zero
xccc1d(:,:)=zero;xcccrc=zero
indlmn(:,:)=0

if(gencond0==0 .and. new_pspso(ipsp)==0) cycle

write(message, '(a,i4,a,t38,a)' ) &
& '- pspini: atom type',ipsp,' psp file is',trim(psps%filpsp(ipsp))
call wrtout(ab_out,message,'COLL')

! Read atomic psp V(r) and wf(r) to get local and nonlocal psp:
if(psps%usepaw==0)then ! cannot use the same call in case of bound
checking, because of pawrad/pawtab
call pspatm(psps%dimekb,dq,ekb,epsatm(ipsp),&
& ffspl,psps%filpsp(ipsp),indlmn,ixc,&
&
psps%lmnmax,psps%lnmax,psps%mpsang,psps%mpssoang,psps%mqgrid,psps%n1xccc,psps%optnlxccc,&
& pawrad,pawtab,psps%pspso(ipsp),&
& psps%qgrid,psps%usepaw,psps%useylm,vlspl,&
& psps%xcccrc(ipsp),xccc1d,psps%znuclpsp(ipsp))
else
call pspatm(psps%dimekb,dq,ekb,epsa
.
.
.

------------------------------------------------------------

In the third line above, xcccrc is initialized to zero, but
psps%xcccrc is passed to pspatm.

Later, when doing a strain response calculation, this leads to a core
dump (on our alpha EV667s) due to code in Src_6response/eltfrxc3.F90:

------------------------------------------------------------
! Loop over atoms in unit cell
do iatom=1,natom
js=7+3*(iatom-1)
! Set search range (density cuts off perfectly beyond range)
! Cycle if no range.
range=0.0d0
range=xcccrc(typat(iatom))
if(range<1.d-16) cycle
------------------------------------------------------------

Anyway, simply initializing explicitly in psp5in.F90 fixes this
problem. But, most likely the initialization should occur in
pspini.F90

I have tried to following the link to:
http://www.abinit.org/ABINIT/bug_report.html to review the netiquette
for possible bug reports, but it seems that this link is broken.

I Hope this email is helpful to the developers.

Sincerely,

Eric J. Walter
Department of Physics
College of William and Mary





  • Possible minor bug in 4.4.4 : type 5 psps w/o core-correction, Eric J. Walter, 06/21/2005

Archive powered by MHonArc 2.6.16.

Top of Page