I’m posting this white paper “as is” but I will keep on coming back to update it; the thing is that I haven’t had the time to post anything else lately and if I don’t do it like this then I will never get it out. Please be kind on your comments and ratings!

For a more thorough discussion of NBO analysis please check out the references.

Requesting an NBO population analysis on the route section of a Gaussian job (via the simplest option pop=nbo) generates a lot of information on the output file which sometimes is not too straightforward to read. Please refer to previous posts in this blog (all under the NBO category) for more info on NBO calculations. The first part of this post deals with the analysis of the default information obtained from an NBO calculation; the second part deals with some useful/popular options of the NBO analysis which are controlled through the pop=nboread keyword available in NBO3.1 which is the version incorporated in Gaussian.

### pop=nbo

Perhaps the most common issue when reading NBO results is making sense of the hybridization shown. Take the example below as taken from the NBO manual for Methylamine:

(Occupancy)   Bond orbital/ Coefficients/ Hybrids

————————————————————-

1. (1.99858)  BD  (1)  C 1 – N 2

(40.07%)    0.6330*  C1 s(21.71%)p 3.61(78.29%)

-0.0003  -0.4653  -0.0238  -0.8808  -0.0291

-0.0786  -0.0110  -0.0000  -0.0000

(50.93%)     0.7742* N  2  s(30.88%)p 2.24(69.12%)

-0.0001  -0.5557  0.0011  0.8302  0.0004

0.0443  -0.0098  0.0000 0.0000

The first line shows the occupancy (between 0.00 and 2.00 electrons), then the label of the NBO (BD = Bonding (2 centers); CR = Core (1 center); LP = Lone pair; RY = Rydberg; BD* = Antibond), after that a ‘serial number‘ which corresponds to the connectivity (or idealized bond index between the atoms, i.e., single double triple bond), and finally the atom(s) to which the NBO belongs.

The next line describes the natural atomic hybrids of which the NBO is composed, giving the percentage (100|cA|^2) of the NBO on each hybrid (40% the C hybrid orbital and 60% the N hybrid orbital), the polarization coefficient cA (Nitrogen is more electronegative than Carbon, hence the polarization coefficients look like 0.633 for C and 0.7742 for N, i.e. this NBO is more polarized towards N), the atom label (self explanatory) , and a hybrid label showing the sp^x composition: for the C hybrid orbital it is sp^3.61 while for the one on N is sp^2.24. The number in parenthesis is just the percentage in composition of the hybrid (75%p and 25%s corresponds to an ideal sp^3 hybridization) Now, for the tricky part: Sometimes you’ll get numbers larger than 3 for an sp^x hybrid or even s^yp^x hybrids (for y>1 and x>3), this has to do with the basis set employed and the number of functions used to describe each atomic orbital. (EXAMPLE SOON, IM LAZY)

Below the hybridization we find the set of coefficients that specify how the NHO is written as a linear combination of Natural Atomic Orbitals. The previous NHO for C has the largest coefficients from the second (-0.4653) and fourth (-0.8808) natural atomic orbitals, corresponding to a rough description like: NHOc = -0.4653(2s)c -0.8808(2px)c

To control the options in the Natural Bond Orbital population analysis the line \$NBO keywords \$END must be included at the end of the input file (after the infamous blank line located after the molecule specification)

Wiberg bond indexes

This is a feature I use a lot when dealing with adducts with closed shell molecules. It is achieved through the BNDIDX keyword. Two indexes are obtained: The Wiberg bond index which is presented as a matrix; and the Wiberg bond index total which is the summation of all Wiberg indexes for every atom. The latter index roughly resembles the number of covalent bonds each atom forms. When analyzing this total index on a given atom, it should be compared to a well defined one in another part of the molecule just to make sure that all numbers are reflecting the same trends. Wiberg’s is not the only bond index provided by NBO analysis: the BOAO keyword generates bond index on the basis of the natural atomic orbitals.

Some common errors and possible solutions

->> Concerning NBO Deletion analysis

***** WARNING ***** The variational principle has been violated and the above deletion energy is invalid!!

This usually caused by one of the following:

1) Wavefunction symmetry breaking: Use the Nosymm option on the route section of your input file.

2) The use of DFT methods: Strong deletions often lead to densities that derail the density functional.  Safest is to use HF, where the variational theorem can be counted on, and
DFT artifacts are averted.  The FIXDM keyword (available only in NBO 5.0) may also correct some numerical problems associated with large basis sets

3) Deletion of some degenerated orbitals which breaks the symmetry of the wavefunction. Sometimes it could be that although there are no formal degenerate states accidental degeneracies might occur, deletion of which will cause this error.

->> Also on NBO Deletion Analysis

************************************************
** ERROR IN INITNF. NUMBER OF VARIABLES ( 57) **
**  INCORRECT (SHOULD BE BETWEEN 1 AND 50)  **
************************************************

This is one weird error. I have solved it by changing the molecule specification from Z-Matrix to Cartesian coordinates. Also, if you are running a DFT calculation in an older revision of Gaussian 03, try using the IOp(5/48=10000). Later revisions of Gaussian 03 and the more recent Gaussian 09 claim to have fixed this problem.

->> NBO Analysis

WARNING: Population inversion found on atom X#

This is not a problem! NBO lists orbitals within each atom according to their energy and their population afterwards. This warning only states that some low energy lying orbitals are less populated than others with higher energy. It cannot be “fixed” since this is a natural consequence of the orthonormalization process of the NBO generation.

References

NBO5.0 Home. Site of the creator of NBO and NBOView (Dr. Frank Weinhold)

FAQ‘s on NBO Home. I can’t recommend it enough!!!

Population Analysis Keyword in Gaussian