Skip to Content.
Sympa Menu

forum - ASR when occopt>2 in anaddb?

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

ASR when occopt>2 in anaddb?


Chronological Thread 
  • From: "Eric J. Walter" <ewalter@particle.physics.wm.edu>
  • To: forum@abinit.org
  • Subject: ASR when occopt>2 in anaddb?
  • Date: Thu, 23 Jun 2005 10:35:09 -0400



Dear Abinit forum,

It seems to me that it is not possible to enforce the acoustic sum
rule in anaddb when doing a metal and skipping the DDK step (since it
shouldn't be necessary, right?). After some investigation, I have
found that in anaddb.F90 the electric field perturbation variable is
always set to 2 before the read of the gamma q-point DDB info:

------------------------------------------------------------
! **********************************************************************

!Dielectric Tensor and Effective Charges

!Look after the Gamma Blok in the DDB
qphon(:,1)=0.0d0
qphnrm(1)=0.0d0
rfphon(1:2)=1
rfelfd(1:2)=2

rfstrs(1:2)=0
rftyp=anaddb_dtset%rfmeth

call gtblk9(blkflg,blknrm,blkqpt,blktyp,iblok,mpert,msize,natom,nblok,&
& qphon,qphnrm,qtol,rfphon,rfelfd,rfstrs,rftyp)

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

As far as I can see, there is no way to tell anaddb not to expect a
d/dk part of the DDB when dealing with gamma. This ends up causing
many of the following COMMENTS in STDOUT:

------------------------------------------------------------
gtblk9 : COMMENT -
The blok 1 does not match the requirement
because it lacks the element with
idir1,ipert1,idir2,ipert2,index= 1 1 1 3 127
gtblk9 : COMMENT -
The blok 1 does not match the requirement
because it lacks the element with
idir1,ipert1,idir2,ipert2,index= 1 1 2 3 148
gtblk9 : COMMENT -
The blok 1 does not match the requirement
because it lacks the element with
idir1,ipert1,idir2,ipert2,index= 1 1 3 3 169
------------------------------------------------------------

Here, ipert2 means the electric field perturbation since this is a 1
atom unit cell (natom+2 = electric field pert).

Finally, this leads to the ASR never being applied and anaddb claiming
that it exited successfully (!).

To temporarily remedy this situation, I have added some code to
anaddb.F90 (here is a diff):

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

--- anaddb.F90_orig Sat Mar 19 13:01:36 2005
+++ anaddb.F90_ejw Tue Jun 14 10:11:11 2005
@@ -218,9 +218,22 @@
qphnrm(1)=0.0d0
rfphon(1:2)=1
rfelfd(1:2)=2
+
rfstrs(1:2)=0
rftyp=anaddb_dtset%rfmeth

+ if (occopt>=3.and.occopt<=7) then
+ rfelfd(1:2)=0
+ write(message, '(a)') "COMMENT: rfelfd set to 0 since due to metal
occupations"
+ call wrtout(6,message,'COLL')
+ call wrtout(iout,message,'COLL')
+
+ write(message, '(a)') "COMMENT: this change made by EJW, NOT PART OF THE
STANDARD ABINIT RELEASE!!!"
+ call wrtout(6,message,'COLL')
+ call wrtout(iout,message,'COLL')
+
+ endif
+

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

This results in rfelfd set to 0 if metallic occupations are present.
This allows the d/dk part of the DDB to be absent and yet still apply
the ASR to metallic calculations.

I have tested this approach by comparing the results of phonon
frequencies calculated at q=0,0,0 and q=0.05, 0.05, 0 with the ASR
applied in two different ways:

1) With an unmodified 4.4.4 release, I actually included the d/dk step
as if the calculation were an insulator:

Phonon wavevector (reduced coordinates) : 0.00000 0.00000 0.00000
Phonon energies in Hartree :
0.000000E+00 0.000000E+00 0.000000E+00
Phonon energies in meV :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon frequencies in cm-1 :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon frequencies in Thz :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon energies in Kelvin :
- 0.000000E+00 0.000000E+00 0.000000E+00
.
.
.
Phonon wavevector (reduced coordinates) : 0.05000 0.05000 0.00000
Phonon energies in Hartree :
5.816119E-04 7.040367E-04 3.426734E-03
Phonon energies in meV :
- 1.582647E+01 1.915781E+01 9.324618E+01
Phonon frequencies in cm-1 :
- 1.276491E+02 1.545182E+02 7.520812E+02
Phonon frequencies in Thz :
- 3.826822E+00 4.632339E+00 2.254683E+01
Phonon energies in Kelvin :
- 1.836583E+02 2.223169E+02 1.082076E+03


2) With the d/dk step skipped using my modified anaddb code:

Phonon wavevector (reduced coordinates) : 0.00000 0.00000 0.00000
Phonon energies in Hartree :
0.000000E+00 0.000000E+00 0.000000E+00
Phonon energies in meV :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon frequencies in cm-1 :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon frequencies in Thz :
- 0.000000E+00 0.000000E+00 0.000000E+00
Phonon energies in Kelvin :
- 0.000000E+00 0.000000E+00 0.000000E+00

Phonon wavevector (reduced coordinates) : 0.05000 0.05000 0.00000
Phonon energies in Hartree :
5.816119E-04 7.040367E-04 3.426734E-03
Phonon energies in meV :
- 1.582647E+01 1.915781E+01 9.324618E+01
Phonon frequencies in cm-1 :
- 1.276491E+02 1.545182E+02 7.520812E+02
Phonon frequencies in Thz :
- 3.826822E+00 4.632339E+00 2.254683E+01
Phonon energies in Kelvin :
- 1.836583E+02 2.223169E+02 1.082076E+03



I have posted the input and output files on http://www.cpd.wm.edu/ejw_abinit

Is this a bug or am I missing something? Shouldn't it be ok to skip
the d/dk step in a metal?

I would be happy to supply more information if necessary.

Thanks,

Eric J. Walter




Archive powered by MHonArc 2.6.16.

Top of Page