Calculate the first ionization energies (IE) of atom H - Ne (atomic
number: 1 - 10) with following Method and basis set:
✓ Method: MP2, MP4 or CCSD(T)
✓ Basis set: 6-31G* or 6-311+G(2df,2p)
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 download the raw data Here.
1. With 6-31G* basis set MUE: MP2 (9.6 kcal/mol) ≈ CCSD(T) (9.5 kcal/mol) ≈ MP4 (9.4 kcal/mol)
2. With 6-311+G(2df,2p) basis set MUE: MP2 (3.5 kcal/mol) > CCSD(T) (2.6 kcal/mol) ≈ MP4 (2.4 kcal/mol)
3. For MP2, MP4, CCSD(T) methods, most of the IE had been underestimated.
4. For MP2, MP4, CCSD(T) methods, using 6-311+G(2df,2p) basis set could significantly reduce the error.
5. CCSD(T) is an expensive method but it could get accurate energies only if we use a larger basis set such as aug-cc-pVTZ.
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
#