[Pw_forum] Problem with phonons circumvented

Katalin Gaal-Nagy katalin.gaal-nagy at physik.uni-regensburg.de
Sun Jul 30 18:13:47 CEST 2006


Dear Stefano,

I used the "old" procedure calculating the phonons, meaning, I generated the q 
points with the pw.x and calculated the dynamical matrices separately for each 
q point. Therefor, I also used an "old" version of the q2r.x (pw.2.0.2). 
Maybe the problem will not appear any more with the new procedure of the 
espresso.

Here the infos:
The q points are (here in units 2pi/a, 2pi/b, 2pi/c, which have been 
multiplicated by the c/a, b/a within a script, system bco, 2-atomic cell)
Si.LDA.PWSCF/Daten> more qpoints448.in
   0.0000000   0.0000000   0.0000000    0.0156250
   0.0000000  -0.2500000   0.2500000    0.0625000
   0.0000000   0.5000000  -0.5000000    0.0312500
  -0.2500000   0.2500000   0.0000000    0.0625000
  -0.2500000   0.0000000   0.2500000    0.0625000
  -0.2500000   0.7500000  -0.5000000    0.1250000
  -0.2500000   0.5000000  -0.2500000    0.1250000
   0.5000000  -0.5000000   0.0000000    0.0312500
   0.5000000  -0.7500000   0.2500000    0.1250000
   0.5000000   0.0000000  -0.5000000    0.0312500
   0.0000000   0.0000000   0.5000000    0.0312500
   0.0000000   0.7500000  -0.2500000    0.0625000
   0.0000000   0.5000000   0.0000000    0.0312500
   0.7500000   0.0000000  -0.2500000    0.0625000
   0.7500000  -0.2500000   0.0000000    0.0625000
   0.5000000  -0.5000000   0.5000000    0.0312500
   0.5000000   0.0000000   0.0000000    0.0312500
   0.0000000   0.0000000  -1.0000000    0.0156250
   0.0000000  -0.1250000   0.1250000    0.0312500 <- 19th point
   0.0000000  -0.3750000   0.3750000    0.0312500
  -0.2500000   0.1250000   0.1250000    0.0625000
  -0.2500000  -0.1250000   0.3750000    0.0625000
  -0.2500000   0.6250000  -0.3750000    0.0625000
  -0.2500000   0.3750000  -0.1250000    0.0625000
   0.5000000  -0.6250000   0.1250000    0.0625000
   0.5000000  -0.8750000   0.3750000    0.0625000
   0.0000000   0.1250000   0.3750000    0.0312500
   0.0000000  -0.1250000   0.6250000    0.0312500
   0.0000000   0.6250000  -0.1250000    0.0312500
   0.0000000   0.3750000   0.1250000    0.0312500
   0.7500000  -0.6250000   0.3750000    0.0625000
   0.7500000  -0.8750000   0.6250000    0.0625000
   0.7500000  -0.1250000  -0.1250000    0.0625000
   0.7500000  -0.3750000   0.1250000    0.0625000
   0.5000000  -0.3750000   0.3750000    0.0625000
   0.5000000   0.1250000  -0.1250000    0.0625000
   0.0000000  -0.6250000  -0.3750000    0.0312500
   0.0000000  -0.8750000  -0.1250000    0.0312500

They correspond to a 4x4x8 mesh. The first 18 points aare the 4x4x4 mesh (I 
just sorted the points). The 4x4x4 mesh was ok. The problems starts with the 
19th point (and all following).
I got dynamical matrices for the following equivalent points (in correct units) 
in the dynmat-file for that point:
      q = (    0.000000000  -0.128905850   0.230755030 )
      q = (    0.000000000   0.128905850  -0.230755030 )
      q = (    0.000000000   0.128905850   0.230755030 )
      q = (    0.000000000  -0.128905850  -0.230755030 )
where the "allowed" points have been
      q = (    0.000000000  -0.128905850   0.230755030 )
      q = (    0.000000000   0.128905850  -0.230755030 )

Similar things have been found also for the other points which are 4x4x8 
but not 4x4x4.

For the calculation of point 19-38 I used espresso-3.0 at CINECA.
The input-files, e.g., for that 19th point are

************** pw.x - SCF ********************************
Silicon
Silicon k20 bco
  &control
     calculation   = 'scf',
     title         = ' ' ,
     verbosity     = 'default',
     restart_mode  = 'from_scratch',
     tstress       = .t. ,
     tprnfor       = .t. ,
     outdir        = './TEMP/',
     prefix        = 'si_bco',
     max_seconds   = 518400,
     etot_conv_thr = 1.d-7,
     forc_conv_thr = 1.d-6,
     disk_io       = 'default',
     pseudo_dir    = './pseudo/'
  /
  &system
     ibrav=11,
celldm(1)= 8.881450 ,  celldm(2)= 0.969700 ,  celldm(3)= 0.541700 ,
     nat=2, ntyp=1,
     ecutwfc = 40.0 ,
     nr1=30, nr2=30, nr3=30 ,
     nosym   = .false. ,
     occupations='smearing', degauss= 0.03 ,
     smearing='methfessel-paxton'
  /
  &electrons
     electron_maxstep = 50 ,
     conv_thr         = 1.0d-8 ,
     mixing_mode      = 'plain' ,
     mixing_beta      = 0.7 ,
     mixing_ndim      = 8 ,
     diagonalization  = 'david'
  /
ATOMIC_SPECIES
  Si  28.086  Si.vbc.UPF
ATOMIC_POSITIONS {alat}
Si  0.00  0.484850 0.172125  0 0 1
Si  0.00  0.000000  0.000000  0 0 0
  K_POINTS {automatic}
20 20 20 1 1 1

************** pw.x - NSCF ********************************
Silicon
Silicon k20 bco
  &control
     calculation   = 'phonon',
     restart_mode  = 'from_scratch',
     outdir        = './TEMP/',
     prefix        = 'si_bco',
     max_seconds   = 518400,
     disk_io       = 'default',
     pseudo_dir    = './pseudo/'
  /
  &system
     ibrav=11,
celldm(1)= 8.881450 ,  celldm(2)= 0.969700 ,  celldm(3)= 0.541700 ,
     nat=2, ntyp=1,
     ecutwfc = 40.0 ,
     nr1=30, nr2=30, nr3=30 ,
     occupations='smearing', degauss= 0.03 ,
     smearing='methfessel-paxton'
  /
  &electrons
     electron_maxstep = 100 ,
     conv_thr         = 1.0d-8 ,
     mixing_mode      = 'plain' ,
     mixing_beta      = 0.7 ,
     mixing_ndim      = 8 ,
     diagonalization  = 'cg'
  /
  &phonon
xqq(1) =  0.00000000 , xqq(2) = -0.12890585 , xqq(3) =  0.23075503
  /
ATOMIC_SPECIES
  Si  28.086  Si.vbc.UPF
ATOMIC_POSITIONS {alat}
Si  0.00  0.484850 0.172125  0 0 0
Si  0.00  0.000000  0.000000  0 0 0
  K_POINTS {automatic}
20 20 20 1 1 1

************** ph.x  ********************************
phonons of Si-bco at 19
  &inputph
   tr2_ph=1.0d-12,
   prefix='si_bco',
   amass(1)=28.086,
   outdir='./TEMP/',
   fildyn='si_bco.dyn',
  /
  0.00000000 -0.12890585  0.23075503

*****************************************************

I also attach my script which I run on CINECA. Maybe it is not the best, but it 
worked in the past and also now. I hope the mail will not be too large. If 
you want, I could also send you some output files.

If I remember correctly, in the past I also had some problems with some 
symmetry operations (pw.1.2.0, pw.2.0.2) but just in the groundstate and I 
had to fix nr for that.

Buon weekend,
Katalin


> Hi,
> could you post your inputs (of pw.x and ph.x) and the two lists of q-points
> (the one produced by ph.x and the one accepted by q2r.x) ?
> all the best,
> stefano de Gironcoli
> 
> Quoting Katalin Gaal-Nagy <katalin.gaal-nagy at physik.uni-regensburg.de>:
>> Dear Eyvaz, dear all,
>> 
>> some time ago I posted a problem with some phonon calculation. I had some
>> additional dynamical matrices in the files which yield an error of q2r.x
>> "q-point not allowed". Here just some notes how I solved it for me.
>> 
>> I circumvented this problem by removing the "not allowed" matrices and
>> everything worked well. My first attempt (as I wrote) failed due to the
>> fact that I removed by accidence also one "allowed" point, and this one
>> was missing then.
>> 
>> Thus, q2r.x is working properly as expected.
>> 
>> As I wrote, I circumvented the problem for me, I didn't solve it.
>> It seems to be, that the ph.x finds some equivalent q points which q2r.x
>> doesn't accept. They differ from the original one just by some "-".
>> If someone is interested in solving this problem (if it is really a
>> problem ...), then I would like to help if it is possible.
>> 
>> All the best,
>> Katalin
>> 
>> ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
>> , >>>>>>>    katalin.gaal-nagy at physik.uni-regensburg.de    <<<<<<< ,
>> ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
>> , >>>>>>>      Don't dream your life, live your dream      <<<<<<< ,
>> ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
>>
-------------- next part --------------
#!/bin/csh
setenv MP_STDINMODE 0
####################################################################
set struct = bco
# 'bct' 'sh' 'bco'
set V = 184.0
set b = 0.9697000 
set c = 0.5417000 
set d = 0.3177488 

echo  $struct V=$V b=$b c=$c d=$d
########## Input-Parameter
#
cat > nawk.in <<EOF
 $V
 $b
 $c
 0.500
 $d
EOF

########## self-consistent calculation
#
cat > $struct.V$V.scf.in <<EOF
Silicon
Silicon k20 $struct
 &control
    calculation   = 'scf',
    title         = ' ' ,
    verbosity     = 'default',
    restart_mode  = 'from_scratch',
    tstress       = .t. ,
    tprnfor       = .t. ,
    outdir        = './TEMP/',
    prefix        = 'si_$struct',
    max_seconds   = 518400,
    etot_conv_thr = 1.d-7,
    forc_conv_thr = 1.d-6,
    disk_io       = 'default',
    pseudo_dir    = './pseudo/'
 /
 &system
    ibrav=11,
EOF

nawk  ' NR==1 {V   = $1} \
        NR==2 {boa = $1} \
        NR==3 {coa = $1} \
        NR==4 {at1 = $1} \
        NR==5 {at2 = $1; alat = (V / boa / coa * 2.0)^0.33333333 \
        printf "celldm(1)= %8.6f ,  ", alat ; \
        printf "celldm(2)= %8.6f ,  ", boa ; \
 printf "celldm(3)= %8.6f , \n", coa }'  nawk.in >> $struct.V$V.scf.in

cat >> $struct.V$V.scf.in <<EOF
    nat=2, ntyp=1,
    ecutwfc = 40.0 ,
    nr1=30, nr2=30, nr3=30 ,
    nosym   = .false. ,
    occupations='smearing', degauss= 0.03 ,
    smearing='methfessel-paxton'
 /
 &electrons
    electron_maxstep = 50 ,
    conv_thr         = 1.0d-8 ,
    mixing_mode      = 'plain' ,
    mixing_beta      = 0.7 ,
    mixing_ndim      = 8 ,
    diagonalization  = 'david'
 /
ATOMIC_SPECIES
 Si  28.086  Si.vbc.UPF
ATOMIC_POSITIONS {alat}
EOF
nawk  ' NR==1 {V   = $1} \
        NR==2 {boa = $1} \
        NR==3 {coa = $1} \
        NR==4 {at1 = $1; atomy = at1 * boa } \
        NR==5 {at2 = $1; atomz = at2 * coa ; \
printf "Si  0.00  %8.6f %8.6f  0 0 1 \nSi  0.00  0.000000  0.000000  0 0 0 \n ", atomy, atomz }' nawk.in >> $struct.V$V.scf.in

cat >> $struct.V$V.scf.in <<EOF
K_POINTS {automatic}
20 20 20 1 1 1 
EOF

/cineca/prod/espresso-3.0/bin/pw.x < $struct.V$V.scf.in > $struct.V$V.scf.out

##################################################################
# Phonon calculation at the other points - begin phonon-loop
#
foreach q ( 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 )
#foreach q ( 19 )
echo 'q-Punkt' $q
nawk -v nr=$q -v c=$c -v b=$b ' NR==nr {qx=$1;qy=$2;qz=$3; \
      printf "%11.8f %11.8f %11.8f\n", qx,qy/b,\
      qz/c }' qpoints448.in > test

########## non self-consistent calculation 
#
echo 'nscf' 
cat > $struct.V$V.nscf.q$q.in <<EOF
Silicon
Silicon k20 $struct
 &control
    calculation   = 'phonon',
    restart_mode  = 'from_scratch',
    outdir        = './TEMP/',
    prefix        = 'si_$struct',
    max_seconds   = 518400, 
    disk_io       = 'default',
    pseudo_dir    = './pseudo/' 
 /
 &system    
    ibrav=11, 
EOF
nawk  ' NR==1 {V   = $1} \
	NR==2 {boa = $1} \
	NR==3 {coa = $1} \
	NR==4 {at1 = $1} \
	NR==5 {at2 = $1; alat = (V / boa / coa * 2.0)^0.33333333 \
	printf "celldm(1)= %8.6f ,  ", alat ; \
	printf "celldm(2)= %8.6f ,  ", boa ; \
 printf "celldm(3)= %8.6f , \n", coa }'  nawk.in >> $struct.V$V.nscf.q$q.in
cat >> $struct.V$V.nscf.q$q.in <<EOF
    nat=2, ntyp=1, 
    ecutwfc = 40.0 ,
    nr1=30, nr2=30, nr3=30 ,
    occupations='smearing', degauss= 0.03 , 
    smearing='methfessel-paxton'
 /
 &electrons
    electron_maxstep = 100 ,
    conv_thr         = 1.0d-8 ,
    mixing_mode      = 'plain' ,
    mixing_beta      = 0.7 ,
    mixing_ndim      = 8 ,
    diagonalization  = 'cg' 
 /
 &phonon
EOF
nawk 'NR==1 {qx=$1;qy=$2;qz=$3; \
    printf "xqq(1) = %11.8f , xqq(2) = %11.8f , xqq(3) = %11.8f\n", qx,\
    qy,qz }' test >> $struct.V$V.nscf.q$q.in
cat >> $struct.V$V.nscf.q$q.in  << EOF
 /
ATOMIC_SPECIES
 Si  28.086  Si.vbc.UPF
ATOMIC_POSITIONS {alat}
EOF
nawk  ' NR==1 {V   = $1} \
	NR==2 {boa = $1} \
	NR==3 {coa = $1} \
	NR==4 {at1 = $1; atomy = at1 * boa } \
	NR==5 {at2 = $1; atomz = at2 * coa ; \
printf "Si  0.00  %8.6f %8.6f  0 0 0 \nSi  0.00  0.000000  0.000000  0 0 0 \n ", atomy, atomz }' nawk.in >> $struct.V$V.nscf.q$q.in

cat >> $struct.V$V.nscf.q$q.in <<EOF
K_POINTS {automatic}
20 20 20 1 1 1

EOF

/cineca/prod/espresso-3.0/bin/pw.x < $struct.V$V.nscf.q$q.in > $struct.V$V.nscf.q$q.out

##################################################################
# phonon calculation
#
echo 'phonon' 
cat > $struct.V$V.phon.q$q.in << EOF
phonons of Si-$struct at $q
 &inputph
  tr2_ph=1.0d-12,
  prefix='si_$struct',
  amass(1)=28.086,
  outdir='./TEMP/',
  fildyn='si_$struct.dyn',
 /
EOF
nawk 'NR==1 {qx=$1;qy=$2;qz=$3; \
      printf "%11.8f %11.8f %11.8f\n", qx,qy,\
      qz }' test >> $struct.V$V.phon.q$q.in

/cineca/prod/espresso-3.0/bin/ph.x < $struct.V$V.phon.q$q.in > $struct.V$V.phon.q$q.out

mv si_$struct.dyn $struct.V$V.dyn448.q$q

\rm test

##################################################################
# end of phonon-loop
end
#
#
########## FINISH
#
echo "fertig"



More information about the users mailing list