I am getting quite bad results for LDA lattice constants of ZnTe and CdTe in zincblende structure. According to the literature, ZnTe/CdTe equilibrium lattice constant is 6.089/6.480 A, respectively.
For ZnTe, I am getting
==> TOTENERGY.5.55 <== -8584.727350 -> 5.87 A
==> TOTENERGY.5.60 <== -8584.726842
==> TOTENERGY.5.65 <== -8584.725249
==> TOTENERGY.5.70 <== -8584.723405
==> TOTENERGY.5.75 <== -8584.720192
==> TOTENERGY.5.80 <== -8584.717204
==> TOTENERGY.5.85 <== -8584.713107
==> TOTENERGY.5.90 <== -8584.708778
==> TOTENERGY.5.95 <== -8584.703801 -> 6.30 A
where number at the end of TOTENERGY.* is half of the lattice constant in a.u, for example,
TOTENERGY.5.55 corresponds to the lattice constant 5.87 A (5.55*2*0.529177). The energies in my calculation decrease
uniformly...I tried different things - increasing k-point sampling to 10x10x10, increasing rgkmax together with lmax and density cut-off, neglecting the spin-orbital coupling - nothing seems
to work for me. I do get good normal lattice constants for other semiconductors such as InAs/GaAs.
Does anyone knows what's wrong with my calculations? The above energies were
produced with the following input, 151 version of exciting and default species files
(3p states of Cd are treated as valence, for example).
Best regards, Eugene
export E_EXE=/usr/local/exciting/0.9.151/pgi/goto/bin/exciting
export OMP_NUM_THREADS=4
cd /home/ekadants/ZnTe/zincE
for i in 5.55 5.60 5.65 5.70 5.75 5.80 5.85 5.90 5.95
do
cat > exciting.in << EOF
tasks
0
I am getting a better 6.0 A lattice constant for ZnTe now. To get the lattice consant right I had to add "d local orbital" to the default Zn species file. I took -0.35 a.u. from the atomic calculations, what is the proper procedure for choosing
these energies?
2 3 : lorbl, lorbord
0.1500 0 F : lorbe0, lorbdm, lorbve
0.1500 1 F
-0.35 0 T
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You're quite correct. For this case the semi-core cut-off energy was set too low in the "species" code. I've now set it to -0.35 Ha, which produces the extra local orbital in Zn.in:
2 3 : lorbl, lorbord
0.1500 0 F : lorbe0, lorbdm, lorbve
0.1500 1 F
-0.2410 0 T
Eugene:
Zn has a 3d^10 configuration, so d-bands are fully occupied. By default Zn has one local orbital for 3d with enu=0.15 Ha. Seems like this linearization energy is too high. Instead of adding another l.o. you can try to change the enu of existing local orbital from 0.15 to -0.35 Ha. There is no unique procedure of choosing linearization energies, only physical intuition and a bit of street magic ;)
Anton.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear exciting users,
I am getting quite bad results for LDA lattice constants of ZnTe and CdTe in zincblende structure. According to the literature, ZnTe/CdTe equilibrium lattice constant is 6.089/6.480 A, respectively.
For ZnTe, I am getting
==> TOTENERGY.5.55 <== -8584.727350 -> 5.87 A
==> TOTENERGY.5.60 <== -8584.726842
==> TOTENERGY.5.65 <== -8584.725249
==> TOTENERGY.5.70 <== -8584.723405
==> TOTENERGY.5.75 <== -8584.720192
==> TOTENERGY.5.80 <== -8584.717204
==> TOTENERGY.5.85 <== -8584.713107
==> TOTENERGY.5.90 <== -8584.708778
==> TOTENERGY.5.95 <== -8584.703801 -> 6.30 A
where number at the end of TOTENERGY.* is half of the lattice constant in a.u, for example,
TOTENERGY.5.55 corresponds to the lattice constant 5.87 A (5.55*2*0.529177). The energies in my calculation decrease
uniformly...I tried different things - increasing k-point sampling to 10x10x10, increasing rgkmax together with lmax and density cut-off, neglecting the spin-orbital coupling - nothing seems
to work for me. I do get good normal lattice constants for other semiconductors such as InAs/GaAs.
Does anyone knows what's wrong with my calculations? The above energies were
produced with the following input, 151 version of exciting and default species files
(3p states of Cd are treated as valence, for example).
Best regards, Eugene
export E_EXE=/usr/local/exciting/0.9.151/pgi/goto/bin/exciting
export OMP_NUM_THREADS=4
cd /home/ekadants/ZnTe/zincE
for i in 5.55 5.60 5.65 5.70 5.75 5.80 5.85 5.90 5.95
do
cat > exciting.in << EOF
tasks
0
xctype
3
spinorb
.true.
avec
$i $i 0.0
$i 0.0 $i
0.0 $i $i
sppath
'/usr/local/exciting/0.9.151/species/'
atoms
2 : nspecies
'Zn.in' : spfname
1 : natoms
0.00 0.00 0.00 0.0 0.0 0.0 : atposl, bfcmt
'Te.in' : spfname
1 : natoms
0.25 0.25 0.25 0.0 0.0 0.0 : atposl, bfcmt
ngridk
8 8 8
EOF
${E_EXE} exciting.in
rm -f -r exciting.in
mv EIGVAL.OUT EIGVAL.$i
mv INFO.OUT INFO.$i
mv TOTENERGY.OUT TOTENERGY.$i
mv EVALCORE.OUT EVALCORE.$i
mv EFERMI.OUT EFERMI.$i
rm -f -r *.OUT
done
I meant Zn 3p states are treated as valence
I am getting a better 6.0 A lattice constant for ZnTe now. To get the lattice consant right I had to add "d local orbital" to the default Zn species file. I took -0.35 a.u. from the atomic calculations, what is the proper procedure for choosing
these energies?
2 3 : lorbl, lorbord
0.1500 0 F : lorbe0, lorbdm, lorbve
0.1500 1 F
-0.35 0 T
You're quite correct. For this case the semi-core cut-off energy was set too low in the "species" code. I've now set it to -0.35 Ha, which produces the extra local orbital in Zn.in:
2 3 : lorbl, lorbord
0.1500 0 F : lorbe0, lorbdm, lorbve
0.1500 1 F
-0.2410 0 T
Running this with "rgkmax=8.5" gives:
5.40000000000000 -8584.76625029792
5.45000000074506 -8584.76923592724
5.50000000149012 -8584.77168046126
5.55000000223517 -8584.77342212194
5.60000000298023 -8584.77455769550
5.65000000372529 -8584.77510727420
5.70000000447035 -8584.77526029399
5.75000000521541 -8584.77476164859
5.80000000596046 -8584.77400402242
5.85000000670552 -8584.77276575883
5.90000000745058 -8584.77147097164
5.95000000819564 -8584.76956206248
6.00000000894070 -8584.76728627976
i.e. an equilibrium parameter of 6.015 Angstrom.
Cheers,
Kay.
Eugene:
Zn has a 3d^10 configuration, so d-bands are fully occupied. By default Zn has one local orbital for 3d with enu=0.15 Ha. Seems like this linearization energy is too high. Instead of adding another l.o. you can try to change the enu of existing local orbital from 0.15 to -0.35 Ha. There is no unique procedure of choosing linearization energies, only physical intuition and a bit of street magic ;)
Anton.