Natural Bond Orbitals (NBO) visualization
This is the second post on a series which will try to address common technical questions in computational chemistry that recursively appear on the CCL.
The Natural Bond Orbitals analysis is a powerful tool in population analysis calculations which is more robust than the traditional Mulliken approach, if for no better reason because its almost insensitive to the change of basis set while Mulliken’s P.A. is highly sensitive to basis set effects. Another advantage of the NBO analysis is that it provides a localized depiction of the electron density over a molecule, making it more related to chemists intuition. So far I have only worked with Gaussian 98, Gaussian 03 and only recently with Gaussian 09 in calculating NBO’s although it is possible also to perform them with GAMESS and the standalone NBO5.0 program created by Frank Weinhold. Visualizing them, however is never a straightforward process, and quite often we see more questions on the CCL than answers trying to address the matter. Most of the answers are concerned with what visualization programs to use but they seldom provide step by step instructions, furthermore most manuals are a bit cryptic about the procedure to plot this orbitals.
In Molekel 4.3
Make sure that the route section in your input file includes the following options: pop=nboread; gfoldprint (in case you are using G03 or even G09) or gfprint (in case you are still running G98), e.g.:
#P opt rhf/6-31G(d,p) pop=(full,nboread) gfoldprint geom=connectivity
This calculation requests a geometry optimization followed by a Natural Bond Orbital population analysis (with keywords to be read) using the Restricted Hartree-Fock method with the split valence basis set 6-31G(d,p)
NOTE: I have my own issues and concerns about the use of DFT along with NBO but maybe that will be treated in another post.
At the end of the input file, after the infamous blank line type the following:
$NBO PLOT $END
You may include other keywords such as BNDIDX which generates a Wiberg bond index (order) matrix; or BOAO which generates the same matrix but in the Natural Atomic Orbitals basis. The PLOT option will generate a series of files with numerical extensions. The one you want to pay attention to is filename.47
If you are using Gaussian 03 or Gaussian 09 and STILL want to use Molekel 4.3 then you probably already know you have to change 03 for 98 on the header of the output file:
Gaussian 03: x86… –> Gaussian 98: x86-
That aside, load your output file (filename.out or filename.log) on Molekel 4.3 as usual. Then go to Load -> nbo orb and load filename.47. Now, go to Compute -> Orbital and now select the Natural Bond Orbital you are interested in. This should do it! As an interesting exercise try computing the same orbitals (lets say HOMO and HOMO-1) with and without loading filename.47 in order to observe the difference between the shape of the MO’s and NBO’s. Molekel 4.3, though, is filled with bugs that will make it close unexpectedly, specially when running under Windows Vista. Sometimes the window closes because some sort of resolution problem, specially when taking snapshots (interestingly enough this happened to me when the background color was set to white) decrease the resolution of your monitor before taking the snapshot to prevent this problem. Some people complain about the look and feel of the latest molekel version so they stick to this old bugged one, so that is why I’m posting this method.
In Gasusview 3.0
This is the gaussview version I currently work with. When performing the NBO analysis on Gaussian (by the way, Gaussian 09 cannot be visualized with gaussview 3.x) use the savenbo option in the rout section, for example:
#P opt HF/6-31G(d) freq=noraman pop=(ful,nboread,savenbo) geom=connectivity
This will save the NBO coefficients into the checkpoint file. Load the output file with gaussview normally and then click on the Molecular Orbital icon (or go to Edit -> MO’s). This will open a new window with four tabs at the bottom of the molecule image. Click on the ‘New’ tab and load your checkpoint file. Gaussview will automatically format the chk file (this can cause some troubles when crossing architectures or platforms, so be careful to generate the proper formatted chk file!) Once load select the orbital you need to visualize and go to the ‘Visualize’ tab and click update; the orbital displayed is the Natural Bond Orbital. In this tab you can also adjust certain parameters like the isovalue (which is set to 0.02 by default) or the cube grid which controls how smooth the surface looks. UPDATE: According to John Keller from Alaska you can use this methodology when calculating with G09 and using Gview3.x, this also allows to visualize vibrations when this same software combination is used.
As usual, this post will be updated whenever I find some more useful information about the matter. Rate this post or leave a comment, just to know if you found it useful. Thanks!