H$_2$ : the potential energy landscape

In this practical session we will perform various types of calculations on H$_2$. We will not bother excessively about basis sets, but more on the methods used. From our discussion in the lectures, we have seen how different RHF, UHF and FCI are for this system. The RHF wavefunction dissociates into the wrong states (H and 1/2 H$^-$), while the UHF and FCI wavefunctions dissociate correctly into two H atoms, though the UHF wavefunction doesn't result in correct energies in the intermediate region.

To see all of this we will not only calculate energies at the H$_2$ equilibrium separation of $R_e=1.4$ a.u. (nearly), but at other separations so as to get the complete potential energy shape. I suggest you choose the separations (in multiples of $R_e$): 0.85, 0.90, 0.95, 1.0, 1.1, 1.2, 1.5, 2.0, 4.0, 8.0, 16.0.

Important NWChem: You will need to get used to using the NWChem wiki that is found at:

Bookmark this page as you will need to use it often. This should be your first port of call should something go wrong.

RHF

Here is the restricted Hartree-Fock input file for the STO-3G basis set:

Memory 500 mb

charge 0
Geometry units bohr
  H     0.0    0.0    0.0
  H     0.0    0.0    1.4
End

Basis "ao basis" spherical
  H  library  STO-3G
End

Title "H2 STO-3G "

scf
  Singlet
  RHF
  Direct
end

task scf energy

Save this file in

h2-rhf-sto3g.nw

This file is run as follows:

  mpirun.mpich -np 1 nwchem h2-rhf-sto3g.nw >& h2-rhf-sto3g-1Re.out

Notice the name of the output file includes a 1Re. I've done this to indicate that this particular output is for 1 times $R_e$, the equilibrium bond length of H$_2$. It is good practice to include such information in the file names.

Warning Ideally we should not be running jobs on our home directory. NWChem will create temporary files that are written to disk, but the home directory on comanche is special: it is a mounted RAID6 disk consisting of 6 or more hard drives. It is a secure disk system, but isn't meant to handle large amounts of disk I/O. So we should ideally run on /scratch/HDD_2T/esm/<user>/ and copy only the results to our home directory.

To make the disk I/O as little as possible, we use the direct option in NWChem. This tells the program not to use the disk for storage, but to do everything //directly// in memory.

Tip Why have we chosen a singlet state?

  • This is because we want to study the closed-shell $S=0$ H$_2$ state.

  • To get the open-shell triplet state use triplet in the scf block.

ImportantTask: RHF Energy Surface:

  • How will you change the above file to calculate energies at the other configurations?
  • Reminder: configurations needed (in units of $R_e$): 0.85, 0.90, 0.95, 1.0, 1.1, 1.2, 1.5, 2.0, 4.0, 8.0, 16.0.

Do this. And tabulate the energies.

Analysis: Does the RHF wavefunction dissociate into two H-atoms? How would you know? According to our theory, the RHF dissociation energy should be \begin{align}

  • E({\rm H}_2,{\rm RHF}) \rightarrow E({\rm H}) + \frac{1}{2} E({\rm H}^-)

\end{align} To verify this we need to calculate the energy of H$^-$. How would you modify the above input file to get this energy? Hint: here's the H$^-$ command file.

Perform this calculation and see if the theoretical dissociation energy is correct.

Tip Making Plots\\ You will need to make plots energy as a function of separation $R$. The goal here should be to display the data points clearly and make a smooth fit to the data. This can be done using a variety of programs, but I recommend Gnuplot as it can do the job very well and without much of a fuss. Gnuplot is available on comanche but you will need to enable X-forwarding (instructions for Putty, and OSX via the Terminal) to see the output of Gnuplot on your screen. If this is a problem, consider installing Gnuplot on your laptop. Or else something like Veusz. If all fails, use Excel.

Plots should be neat and informative. Axes should be clearly labeled, units included, fits should be smooth, lines and points thick/large enough and a legend present.

Tip Searching for energies in multiple output files The Unix grep command is great for searching for lines that will always contain a particular string. To see how it can be used try

  • man grep

To search for SCF energies in files that are of the form JOB_nnn.out use

  • grep -in 'Total SCF energy' *.out

Batch job

Tip

Here's a BASH script from Matej Veis to do a whole batch of calculations for you and search the output:

#creates input files and executes NWChem, writing energy values for separation n #version 1.0 by MV

Rhh=0.0 Re=1.4

for n in {0.85,0.9,0.95,1.0,1.1,1.2,1.5,2.0,4.0,8.0,16.0}; do

Rhh_str="${n} * ${Re}" Rhh="$(echo "$Rhh_str" | bc -l)"

echo -e "Memory 500 mb

charge 0 Geometry units bohr

  • H 0.0 0.0 0.0 H 0.0 0.0 $Rhh

End

Basis \"ao basis\" spherical

  • H library STO-3G

End

Title \"H2 STO-3G\"

scf

  • Singlet RHF Direct

end

task scf energy" >input$n.nw mpirun.mpich -np 1 nwchem input$n.nw >& output$n.out

s=grep -in "Total SCF energy" output$n.out

echo -e "$s , $n " >>data.csv done

Save this file as H2_batch.bash and make it executable using

You can now run it using

There will be many input and output file created. And the final results will be in a file called data.csv. You may delete all files ending in

These are temporary files created by NWChem and are not needed here. }}}

Tip If you prefer to use Python3 then use this code written by Harry Campion:

UHF

You should have seen that the RHF dissociation energy was not very good. So we now turn to the unrestricted Hartree-Fock (UHF) method. Here we allow the spin up and down orbitals to have different spatial parts. How do we get NWChem to do this? Well, here is the input file:

Memory 500 mb

charge 0
Geometry units bohr
  H     0.0    0.0    0.0
  H     0.0    0.0    1.4
End

Basis "ao basis" spherical
  H  library  STO-3G
End

Title "H2 STO-3G "

scf
  Singlet
  Nopen 2
  UHF
  Sym   Off
  Adapt Off
  Direct
end

task scf energy

The only difference is the scf block. Let's look at it in detail:

Important Task: UHF energy profile:

  • As with the RHF case, calculate UHF energies for the set of H$_2$ bond lengths.

  • Compare these with the RHF case. At some bond length you should see the UHF energy get lower than the RHF energy. This is the crossover point.
  • Is the UHF dissociation energy close to that of two H-atoms?
  • It should be possible to do both an RHF and UHF calculation in the same file using a command block like:

...basis geometry etc as before...

Title "H2: RHF energy"

scf
  Singlet
  RHF
  Sym   On
  Adapt On
  Direct
end

task scf energy

Title "H2: UHF energy"

scf
  Singlet
  Nopen 2
  UHF
  Sym   Off
  Adapt Off
  Direct
end

task scf energy

CI : Configuration Interaction

The only way to get the dissociation energy right at all bond lengths is to use full configuration interaction (FCI). But NWChem will not let us do this. Instead we use something called CISD - we will see more of this in subsequent lectures, but for now, CISD = configuration interaction with single and double excitations only. The CISD wavefunctions however, do not dissociate correctly either and for a sufficiently large bond length, will break down. However, let's see just how well it fares.

The STO-3G basis is a minimal basis set. It contains just one $s$-function: that is, one spherical Gaussian orbital. This means the CI space contains just two orbitals of gerade symmetry (exactly as we had in our lectures). While this should be OK, NWChem 6.1.1 seems to have a problem with such a small CI space. So we use a larger basis: cc-pVDZ.

Here is a CISD NWChem command file:

Memory 1000 mb

charge 0
Geometry units bohr
  Symmetry group c2v
  H     0.0    0.0    0.0
  H     0.0    0.0    1.4
End

Basis "ao basis" spherical
  H  library  cc-pVDZ
End

Title "H2 cc-pVDZ "

scf
  Singlet
  RHF
  Direct
end
TCE
  CISD
END

task TCE energy

There are a few differences from what we have used before:

Important Tasks:

  • Include CI energies at the bond lengths you have already used.
  • NWChem may not allow convergent energies at all bond lengths. This is a bug in the code.

Important Task:

  • Plot the energies. You will not be able to make plots using comanche due to a problem forwarding the display to Windows machines.

  • Use PhysPlot or something else of your choice.

How do your results compare with those from Helgaker et al.:

helgaker-fig5p12-h2-pes.png

and here are the energies from different methods:

helgaker-tab5p6-h2-energies-methods.png

AJMPublic/teaching/electronic-structure/practical2 (last edited 2021-04-14 13:55:18 by apw109)