[Pw_forum] Different adsorbate dipole moments from 4.3.1 and 4.0.1
Guido Fratesi
fratesi at mater.unimib.it
Tue Jul 5 16:02:16 CEST 2011
Dear all,
I'm experiencing some differences when computing dipole moments for
adsorbates on surfaces with pw.x from newer versions (>4.2) with
respect to previous calculations I did with QE-4.0.1. They amount to
few percent in the computed dipole in my cases. I expect they follow
the restructuring of the associated routines, PW/compute_dip.f90 and
PW/add_efield.f90, performed in 2009.
The systems are generally quite large (alkali adatoms on top of a
metal slab with about 80 atoms) so I extracted a smaller case which
already highlights some discrepancies: a neutral OH molecule in a cell
10x10x40au^3, which I submit here to your consideration if you are
interested and/or can give me some advice.
Let us focus on the dipole moment computed as a function of the
variables emaxpos/eopreg defining the saw-like potential. The cell is
very large along z (40au) so the position of emaxpos can be varied
considerably without affecting the results (the molecule is around the
origin). I now compare versions 4.0.1 and 4.3.1. They give the same
dipole moment P=0.6223au and energy Etot when emaxpos is far from the
atoms (distance d in the tables below). However, when emaxpos
approaches the atoms, the new version 4.3.1 deviates much more rapidly
from this value than the former 4.0.1 one.
Although the the percentual error in P is relatively small also for
QE-4.3.1, amounting to 1% only for d smaller than about 2.8au (quite
small indeed) the very different P-vs-d behavior deserves in my
opinion some attention, and it may have more dramatic effects in other
cases.
Thank you for your kind consideration,
Guido Fratesi
Tables and test-script follow. I will send you detailed input/output
files if you wish.
This with 4.0.1:
eopreg emaxpos d(au) Etot(Ry) P(au) dE(meV) dP(%)
0.05 0.475 18.10 -32.74822138 -0.6223 0.00 0.00
0.10 0.450 17.10 -32.74822138 -0.6223 0.00 0.00
0.15 0.425 16.10 -32.74822138 -0.6223 0.00 0.00
0.20 0.400 15.10 -32.74822138 -0.6223 0.00 0.00
0.25 0.375 14.10 -32.74822138 -0.6223 0.00 0.00
0.30 0.350 13.10 -32.74822138 -0.6223 0.00 0.00
0.35 0.325 12.10 -32.74822138 -0.6223 0.00 0.00
0.40 0.300 11.10 -32.74822138 -0.6223 0.00 0.00
0.45 0.275 10.10 -32.74822138 -0.6223 0.00 0.00
0.50 0.250 9.10 -32.74822138 -0.6223 0.00 0.00
0.55 0.225 8.10 -32.74822138 -0.6223 0.00 0.00
0.60 0.200 7.10 -32.74822138 -0.6223 0.00 0.00
0.65 0.175 6.10 -32.74822138 -0.6223 0.00 0.00
0.70 0.150 5.10 -32.74822137 -0.6223 0.00 0.00
0.75 0.125 4.10 -32.74822136 -0.6223 0.00 0.01
0.76 0.120 3.90 -32.74822136 -0.6223 0.00 0.01
0.77 0.115 3.70 -32.74822135 -0.6224 0.00 0.02
0.78 0.110 3.50 -32.74822134 -0.6224 0.00 0.02
0.79 0.105 3.30 -32.74822132 -0.6225 0.00 0.03
0.80 0.100 3.10 -32.74822130 -0.6225 0.00 0.03
0.81 0.095 2.90 -32.74822126 -0.6226 0.00 0.05
0.82 0.090 2.70 -32.74822121 -0.6227 0.00 0.07
0.83 0.085 2.50 -32.74822112 -0.6229 0.00 0.10
0.84 0.080 2.30 -32.74822100 -0.6231 0.01 0.12
0.85 0.075 2.10 -32.74822083 -0.6233 0.01 0.17
0.86 0.070 1.90 -32.74822057 -0.6237 0.01 0.22
0.87 0.065 1.70 -32.74822020 -0.6241 0.02 0.29
0.88 0.060 1.50 -32.74821975 -0.6246 0.02 0.36
0.89 0.055 1.30 -32.74821905 -0.6252 0.03 0.47
0.90 0.050 1.10 -32.74821809 -0.6260 0.04 0.60
0.91 0.045 0.90 -32.74821684 -0.6269 0.06 0.75
0.92 0.040 0.70 -32.74821523 -0.6281 0.08 0.93
0.93 0.035 0.50 -32.74821325 -0.6293 0.11 1.13
0.94 0.030 0.30 -32.74821090 -0.6307 0.14 1.35
0.95 0.025 0.10 -32.74820813 -0.6321 0.18 1.57
This with 4.3.1:
eopreg emaxpos d(au) Etot(Ry) P(au) dE(meV) dP(%)
0.05 0.475 18.10 -32.74822138 -0.6223 0.00 0.00
0.10 0.450 17.10 -32.74822138 -0.6223 0.00 0.00
0.15 0.425 16.10 -32.74822138 -0.6223 0.00 0.00
0.20 0.400 15.10 -32.74822138 -0.6223 0.00 0.00
0.25 0.375 14.10 -32.74822138 -0.6223 0.00 0.00
0.30 0.350 13.10 -32.74822138 -0.6223 0.00 0.00
0.35 0.325 12.10 -32.74822138 -0.6223 0.00 0.00
0.40 0.300 11.10 -32.74822139 -0.6223 0.00 0.00
0.45 0.275 10.10 -32.74822139 -0.6223 0.00 0.00
0.50 0.250 9.10 -32.74822139 -0.6223 0.00 0.00
0.55 0.225 8.10 -32.74822139 -0.6223 0.00 0.00
0.60 0.200 7.10 -32.74822140 -0.6223 0.00 0.00
0.65 0.175 6.10 -32.74822143 -0.6223 0.00 0.00
0.70 0.150 5.10 -32.74822163 -0.6222 0.00 -0.02
0.75 0.125 4.10 -32.74822308 -0.6219 -0.02 -0.06
0.76 0.120 3.90 -32.74822393 -0.6217 -0.03 -0.10
0.77 0.115 3.70 -32.74822521 -0.6214 -0.05 -0.14
0.78 0.110 3.50 -32.74822713 -0.6209 -0.08 -0.22
0.79 0.105 3.30 -32.74823004 -0.6203 -0.12 -0.32
0.80 0.100 3.10 -32.74823448 -0.6192 -0.18 -0.50
0.81 0.095 2.90 -32.74824122 -0.6176 -0.27 -0.76
0.82 0.090 2.70 -32.74825141 -0.6151 -0.41 -1.16
0.83 0.085 2.50 -32.74826676 -0.6114 -0.62 -1.75
0.84 0.080 2.30 -32.74828988 -0.6056 -0.93 -2.68
0.85 0.075 2.10 -32.74832476 -0.5968 -1.41 -4.10
0.86 0.070 1.90 -32.74837714 -0.5832 -2.12 -6.28
0.87 0.065 1.70 -32.74845479 -0.5624 -3.18 -9.63
0.88 0.060 1.50 -32.74856764 -0.5306 -4.71 -14.74
0.89 0.055 1.30 -32.74872674 -0.4820 -6.88 -22.55
0.90 0.050 1.10 -32.74893929 -0.4078 -9.77 -34.47
0.91 0.045 0.90 -32.74919357 -0.2949 -13.23 -52.61
0.92 0.040 0.70 -32.74942151 -0.1249 -16.33 -79.93
0.93 0.035 0.50 -32.74942170 0.1248 -16.33 -120.05
0.94 0.030 0.30 -32.74875527 0.4751 -7.26 -176.35
0.95 0.025 0.10 -32.74669998 0.9359 20.70 -250.39
################################################################################
#!/bin/bash
PSEUDO_DIR=../pseudo/
TMP_DIR=../tmp/
pw[0]=/opt/Q-E.d/espresso-4.0.1/bin/pw.x
pw[1]=/opt/Q-E.d/espresso-4.3.1/bin/pw.x
pp[0]=/opt/Q-E.d/espresso-4.0.1/bin/pp.x
pp[1]=/opt/Q-E.d/espresso-4.3.1/bin/pp.x
for code in 0 1 ; do
cat > oh.scf.$code.in << EOF
&CONTROL
calculation = 'scf'
prefix = 'OH$code'
restart_mode = 'from_scratch'
outdir = '$TMP_DIR'
PSEUDO_DIR = '$PSEUDO_DIR'
/
&SYSTEM
ibrav = 6
celldm(1) = 10.d0
celldm(3) = 4.d0
nat = 2
ntyp = 2
ecutwfc = 27.0d0
ecutrho = 216.0d0
occupations = 'smearing'
degauss = 0.01D0
smearing = 'mp'
nspin = 2
starting_magnetization = 0.7
/
&ELECTRONS
conv_thr = 1.0d-9
mixing_mode = 'plain'
mixing_beta = 0.3d0
/
ATOMIC_SPECIES
H 1.00 H.vbc.UPF
O 16.00 O.pz-rrkjus.UPF
ATOMIC_POSITIONS (bohr)
H 0 0 -0.9
O 0 0 0.9
K_POINTS gamma
EOF
${pw[$code]} < oh.scf.$code.in > oh.scf.$code.out
#dummy is eopreg*100
for dummy in 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 ; do
eopreg=`echo $dummy | awk '{printf "%4.2f",$1/100}'`
tst=${eopreg:2:2}
emaxpos=`dc -e "6k 1 $eopreg - 2/p"`
cat > oh.dip.scf.$code.$tst.in << EOF
&CONTROL
calculation = 'scf'
prefix = 'OH$code'
restart_mode = 'from_scratch'
outdir = '$TMP_DIR'
PSEUDO_DIR = '$PSEUDO_DIR'
dipfield = .true. , tefield = .true.
/
&SYSTEM
ibrav = 6
celldm(1) = 10.d0
celldm(3) = 4.d0
nat = 2
ntyp = 2
ecutwfc = 27.0d0
ecutrho = 216.0d0
occupations = 'smearing'
degauss = 0.01D0
smearing = 'mp'
nspin = 2
starting_magnetization = 0.7
edir=3, eamp=0, emaxpos=$emaxpos, eopreg=$eopreg
/
&ELECTRONS
startingpot = 'file'
startingwfc = 'file'
conv_thr = 1.0d-9
mixing_mode = 'plain'
mixing_beta = 0.3d0
/
ATOMIC_SPECIES
H 1.00 H.vbc.UPF
O 16.00 O.pz-rrkjus.UPF
ATOMIC_POSITIONS (bohr)
H 0 0 -0.9
O 0 0 0.9
K_POINTS gamma
EOF
${pw[$code]} < oh.dip.scf.$code.$tst.in > oh.dip.scf.$code.$tst.out
done
done
--
Guido Fratesi
Dipartimento di Scienza dei Materiali
Universita` degli Studi di Milano-Bicocca
Milano, Italy
More information about the users
mailing list