Natural Bond Orbitals (NBO) Visualization with Chemcraft

It’s been a long time since I last posted something and so many things have happened in our research group! I should catch up with them in short but times have just been quite hectic.

I’m glad to publicly thank Prof. Frank Weinhold’s gesture to include this blog in the bibliography section of the new NBO6.0 website under the NBO-Related Websites tab.

Here is a contribution from Igor Marques at the University of Aveiro in Portugal (Group Website); the original text can be found as a comment in the original NBO Visualization post but it is pretty much the same thing you can find in this post. Here is a link to Chemcraft’s website. Thanks for sharing this, Igor!

=> Examples provided by Igor Marques used Chemcraft Version 1.7, build 365 <=

In the Gaussian input, with the NBORead option included under the population keyword, we should include the PLOT option as illustrated below. The gfoldprint keyword will print the basis set to the output file in the old G03 format. Some visualization programs require a certain format of the basis set to be printed to the output file in order to plot orbitals and other surfaces like the electron density; therefore, if you want to play safe, use gfoldprint, gfprint and gfinput in the same line. gfprint will print the basis set as a list but in the new G09 format, whereas gfinput will print the basis set using Gaussian’s own input format. (The used level of theory and number of shared processors are shown as illustrations only; also the Opt keyword is not fundamental to the visualization of the NBO’s)


#P b3lyp/6-311++g** Opt pop=(full,nboread) gfoldprint 

0 1
molecular coordinates

this will generate files from *.31 to *.41
For the visualization of NBOs, you’ll need FILE.31 and FILE.37. Open FILE.31 from chemcraft. It will automatically detect FILE.37 (if in the same directory).

Tools > Orbitals > Render molecular orbitals

select the NBOs of interest (whcih are in the same order of the output),

Adjust settings > OK

On the left side of the window, select the NBO of interest and then click on ‘show isosurface’. Adjust the remaining settings. To represent another orbital, click on ‘keep this surface’ and then select another orbital from the rendered set and follow the previous steps.

Some Considerations:

> It’s possible to open a formated checkpoint file, containing the NBOs, in chemcraft.
Gaussian input:

#P b3lyp/6-311++g** Opt pop=(full,nboread,savenbo) gfoldprint 

0 1
molecular coordinates

the procedure is identical, but it is only necessary to read the *fchk file and then render the desired orbitals.
However, two problems might arise:
a) Orbitals in the checkpoint are reordered, thus requiring some careful inspection of the output.
b) Sometimes, for a larger molecule, the checkpoint might not be properly saved and the Gaussian job (as previously reported – ) will end with:

Failed in SchOr1 in NBStor.
Error termination via Lnk1e in /data/programs/g09/l607.exe at Wed Mar 6 15:27:33 2013.


As usual, thanks to all for reading/commenting/rating this and other posts in this blog!

About joaquinbarroso

Computational and theoretical chemist in his early forties, in love with life, science, baseball, and literature. Science literacy makes us responsible citizens, it is therefore a scientific duty to talk, write, and engage with the general public; as Feynman said, if you find science boring, your learning from the wrong teacher. "Make like a molecule and react!"

Posted on March 6, 2013, in Computational Chemistry, Models, NBO, NBO, Software, Theoretical Chemistry, Visualization, White papers and tagged , , , , , , , , . Bookmark the permalink. 14 Comments.

  1. joaquin, many thanks for featuring/upgrading my comment to a blog post. i feel honored!

    just to make it clear, i was running out of space in my laptop’s harddrive, hence that PS on the original comment. you can safely not mention that! 😉
    i should really stop using sarcasm/puns in my speech. :/

  2. Dear joaquin, thanks for valuable informations. I have used gaussview for visulization of NBO. Exactly, Chemcraft is more easy than gaussview. But I have a question. I want to show second order perturbation analysis(E2 value), orbital occupancies and energies in the same table. So I need to know that are the NBO orbital numbers of the chemcraft table same in those of second order perturbation analysis in gaussian output file?.
    Thanks in advance…

    • turker,

      if you use FILE.31/FILE.37, your visualized orbitals will follow the order of the output.

      on the other hand, using a filename.fchk implicates looking at the bottom of your output file and figuring out the new numbering of the orbitals, which are sorted by occupied and unoccupied and then, within each set, energy sorted.

      the bottom of the output file will look like:

      Sorting of NBOs: 24 29 21 19 20 22 18 23 25 27
      Sorting of NBOs: 28 26 8 10 6 7 1 13 32 34
      Sorting of NBOs: 12 11 5 17 15 16 3 2 4 9
      Sorting of NBOs: 14 31 30 35 33 237 232 194 236 74
      Sorting of NBOs: 80 39 230 224 234 235 238 240 226 225
      Reordering of NBOs for storage: 24 29 21 19 20 22 18 23 25 27
      Reordering of NBOs for storage: 28 26 8 10 6 7 1 13 32 34
      Reordering of NBOs for storage: 12 11 5 17 15 16 3 2 4 9
      Reordering of NBOs for storage: 14 31 30 35 33 237 232 236 230 224
      Reordering of NBOs for storage: 234 235 238 240 226 225 239 228 227 233

      Labels of output orbitals: CR CR CR CR CR CR CR CR CR CR CR CR BD BD BD BD BD BD LP LP
      Labels of output orbitals: BD BD BD BD BD BD BD BD BD BD BD LP LP LP LP BD* BD* BD* BD* BD*
      Labels of output orbitals: BD* BD* BD* BD* BD* BD* BD* BD* BD* BD* BD* BD* RY* RY* RY* RY* RY* RY* RY* RY*
      Labels of output orbitals: RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY*
      Labels of output orbitals: RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY* RY*

      this is not a very friendly format :\
      ‘Sorting of NBOs’ has 10 columns,
      ‘Reordering of NBOs for storage’ also has 10 columns,
      ‘Labels of output orbitals’ has 20 columns.

      for instance, if you want to represent the LP 32 and the BD* 228, in chemcraft render window you’d have to select orbitals 19 (look at the second line of ‘reordering’ and first line of ‘labels’) and 48 (look at the fifth line of ‘reordering’ and third line of ‘labels’)

      i highly recommend using the FILE.31/FILE.37 approach! 😉

  3. ruediger sens

    Hola hombre,

    Estoy estudiando tus consejos con allegria, amigo mio. Yo soy un chimico quantico digamos “de la escuela antigua” et un chimico physico. Gran trabajo de tu parte!

    saludos cordiales: Rüdiger (aleman)

    PS1: mi espanol ya no es lo mejor…

    PS2: Trato de mejorar la qualidad de technicas semiempiricas en el campo de colorantes et pigmentos…functiona mejor que pensaba….

  4. Thanks for the update Joaquin

  5. Dear joaquin
    Thanks for this valuable information. i am not cleared about keywords. could you please tell me which keywordsi should use for Gaussian?
    is it necessary to optimize the structure in order to visualize the orbitals can i use already optimize structure?

  6. Buenas tardes profesor Joaquín. He seguido a cabalidad este instructivo, pero al intentar abrir los archivos en Chemcraft obtengo el error: list index out of bounds (0). Si alguien de la comunidad o el profesor tiene indicios para resolver este problema quedo atento. Gracias

    • Hola Jhon,

      Ya habíamos tenido esa pregunta aquí en el blog pero no creo que hayamos encontrado una respuesta completa. Si me das más detalles sobre el trabajo que estás realizando me sería más fácil ayudarte.


  7. Hola Joaquín

    Gracias por tu post. Estoy tratando de analizar los orbitales NBO de una molécula relativamente simple. Estoy usando G09 en windows, por lo que según entiendo el programa NBO es NBO3. Siguiendo este post he logrado generar los archivos file.31 a file.37 pero al abrirlos en Chemcraft, los números de los NBO siguen sin corresponder a los orbitales canónicos de la molécula. Por ejemplo en un caso el orbital canónico MO es claramente un pi* y en NBO siguiendo esta metodología me muestra un par no enlazante. NBO y MO no corresponden.

    Según he visto es un problema relacionado a la manera en que el programa NBO numera los orbitales en el archivo chk. Esperaba que se resolviera añadiendo el keyword “PLOT” y visualizando en chemcraft.

    ¿Alguna recomendación? ¿Se debe quizá a la versión del programa NBO incluído en Gaussian?

    Saludos y gracias de antemano

    • Estimado Pablo,

      La numeración siempre va a ser diferente entre NBO y los canónicos, entre otras cosas porque el ordenamiento no solo va por energía sino por ocupación. No creo que haya forma de hacerlos corresponder, ni siquiera al cambiar a NBO7.0, puesto que al final del día hay una transformación de los orbitales (reortonormalización) para hibridizarlos y construir con ellos los NBO. Personalmente, creo que se pueden hacer descripciones simultáneas sin necesidad de encontrar esa correspondencia numérica, a veces las dificultades surgen cuando los orbitales que no corresponden son los de frontera (HOMO – LUMO).
      Supongo que el procedimiento descrito con el archivo .37 debe tener sus límites, sobre todo cuando el criterio energético y el criterio de ocupación tienen demasiado conflicto.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: