In this lesson we are going to study the effect of computational chemistry method and size of basis set on the basis set superposition error for a simple water model and discuss about the comparison on size of model system. We will create monomer and dimer water models and do optimize the molecule to find out the most stable structure for those by using various methods; with two basis set used; 3-21G and aug-cc-pvtZ. All of computational probably may be calculated with Gaussian and visualized by Gaussview programs. Then we would calculate and compare the total energy as well as error between with and without using BSSE correction on our studied dimer of water model. The counterpoise parameter of this model will be also approximated.
Keywords: Dispersion correction, Effect of basis set, BSSE
∆E(AB) = E(AB|AB) − E(AB|A) − E(AB|B) BSSE correction∆E(AB) = E(AB|AB) − E(A|A) − E(B|B) No BSSE correctionCounterpoise BSSE = ∆E(BSSE) - ∆E(Non-BSSE)where E(a|b) denote Energy of optimized geometry of b calculated using basis set a. [1]Method: HF, MP2, and DFT
Functional (for DFT): B3LYP with and without dispersion correction [2]
Basis set: - 3-21G (small) and aug-cc-PVTz (big)
%chk=dimer-water-b3lyp-bigbasis-bsse.chk%mem=800MW%nproc=2#p Opt Freq SCF(tight) B3LYP/aug-cc-PVTz gfinput counterpoise=2 ! Input calculation setting deck BSSE Correction: water dimer0 1 0 1 0 1 ! Charge and Multiplicity for whole system, O -0.006859 -1.448901 0.000000,1 ! fragment, 1 and fragment 2, respectively.H -0.411233 -1.840395 0.754906,1H -0.411233 -1.840395 -0.754906,1O -0.006859 1.588958 0.000000,2H 0.056868 0.646169 0.000000,2H 0.875345 1.914160 0.000000,2Before (left) and after (right) optimization using Density Functional Theory (DFT) calculation for single water molecule. The O--H bond distance for these two structures are
This dimer water molecule was carried out using DFT calculation at level of B3LYP/aug-cc-PVTZ. The selected structural parameter of interest are the bond distance between oxygen atom and hydrogen on an adjacent molecule which is of about 0.9 angstroms. The interaction between those is hydrogen bond.
The data below is the calculated total energies and different energies as well as comparison of counterpoise BSSE in A.U. and kcal/mol.
Example of an analyzed BSSE calculation using my home-made script to extract computed energy.
Run by nutt at black.localdomain on Wed Jul 5 18:49:35 +07 2017 --------------------------------------------------------------------------------------------------------------File Name: ./hf-small/dimer-hf-small-bsse.log Standard basis: 3-21G (6D, 7F)E(AB|AB) = -151.189403605 A.U. E(AB|A) = -75.5930128444 A.U. E(AB|B) = -75.5867354514 A.U. E(A|A) = -75.5859247853 A.U. E(B|B) = -75.5859153974 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0096553092 A.U. = -6.0587354889276 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0175634223 A.U. = -11.0211001835169 kcal/molCounterpoise BSSE = .0079081131 A.U. = 4.9623646945893 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./hf-big/dimer-hf-big-bsse.log Standard basis: Aug-CC-pVTZ (5D, 7F)E(AB|AB) = -152.128367980 A.U. E(AB|A) = -76.0612614459 A.U. E(AB|B) = -76.0612241877 A.U. E(A|A) = -76.0612000125 A.U. E(B|B) = -76.0611851156 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0058823464 A.U. = -3.6911900130392 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0059828519 A.U. = -3.7542575158057 kcal/molCounterpoise BSSE = .0001005055 A.U. = .0630675027665 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./dft-big/dimer-dft-big-bsse.log Standard basis: Aug-CC-pVTZ (5D, 7F)E(AB|AB) = -152.939679072 A.U. E(AB|A) = -76.4662439466 A.U. E(AB|B) = -76.4661663671 A.U. E(A|A) = -76.4661927076 A.U. E(B|B) = -76.4661343916 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0072687583 A.U. = -4.5611676395249 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0073519728 A.U. = -4.6133849879184 kcal/molCounterpoise BSSE = .0000832145 A.U. = .0522173483935 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./dft-big/dimer-dft-vdw-big-bsse.log Standard basis: Aug-CC-pVTZ (5D, 7F)E(AB|AB) = -152.940860116 A.U. E(AB|A) = -76.4662529092 A.U. E(AB|B) = -76.4661784556 A.U. E(A|A) = -76.4662001779 A.U. E(B|B) = -76.4661462431 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0084287512 A.U. = -5.2890666642536 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0085136950 A.U. = -5.3423691535850 kcal/molCounterpoise BSSE = .0000849438 A.U. = .0533024893314 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./dft-small/dimer-dft-small-bsse.log Standard basis: 3-21G (6D, 7F)E(AB|AB) = -151.969280289 A.U. E(AB|A) = -75.9826456042 A.U. E(AB|B) = -75.9748224415 A.U. E(A|A) = -75.9739148995 A.U. E(B|B) = -75.9738721616 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0118122433 A.U. = -7.4122181074799 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0214932279 A.U. = -13.4870649869337 kcal/molCounterpoise BSSE = .0096809846 A.U. = 6.0748468794538 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./dft-small/dimer-dft-vdw-small-bsse.log Standard basis: 3-21G (6D, 7F)E(AB|AB) = -151.970535444 A.U. E(AB|A) = -75.9827298506 A.U. E(AB|B) = -75.9748530475 A.U. E(A|A) = -75.9739230221 A.U. E(B|B) = -75.9738846171 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0129525459 A.U. = -8.1277614098877 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0227278048 A.U. = -14.2617656954144 kcal/molCounterpoise BSSE = .0097752589 A.U. = 6.1340042855267 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./mp2-small/dimer-mp2-small-bsse.log Standard basis: 3-21G (6D, 7F)E(AB|AB) = -151.189403605 A.U. E(AB|A) = -75.5930128444 A.U. E(AB|B) = -75.5867354515 A.U. E(A|A) = -75.5859247853 A.U. E(B|B) = -75.5859153975 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0096553091 A.U. = -6.0587354261773 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0175634222 A.U. = -11.0211001207666 kcal/molCounterpoise BSSE = .0079081131 A.U. = 4.9623646945893 kcal/mol--------------------------------------------------------------------------------------------------------------File Name: ./mp2-big/dimer-mp2-big-bsse.log Standard basis: Aug-CC-pVTZ (5D, 7F)E(AB|AB) = -152.128367980 A.U. E(AB|A) = -76.0612614459 A.U. E(AB|B) = -76.0612241877 A.U. E(A|A) = -76.0612000125 A.U. E(B|B) = -76.0611851156 A.U.Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = -.0058823464 A.U. = -3.6911900130392 kcal/molDiff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = -.0059828519 A.U. = -3.7542575158057 kcal/molCounterpoise BSSE = .0001005055 A.U. = .0630675027665 kcal/mol--------------------------------------------------------------------------------------------------------------References.
[1] Counterpoise Correction and Basis Set Superposition Error C. David Sherrill
[2] S. Grimme, J. Antony, S. Ehrlich and H. Krieg, “A consistent and accurate ab initio parameterization of density functional dispersion correction (DFT-D) for the 94 elements H-Pu,” J. Chem. Phys., 132 (2010) 154104. DOI: 10.1063/1.3382344
[3] g09_calc_bsse.sh : https://github.com/rangsimanketkaew/library-g09/
Code script:
#!/bin/bash# Written by Rangsiman Ketkaew, CompChem TU, June, 2017# Usage: $ chmod +x ./calc_bsse.sh# : $ ./calc_bsse.shread -p "Enter Your Gaussian Output: " filewho=`whoami`node=`hostname`now=`date`where=`pwd`if [ -e $file ]; thenecho "---------------------------------------- BSSE Energy Extraction -----------------------------------------Run by $who at $node on $now---------------------------------------------------------------------------------------------------------" > $where/results.BSSE.$file.txt#echo "We are at $where"#for f in `find ./ -name "*bsse*.log"`bs=`grep 'Standard basis' $file|tail -1`for f in $file do echo "File Name: $f $bs" >> $where/results.BSSE.$file.txt E_AB_AB=`grep 'SCF D' $f | awk '{print $5}'|tail -5|sed -n '1p'` E_AB_A=`grep 'SCF D' $f | awk '{print $5}'|tail -5|sed -n '2p'` E_AB_B=`grep 'SCF D' $f | awk '{print $5}'|tail -5|sed -n '3p'` E_A_A=`grep 'SCF D' $f | awk '{print $5}'|tail -5|sed -n '4p'` E_B_B=`grep 'SCF D' $f | awk '{print $5}'|tail -5|sed -n '5p'` echo -e "E(AB|AB) = $E_AB_AB A.U.\n" \ "E(AB|A) = $E_AB_A A.U.\n" \ "E(AB|B) = $E_AB_B A.U.\n" \ "E(A|A) = $E_A_A A.U.\n" \ "E(B|B) = $E_B_B A.U." >> $where/results.BSSE.$file.txt deltaE_bsse=`echo $E_AB_AB - $E_AB_A - $E_AB_B | bc -l` ; deltaE_bsse_con=`expr $deltaE_bsse*627.503 | bc -l` deltaE_norm=`echo $E_AB_AB - $E_A_A - $E_B_B |bc -l` ; deltaE_norm_con=`expr $deltaE_norm*627.503 | bc -l` cp_bsse=`echo $deltaE_bsse - $deltaE_norm | bc -l` ; cp_bsse_con=`expr $cp_bsse*627.503 | bc -l` echo "Diff Energy with BSSE = E(AB|AB) - E(AB|A) - E(AB|B) = $deltaE_bsse A.U. = $deltaE_bsse_con kcal/mol" \ >> $where/results.BSSE.$file.txt echo "Diff Energy without BSSE = E(AB|AB) - E(A|A) - E(B|B) = $deltaE_norm A.U. = $deltaE_norm_con kcal/mol" \ >> $where/results.BSSE.$file.txt echo "Counterpoise BSSE = $cp_bsse A.U. = $cp_bsse_con kcal/mol" \ >> $where/results.BSSE.$file.txt #echo $E_AB_AB - $E_AB_A - $E_AB_B | bc -l echo -e "---------------------------------------------------------------------------------------------------------\n" \ >> $where/results.BSSE.$file.txt done echo "Congrats !!! Please check file results.BSSE.$file.txt"else echo "Error !!! File $file does not exist."fi