10
$\begingroup$

I have a question about the basis functions of Gaussian. When the basis function is set (e.g., 6-31G), I would like to know the specific value of Gaussian's parameters for each atom.

In particular, I would like to know the value of $\zeta$ (i.e., the orbital exponent) in $\exp(-\zeta r^2)$, where $r$ is the distance. Is this fixed or optimized in the energy minimization process?

$\endgroup$
2
  • 1
    $\begingroup$ +1 but please try to limit each post to one question. Questions about the "shielding effect" can be asked separately if the answers below don't provide you with enough! $\endgroup$ Dec 17, 2021 at 14:44
  • $\begingroup$ Thank you for the advice. I'll ask the question about the shielding effect next time. $\endgroup$
    – neco
    Dec 18, 2021 at 14:27

4 Answers 4

10
$\begingroup$

Go to Basis Set Exchange and click on the elements in which you're interested, then click the basis set in which you're interested (in your question, you mentioned 6-31G) and then for "Format" you can choose "Gaussian" or any of various other programs. After all that, when you click "Get Basis Set" you will get the basis set parameters for those elements, for the specific basis set you chose, and in the format you chose.

Here's the basis set parameters for H, He, and Li for 6-31G in Gaussian format (which I obtained by following my above instructions):

H     0
S    3   1.00
      0.1873113696D+02       0.3349460434D-01
      0.2825394365D+01       0.2347269535D+00
      0.6401216923D+00       0.8137573261D+00
S    1   1.00
      0.1612777588D+00       1.0000000
****
He     0
S    3   1.00
      0.3842163400D+02       0.4013973935D-01
      0.5778030000D+01       0.2612460970D+00
      0.1241774000D+01       0.7931846246D+00
S    1   1.00
      0.2979640000D+00       1.0000000
****
Li     0
S    6   1.00
      0.6424189150D+03       0.2142607810D-02
      0.9679851530D+02       0.1620887150D-01
      0.2209112120D+02       0.7731557250D-01
      0.6201070250D+01       0.2457860520D+00
      0.1935117680D+01       0.4701890040D+00
      0.6367357890D+00       0.3454708450D+00
SP   3   1.00
      0.2324918408D+01      -0.3509174574D-01       0.8941508043D-02
      0.6324303556D+00      -0.1912328431D+00       0.1410094640D+00
      0.7905343475D-01       0.1083987795D+01       0.9453636953D+00
SP   1   1.00
      0.3596197175D-01       0.1000000000D+01       0.1000000000D+01
****

In the above data, for each row, the first number is the exponent, and the rest of the numbers in that row are the contraction coefficients.

I also host an open-source basis set repository which is easy for any member of the public to edit, though the exponents and contraction coefficients are in GENBAS format (the format used by at least ACES, CFOUR, and MRCC) instead of Gaussian format; but in this format it might be clearer to see what's going on (and you can see all basis sets at the same time without clicking anything or worrying about new windows popping up). For the H atom, the same basis set as above, is displayed this way:

H:6-31G-EMSL
EMSL 30_08_2019

  1
    0
    2
    4

0.1873113696D+02  0.2825394365D+01  0.6401216923D+00  0.1612777588D+00

0.3349460434D-01  0.00000000
0.2347269535D+00  0.00000000
0.8137573261D+00  0.00000000
0.00000000        1.0000000
  • The first line is the name of the basis set which the electronic structure software will use in order to know where in the file to look
  • The next line is a comment, to give you more information about the basis set without affecting calculations in any way (in this case I put "EMSL 30_08_2019" to indicate that I got the basis set from EMSL on that date).
  • Next we have an integer telling us how many types of basis functions we'll use (s-type, p-type, etc.).
  • The following three integers in this example are 0 2 4, to indicate the number of exponents and contractions for s-type (hence the 0) basis functions.
  • Next we get the 4 exponents: 0.1873113696D+02 0.2825394365D+01 0.6401216923D+00 0.1612777588D+00
  • The rest of the numbers tell us about the contraction coefficients.

If you find the Gaussian format confusing, you can always check the corresponding numbers in the GENBAS format, which organizes it differently (and vice versa if you're confused about the GENBAS format). You can see that the exponents and contraction coefficients in the Gaussian-formatted basis set from Basis Set Exchange are the same as in my GENBAS file, for which I've given what I hope to be clear and thorough explanations for what each part represents.

$\endgroup$
6
  • $\begingroup$ You can also get basis sets from the Basis Set Exchange in the ACES / CFOUR / MRCC formats, as well. $\endgroup$ Dec 18, 2021 at 3:54
  • $\begingroup$ @SusiLehtola Very true, I mentioned my GENBAS file because of its ease of editing, although maybe the new BSE site is easier to add our own basis sets compared to the old one. There was a time when my GENBAS file had the 7Z, 8Z, 9Z and 10Z basis sets and BSE only had up to 6Z, largely because I didn't know how to contribute what I had, to their website. But I understand that a lot of these have been added to BSE since then. $\endgroup$ Dec 18, 2021 at 7:57
  • $\begingroup$ Thank you for the detailed answer! I believe that some exponent values seem to be very large, e.g., 0.6424189150D+03 (does D mean E? That is, 0.64E+3 = 640.0?). But this may be another question and I will ask this as another question next time. $\endgroup$
    – neco
    Dec 18, 2021 at 14:39
  • 1
    $\begingroup$ D and E are both $10^$ but one is for single-precision and one is for double-precision. You're right that some values can be quite large! $\endgroup$ Dec 18, 2021 at 18:02
  • $\begingroup$ @NikeDattani Could you maybe expand a bit on how to actually use the coefficients and exponents? I am currently working on my own implementation in python of HF-Theory and use BSE.org. Do you know whether the contraction coefficients provided by BSE are used for normalized primitive gaussians or non-normalized ones? Do you maybe also know a formua for then normalizing the contraction? $\endgroup$
    – lela2011
    Jul 16 at 12:32
6
$\begingroup$

As Nike noted in his answer, Gaussian (and most gaussian orbital based electronic structure programs) does use fixed orbital exponents throughout a calculation. These are either from previously designed basis sets that Gaussian stores (like the Pople or Dunning basis sets) or could be entered in manually using the Gen keyword.

These exponents are often obtained from an optimization using a single atom computation. This is often good enough to make a reasonable basis for a molecule composed of these atoms, but it could still be improved. It's possible to perform calculations where you do optimize these orbital exponents for the particular molecule they are in.

Gaussian provides a utility for this called gauopt which triggers multiple calculations starting from a template input file defining properties to be optimized. Depending on your programming savvy, you could also make a Python function that creates/runs Gaussian jobs given orbital exponents and you could pass this function to an optimization procedure like scipy's minimize.

This paper[1] describes the DiffiQult program, which can compute gradients of various parameters of an HF calculation using automatic differentiation. They demonstrated this with fully variational calculations on $\ce{H2O}$, where in addition to the MO coefficients, they also optimized the contraction coefficients and orbital exponents.

This idea of a fully optimized basis was looked at more extensively (and specifically for solid state systems) in [2], where they use a DIIS-like procedure to optimize all the basis parameters. They point out how optimizing the basis can lead to greater accuracy than would be expected for a fixed basis of the same (or even larger) size.

References:

  1. Tamayo-Mendoza, T.; Kreisbeck, C.; Lindh, R.; Aspuru-Guzik, A. Automatic Differentiation in Quantum Chemistry with Applications to Fully Variational Hartree–Fock. ACS Cent. Sci. 2018, 4 (5), 559–566. DOI: 10.1021/acscentsci.7b00586.
  2. Daga, L. E.; Civalleri, B.; Maschio, L. Gaussian Basis Sets for Crystalline Solids: All-Purpose Basis Set Libraries vs System-Specific Optimizations. J. Chem. Theory Comput. 2020, 16 (4), 2192–2201. DOI: 10.1021/acs.jctc.9b01004.
$\endgroup$
3
  • 1
    $\begingroup$ You might look at pubs.acs.org/doi/10.1021/acs.jctc.9b01004 as well $\endgroup$
    – Ian Bush
    Dec 17, 2021 at 14:51
  • $\begingroup$ I guess Tyberius did $\endgroup$ Dec 18, 2021 at 4:32
  • $\begingroup$ Thank you for the detailed answer and reference papers. I try to read them. $\endgroup$
    – neco
    Dec 18, 2021 at 14:44
5
$\begingroup$

A few points to add to Nike and Tyberius' answers.

Literature basis sets $R_{nl}(r) =\sum_i {d_i^{nl}} \exp (-\alpha_{il} r^2) $ indeed have fixed exponents $\alpha_i$ and contraction coefficients $d_i$. A great paper I just started reading is, for instance, the first paper on the development of the earlier Karlsruhe basis set series, J. Chem. Phys. 97, 2571 (1992). You can find over 600 Gaussian basis sets on the Basis Set Exchange.

Although work on system-optimized basis sets have been recently published in the articles cited by Tyberius but also by some of my collaborators and myself in arXiv:2110.11678 (and I think a few more recent works), the idea is quite old. I think its selling point is just as a "cool" demo for automatic differentiation. You don't really want to optimize the basis set for your system, since you don't know how it will affect the quality of your results. Even if your energy improves, your dipole moment may suffer since they are famously sensitive to diffuse functions that energy optimization doesn't favor. Also, it was shown already several decades ago that the optimization takes more time than just using a bigger basis set in the first place! [I am trying to remember the reference but I have to dig it up.]

addendum: the early days of quantum chemistry even used floating orbitals, so the idea of system adapted basis sets was obvious already in the 1960s.

addendum II: I finally found the reference for system-optimized basis sets I wrote about above. It took non-trivial effort to find, and this was not the first time I tried to dig it out again... I hope next time I'll be able to find it on here ;) The work by Tachikawa, Taneda, and Mori published in Int. J. Quantum Chem. 75, 497 (1999) discusses the "fully variational molecular orbital" (FVMO) method, in which the exponents and centers of the Gaussian basis functions are optimized.

$\endgroup$
3
  • $\begingroup$ +1 for adding some very useful points to the existing answers. I talked about exponents and contraction coefficients in my answer but now having the formula you gave, is a valuable addition. Also thanks for adding the links for those papers! $\endgroup$ Dec 18, 2021 at 7:50
  • $\begingroup$ Thank you for the answer. Actually, I didn't know the "contraction coefficients d" (I did know the coefficients in LCAO for molecular orbital). I will ask this question next time. $\endgroup$
    – neco
    Dec 18, 2021 at 14:53
  • $\begingroup$ Nice edit! I find this place to be useful for me to refer back to my answers sometimes, too. There's also a bookmark feature :) $\endgroup$ Dec 23, 2021 at 6:01
4
$\begingroup$

If you are using the software Gaussian, gfinput can print out the basis set coefficients/exponents. For more information, https://gaussian.com/gfinput/

One example is at http://www.ccl.net/cca/documents/dyoung/topics-orig/gaussian.html with a sample input

#n test rohf/sto-3g pop=full GFINPUT


O sto-3g triplet


0 3
O
$\endgroup$
4
  • 1
    $\begingroup$ +1. I'm giving you the upvote for the added information you've provided here, but with the hope that you might expand on it somehow to make it enough to warrant an answer rather than just a comment. Perhaps you could show it in action (sample input and output files). Perhaps you could explain what's in the link so that it's no longer a "link-only" type answer. $\endgroup$ Dec 18, 2021 at 7:52
  • $\begingroup$ Thanks. At the time of submiting the answer, I had 41 points. The stack exchange requires >=50 points for a comment. Perhaps I should have waitted longer. $\endgroup$ Dec 18, 2021 at 17:09
  • $\begingroup$ Understood, thanks very much for your contributions! $\endgroup$ Dec 18, 2021 at 17:11
  • $\begingroup$ About providing output file, my Gaussian access is at computing center, not sure if I should use it for non-working purpose. Gaussian output file contains CPU time, it may against the company's policy to release any performance information (the output has to be editted somehow) $\endgroup$ Dec 18, 2021 at 17:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.