#178 higher than d orbitals in MOs

closed
nobody
5
2010-09-01
2010-06-18
No

I was wondering whether it would be possible to have Jmol display MOs from quantum programs that are higher than the d orbitals.
I understand that currently Jmol ignores those oribitals so as long as an orbital one looks at doesn't have much f (g, h, i) contributions it should not affect the visual part much, but I wonder whether that is something that could be added without too much trouble...

Discussion

  • Bob Hanson

    Bob Hanson - 2010-06-18

    Jmol handles up through F orbitals. Hard to believe there's a significant visual contribution from G,H,I. Examples?

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    Sorry about the mistake. I knew it does f's :-).

    Without being able to visualize the orbitals with and without the g (and higher) AO contributions it is hard to say whether the effect is large or not. You may be right indeed that it will not, but it would be nice to be able to see g orbitals even if they only contribute to virtual orbitals (like the Sn example I provided for the spherical/cartesian tests.

    I was wondering whether it may be (for you :-) and easy extension to what is already available. If it is then forget that I asked, if you would like to consider I think it would be a nice feature (that is why I posted it with feature requests).

    I'll talk to one of the students here who does some Sn calculations that involve g orbitals in the basis set to set up a calculation to get a g03 ouput file for that.

     
  • Bob Hanson

    Bob Hanson - 2010-06-18

    I think you just have to run the calculation with and without G orbitals to see what difference it makes. It's not a huge amount of code, but I don't know what the functions are, so it would definitely take some effort -- If you want to implement it, you certainly are welcome to. Good student project!

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    zipped tarbal of tm_sna.log

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    zipped tarball of tm_snb.log

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    I think I just lost my long message I was typing here.. Sigh... So here I go again.
    I just ran two calculations for Sn(CH3)4 (tm_sna.log with Sn as the first atom and tm_snb.log with Sn as the last atom) with NBO analysis.
    tm_sna.log has for NBO 82 a Rydberg state with 1.1239 AO contribution to the NBO. tm_snb.log has the same one as NBO 130 both for the last model in the structure). Loading these with filter "NBO" and doing a 'model last' then allows for
    tm_sna.log: MO 82 : see the Ry*(53)Sn, which looks like just an s orbital on a carbon, because no g-orbital contribution shown. That is misleading :-)
    tm_snb.log: MO 130 : shows no orbital whatsoever! Not even a label (I think that this is a bug?) MO 129 shows nicely the f-orbital, though.

     
  • Bob Hanson

    Bob Hanson - 2010-06-18

    ah, SO tricky... OK, so if you have two different sequences in the reader -- in this case Gaussian and NBO, then the sequence has to be tied to the orbital, not the collection of orbitals. Ah, so tricky!....

     
  • Bob Hanson

    Bob Hanson - 2010-06-18

    ok, that's taken care of. There was an additional bug in the NBO reader that was not checking for orbital type when the atom number was < 10. While this is tricky, I still contend it's way easier than having each reader re-organize it's MO coefficients on the fly. Especially for large numbers of orbitals like this. Just have to be careful! Please check it out, Rene.

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    I'll check it out.
    By the way, I wasn't disagreeing with you on your approach of not having each reader do the orbital reshuffling (which I may have started when I believe the qchem reader was the first one to have the orbital ordering different than gaussian). I was just having a hard time following all the intricacies of what you set up :-).

     
  • Rene Kanters

    Rene Kanters - 2010-06-18

    I just checked out the new version and am a bit surprised now that there are a bunch of NBOs that do not show anything, e.g., from tm_sna.tgz (filter "NBO" loaded) in the last model if you do MO 82 you won't see anything, all the way up to 99. At 100 it starts showing orbitals again. Is this because of the large g contributions? If so, maybe at least the mo label should show up with some kind of visual warning?

     
  • Bob Hanson

    Bob Hanson - 2010-06-19

    Sure - and I'm not suggesting what I implemented is the best solution, either. The basic idea is this (just modified yesterday). Originally the readers read the basis functions, saving either slater parameters or gaussian shells, depending upon the type of calculation. Then, in addition to that, the readers read the MO coefficients. You had managed to get the QChem reader to re-order its MO coefficients and basis shells, but that turned out to be way too complicated in terms of generalizing, so I decided instead to opt for just reading the file data as is, but also providing a set of int[] arrays that particularly for D and F shells indicates the mapping of MO coefficients to Jmol-expected (Gaussian) order.

    While each reader in principle could just provide this array, I saw that as being error-prone from a maintenance point of view.

    So instead I have the readers simply producing the list of D and F labels as found in the file and then also provide lists (DC_LIST, DS_LIST, FC_LIST, FS_LIST) that also list these in Jmol/Gaussian order. (Realize that when reading NBO output within Gaussian files, even there the orbitals need re-ordering.) That way I don't have to remember how the mapping works; I just have to make sure that any reader is making that list. Then BasisFunctionReader has a method getDFMap that creates the needed dfCoefMaps[][] array elements.

    For readers such as PSI, which don't provide any label information in their MO coefficient lists, I guess we would just have to find out what that ordering is and create the dfCoefMaps[][] arrays ourselves. But others are simpler -- just get the list of D and F orbitals found in the file and pass them on.

    The added complication that some files, such as Gaussian with NBO included, have two DIFFERENT orders. This was causing the problem with those Gaussian files you sent. I caught on to that yesterday, and now the way it works is that the dfCoefMaps[][] array is stored in the individual MO Hashtable, not the overall one for the model. This seems to work well.

    In addition, I had a mistake in how Jmol found the orbital label, and that was causing the first/last atom Sn problem that you observed.

    I'm pretty sure that is going to work now. All the NBO bond orbitals I looked at looked fine.

    Like you say, except for the very high virtual orbitals, I don't think having the G orbitals in there could make much of a difference in visualization -- at least that's what I'm told. The coefficients are just too small.

    Bob

     
  • Bob Hanson

    Bob Hanson - 2010-09-01
    • status: open --> closed
     

Log in to post a comment.