Fun with basis sets and file formats

Hi,

I have spent most of the afternoon improving the debug output for the
GTO calculation code, and checking into an issue Michael spotted (thanks
for adding Molpro support too). We have three files that should
essentially give the same output now - Gaussian, Q-Chem and Molpro. The
only problem is that they do not agree!

http://avogadro.openmolecules.net/wiki/Basis_sets

As you can see, all of the exponents match (a). The contraction
coefficients © for Gaussian and Molpro are identical, but the Q-Chem
contraction coefficients differ quite significantly. The shape and size
of the isosurfaces produced using Gaussian and Molpro both look good,
but I still think that there is a problem with the scaling of the
Gaussian values that I need to look into more.

This is more a status update on the GTO code. I would like to produce
some reference cube files for each supported file type ideally, and then
add some unit tests. It seems like methane HF/6-31G is a reasonable test
molecule to use for this purpose. A cube rms deviation type value might
be the most appropriate method of comparison. We should expect some
variation between different packages due to convergence criteria etc,
but not that much with such a simple molecule/basis set as far as I can
tell.

Thoughts?

Thanks,

Marcus

On Fri, Apr 17, 2009 at 04:40:34PM -0400, Marcus D. Hanwell wrote:

I have spent most of the afternoon improving the debug output for the
GTO calculation code, and checking into an issue Michael spotted (thanks
for adding Molpro support too). We have three files that should
essentially give the same output now - Gaussian, Q-Chem and Molpro. The
only problem is that they do not agree!

http://avogadro.openmolecules.net/wiki/Basis_sets

As you can see, all of the exponents match (a). The contraction
coefficients © for Gaussian and Molpro are identical, but the Q-Chem
contraction coefficients differ quite significantly.

I can’t believe I missed that when I stared at methane.Fchk and the
MOLPRO output in comparison.

The shape and size of the isosurfaces produced using Gaussian and
Molpro both look good, but I still think that there is a problem with
the scaling of the Gaussian values that I need to look into more.

This is more a status update on the GTO code. I would like to produce
some reference cube files for each supported file type ideally, and then
add some unit tests. It seems like methane HF/6-31G is a reasonable test
molecule to use for this purpose. A cube rms deviation type value might
be the most appropriate method of comparison. We should expect some
variation between different packages due to convergence criteria etc,
but not that much with such a simple molecule/basis set as far as I can
tell.

Thoughts?

One thing to keep in mind is the difference in spherical vs. cartesian
d-orbitals - I think Gaussian uses 6 cartesian d-orbitals by default,
whereas MOLPRO uses 5 spherical d-orbitals.

This is not a concern for the above benchmark molecule, but might be a
problem later on (not sure what Avogadro assumes here). In fact, I
guess I need to fix the MOLPRO code to properly support d-orbitals; I
have not tested it with anything except methane yet.

Probably having a second benchmark molecule (or just methane with a
bigger basis set) so that orbitals with higher angular momentum can be
checked would be worthwhile.

Michael

Michael Banck wrote:

On Fri, Apr 17, 2009 at 04:40:34PM -0400, Marcus D. Hanwell wrote:

This is more a status update on the GTO code. I would like to produce
some reference cube files for each supported file type ideally, and then
add some unit tests. It seems like methane HF/6-31G is a reasonable test
molecule to use for this purpose. A cube rms deviation type value might
be the most appropriate method of comparison. We should expect some
variation between different packages due to convergence criteria etc,
but not that much with such a simple molecule/basis set as far as I can
tell.

Thoughts?

One thing to keep in mind is the difference in spherical vs. cartesian
d-orbitals - I think Gaussian uses 6 cartesian d-orbitals by default,
whereas MOLPRO uses 5 spherical d-orbitals.

This is not a concern for the above benchmark molecule, but might be a
problem later on (not sure what Avogadro assumes here). In fact, I
guess I need to fix the MOLPRO code to properly support d-orbitals; I
have not tested it with anything except methane yet.

Probably having a second benchmark molecule (or just methane with a
bigger basis set) so that orbitals with higher angular momentum can be
checked would be worthwhile.

The code I wrote for Avogadro handles both types of d-orbital already. I
have looked at Gaussian calculations that used both and it seems to work
reasonably. Like I said, it still looks like there is a scaling issue.
It could be useful to select a second simple molecule with less symmetry
too. Once I get some f-orbital code in I would also need a good test
with f in. I have been using benzene quite a bit recently, but as there
were so many methane molecules I thought it was worth adding a Gaussian
one too.

For the Molpro code you want to use D5 for the spherical case. Then
everything should be fine.