[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