The Natural Bond Orbitals Deletion analysis provides an excellent approach to the assessment of bonding energy within a single molecular fragment or between many. It deletes specific elements of the Fock matrix (this means it sets their values to 0.000) and then re-diagonalizes it in order to find the difference in energy respect to the original matrix. About nine different kinds of deletions are available, which will be briefly summarized in the following section.
One of the main strengths of the NBO derived methods is their almost complete basis set independence, which allows us to obtain comparable numbers under different levels of theory.
Both G03 and G09 use the NBO3.1 program. The 5.0 version is sold separately by their creators, namely prof. Frank Weinhold, who can be contacted through their website. It’s not available for geometry optimizations (gradients), some people insist on trying to get a different geometry by eliminating a certain interaction and that is just not possible directly with the NBODel method It is indeed possible to perform NBODeletions along with optimizations in G09 (Thanks to prof. Weinhold for his clarifying message) but there are some restrictions: molecular coordinates should be in Z-Matrix format and the number of variables to be optimized should not exceed 50; prof. Weinhold also recommends to use print=0 in the $NBO keylist in order to prevent the output files to become too big. Be sure to start with a proper geometry (close to the desired minimum) since given the nature of this analysis some apretiable geometry effects are to be expected.
The general syntax for its usage includes the string pop=NBODel in the route section of the GaussianX input file. Then, at the end of the file, the following is required:
--End of Input File-- --blank line-- $NBO $END $DEL Interactions to be deleted $END
ENTIRE BLOCKS OF ATOMS
In this kind of deletion one is able to delete all the elements between specific groups of atoms, as if their orbitals (and hence their common Fock elements) did not overlap.
--End of Input File-- --blank line-- $NBO $END $DEL ZERO 2 ATOM BLOCKS 2 BY 3 1 2 3 4 5 3 BY 2 3 4 5 1 2 $END --blank line--
The first line after $DEL indicates how many groups of atoms will be set to zero and the following lines indicate how many atoms belong to each group (i.e. the size of each block which in this case are 2 and 3, respectively). After this line the groups of atoms are listed, in this example all elements from atoms 1 and 2 with those of atoms 3, 4 and 5 will become zero. The next three lines are used for symmetry, so all the interactions from (1,2)->(3,4,5) are deleted along with (3,4,5)->(1,2)
DELETIONS BETWEEN ENTIRE MOLECULAR FRAGMENTS (Intermolecular deletions)
If we want to assess the interaction energy between two molecules, the previous method would consume a lot of time in declaring the size of each block with every atom of each molecule in it, plus there seems to be a limit to the size of the block. In this kind of deletion one is able to delete all the elements between two or more molecular fragments.
--End of Input File-- --blank line-- $NBO $END $DEL ZERO 2 DELOC FROM 1 TO 2 FROM 2 TO 1 $END --blank line--
The delocalizations can also be calculated only in one direction (FROM 1 to 2), in the case above both interactions 1->2 and 2->1 have been deleted. The input for a trimer in which all three fragments interacted with each other would look like this:
ZERO 6 DELOC FROM 1 TO 2 FROM 2 TO 1 FROM 2 TO 3 FROM 3 TO 2 FROM 1 TO 3 FROM 3 TO 1
In short, the number of bilateral delocalizations to be deleted is equal to twice the number of edges in a graph depicting the intermolecular interactions (A post on topology in chemistry is now due).
Reading the output file
Almost at the very end of the output file the following section can be found:
>>>>>>>>>> Convergence criterion not met.
SCF Done: E(RHF) = -4728.57245403 A.U. after 2 cycles
Convg = 0.2354D-03 -V/T = 2.0012
——————————————————————————
Energy of deletion : -4728.572454034
Total SCF energy : -4728.604640956
——————-
Energy change : 0.032187 a.u., 20.198 kcal/mol
——————————————————————————
The warning about the convergence can be disregarded without any concern about the accuracy of the outcome and it will show in every $DEL calculation. The SCF energy displayed in the second line is the energy corresponding to the modified Fock Matrix, which is the same as the one labeled as Energy of deletion. The Total SCF energy corresponds to the original Fock Matrix; the difference between them is labeled as Energy change and the value is reported in both atomic units as well as kcal/mol.
Some common errors and possible solutions
–> Sometimes you get the following error message at the beginning of the calculation making it crash:
************************************************
** ERROR IN INITNF. NUMBER OF VARIABLES ( 57) **
** INCORRECT (SHOULD BE BETWEEN 1 AND 50) **
************************************************
I have found that changing the molecule specification section from Z-matrix to Cartesian coordinates, or vice versa, overcomes this difficulty. Also, if the Opt keyword appears in the route section the previous message will be shown. Opt is not available under the NBODel method (read the first paragraph for the proper correction).
–> Possible conflicts between NBODel and the usage of DFT methods:
In some revisions of Gaussian 03 there is a conflict when using NBODel and DFT methods. The IOp(5/48=10000) should be included to repair such conflict. This issue was solved in some revision of Gaussian 03 but I don’t know which, so try this if you have problems. Gaussian09 has taken care of the issue although still the usage of DFT to obtain NBODel calculations is not advised.
–> The following error is not self-explanatory:
NtrOpn-Old failed
Error termination via Lnk1e in ‘/../../path’
This particular error arises from the absence of the ‘$NBO $END’ line before the $DEL instruction. The previous line may or may not include additional keywords. If you are interested in computing some kind of deletion energy just leave the line as presented above in all previous examples. My guess is that the $DEL instruction does not calculate the corresponding NBO’s from which to make the deletion but it rather takes all the results from the $NBO instruction and works from there. Bottom line: don’t forget this line!
As with other posts tagged as ‘white papers’, this one will be updated and expanded every time new information is found. In the mean time, thanks to everyone for reading, commenting and rating, this keeps me going with the blog. Have you encountered problems with NBODel methods? share your experiences and solutions with the rest in the comments section.
Have a nice day!
Hi Joaquin,
Quick comment. As far as i know NBODEL is also available with the opt Option.
I just saw it in the $DEL tutorial in the NBO 5 software. This should apply only to Gaussian since I think the NBO software does not do optimizations, is that correct? Anyway in the tutorial they mention the opt keyword in order to know how the structure is affected by deleting certain orbitals.
Thanks for the post.
Hi Henry,
So sorry for the lateness of my reply. You are right, and the post has been corrected. You can use the opt option along with NBODEL provided you are only optimizing 50 variables or less. The use of ModRedundant along with some constraints (freezing of variables) would be recommended.
Thanks for commenting!
Hi Joaquin,
Good Job, and… my quick question!: ¿ How is this method (NBOdel) compared with counterpoise (to low the Basis Set Superposition Error), deleting molecular fragments “manually” (intermolecular deletions)? similar results? counterpoise worse, better?
* Thanks for the tips.
Hola Mario,
Thanks for your kind words. About your question: These are two different things that tend to, at least qualitatievely (comparatively if you may), evaluate the same: The interaction energy between two molecular fragments (that may or may not be bonded). However NBODel is more quantum in nature since you eliminate some elements from the FMatrix and (if lucky) you may find the eigenvalues to this new matrix. With Counterpoise (BSSE) you evaluate an artifact generated by the very nature of the computations: you explore the possibility of having 1 molecular fragment to which you will expand the basis set (with that of another ghost molecule) and see how the energy changes; you do the same for fragment 2.
So, as you can see they are two different methods to calculate things that related but not the same. In my opinion it is a good option to do both, specially BSSE when you use a large basis set with many diffuse functions and then you can use the corrected energy as a baseline for the NBODel evaluation, i.e. you can substract the BSSE from the NBODel energy for more accurate interaction energy results.
I hope this helps! Have a nice day
PS I think I will write a post on this, thanks for the idea 🙂
Hi Joaquin,
I am using the NBO in the Pop option of Gaussian09. But I am having problems with it becuase for the program asks for orbitals (for example the d orbital Barium) that have been supplied via a pseudoptential specdification. The SDF54 for Ba in this case. Do you have had some problem simmilar to this one?
Thanks in advence,
Raul.
Hola Raul!
Perhaps you supplied only the pseudopotential but not the corresponding basis set in the input file. Could you copy it (without the molecular coordinates) here so I can take a better look?
I hope this helps!
I’m using G09 for transition state modeling and came into the INITNF error message. Your suggestions helped alot and I was able to get my transition state calculation to run in MP4(SDQ) with the 6-311g basis using FOpt=(QST3,Cartesian). Just wanted to share because I know how frustrating this can become.
I’m glad you succeeded in your calculations!
Hola Joaquín! cómo estás? Probe todas las combinacione posibles y no logro visualizar correctamente los orbitales NBO. Te paso la ruta que uso asi podes asesorarme mejor:
#p B3LYP/6-311++G(d,p) scf=tight integral=ultrafine pop=nbodel iop(5/48=10000) nosymm test
y al final…
$NBO $END
$DEL
nostar
$end
En que parte de la ruta iría “savenbo”. Aguardo tu respuesta, muchas gracias.
Saludos!
Hola Mariana,
Iría en la misma sección de pop. Algo así como pop=(nbodel,savenbos) para guardarlos al chk y recuperarlos del fchk.
Espero que te sirva!
Saludos!
muchas gracias Joaquín. Sigo luchando con esto, pero me sale error de sintaxis con pop=(nbodel,savenbos), y cuando uso la combinación pop=(ful,nbodel,savenbo) dice que es “ambiguo”… larga el cálculo pero luego no puedo generar las superficies con el chek.
Perdon por las molestias. Un saludo!!! 🙂
Hi Joaquin,
I am doing Natural Bond Orbitals Deletion analysis and it shows this error.
HESSIAN DOES NOT HAVE THE DESIRED LOCAL STRUCTURE
TAKING SIMPLE RFO STEP
SEARCHING FOR LAMDA THAT MINIMIZES ALONG ALL MODES
*****************************************
*** UNABLE TO DETERMINE LAMDA IN FmD114 **
*****************************************
For this calculation, I have taken the optimized geometry before deleting a particular orbital interaction.
Can you help me solving this error?
Dear Sana,
This message is related to a FREQ calculation done with the ‘eigenvector following’ which is used for methods without analytical gradients.
If you need the Hessian analysis (frequencies), try a different starting geometry. If you only need the DEL analysis then omit the FREQ keyword. You may perform them separately.
I hope this helps
Hola doctor joaquin barroso quisiera saber si se puede utilizar el NBODel para moléculas grandes; El caso de un fragmento de un polímero que tiene interaccion con una fenilmaleimida.
Lo estoy aplicando pero el calculo no termina y aparece en la ultima linea del archivo lo siguiente: Leave Link 601