Calculate the first ionization energies (IE) of atom H - Ar (atomic
number: 1 - 18) with following Method/ basis set:
✓ PM3
✓ HF/6-31G*
✓ MP2/6-31G*
Definition of Ionization Energies:
A(g) → A+(g) + e - ΔE = IE1
A+(g) → A2+(g) + e - ΔE =
IE2
The first ionization energies and absolute error are shown in the plot below. You can see detail data from this file (Excel): Download. Notice that parameters for PM3 method are stored in the program for "H, Li-F, Na-Cl, K, Ca, Cr, Zn-Br, Rb, Sr, Cd-I, Cs, Ba and Hg-Bi" elements. So the elements He, Ne, Ar are not availble to calculate with PM3 method.
1. Mean unsigned error (MUE): PM3 (29.8 kcal/mol) > HF (20.2 kcal/mol) > MP2 (10.2 kcal/mol)
2. HF and MP2 methods have negative deviation.
3. PM3 method does not give a good precision on 3A (p1) elements.
4. For the elements in same group, the IE decrease with increasing atomic number.
5. For the elements in same family, the IE tend to increase with increasing atomic number.
6. 2A (with electron configuration s2) and 5A (with electron configuration
p3)
elements have higher IE values comparing with the elements nearby.
Results | |
---|---|
Spartan | Import .xyz to WebMO |
Import .pdb to GaussView | Import .pdb to Jmol |
Do not use this method unless you are good with figures. (對數字敏感)
#!/bin/bash
#
#
mkdir MP2_atom
cd MP2_atom
g16_file=$(cat ../atom.dat)
for file in ${g16_file}
do
touch ${file}"_MP2.com"
wait
echo $'%nprocshared=2\n%mem=2GB\n# MP2/6-31G*\n\ntitle\n' >> ${file}"_MP2.com"
wait
done
wait
for file in ${g16_file}
do
if [[ ${file} == *'He'* ]] || [[ ${file} == *'Be'* ]] || [[ ${file} == *'Ne'* ]] || [[ ${file} == *'Mg'* ]] || [[ ${file} == *'Ar'* ]]; then
echo '0 1' >> ${file}"_MP2.com"
wait
echo ${file} $'\n\n' >> ${file}"_MP2.com"
wait
elif [[ ${file} == *'H'* ]] || [[ ${file} == *'Li'* ]] || [[ ${file} == *'B'* ]] || [[ ${file} == *'F'* ]] || [[ ${file} == *'Na'* ]] || [[ ${file} == *'Al'* ]] || [[ ${file} == *'Cl'* ]]; then
echo '0 2' >> ${file}"_MP2.com"
wait
echo ${file} $'\n\n' >> ${file}"_MP2.com"
wait
elif [[ ${file} == *'C'* ]] || [[ ${file} == *'O'* ]] || [[ ${file} == *'Si'* ]] || [[ ${file} == *'S'* ]]; then
echo '0 3' >> ${file}"_MP2.com"
wait
echo ${file} $'\n\n' >> ${file}"_MP2.com"
wait
elif [[ ${file} == *'N'* ]] || [[ ${file} == *'P'* ]]; then
echo '0 4' >> ${file}"_MP2.com"
wait
echo ${file} $'\n\n' >> ${file}"_MP2.com"
wait
fi
wait
done
for file in ${g16_file}
do
g16 ${file}"_MP2.com" &
wait
done
echo "DONE"
wait
#