# p-orbitals in STO-3G basis set

I look at the STO-3G basis set for Carbon atom (downloaded from the basissetexchange.org) and I see one set of exponents and two sets of coefficients for the p-orbitals.

How do these exponents and coefficients match with the expressions for Gaussian primitives:

$$g_{\{x,y,z\}}(\alpha_{\{x,y,z\}},|\textbf{r}|)=(\frac{128\cdot \alpha_{\{x,y,z\}}^{5}}{\pi^{3}})^{1/4}\cdot \{x,y,z\}\cdot\exp(-\alpha_{\{x,y,z\}}\cdot r^{2})$$

I took a look at the original paper, but still miss it.

Thank you!

It will help slightly to look at the basis description as it is entered into Gaussian.

C     0
S   3   1.00
0.7161683735D+02       0.1543289673D+00
0.1304509632D+02       0.5353281423D+00
0.3530512160D+01       0.4446345422D+00
SP   3   1.00
0.2941249355D+01      -0.9996722919D-01       0.1559162750D+00
0.6834830964D+00       0.3995128261D+00       0.6076837186D+00
0.2222899159D+00       0.7001154689D+00       0.3919573931D+00
****


As you can, what is specified is not two sets of coefficients for p orbitals, but rather an 'sp' orbital. This is actually just an s and a p orbital that share the same exponents, but use different coefficients for the constituent gaussian functions. When the STO-nG basis sets were originally designed, it was considered too computationally intensive to independently optimize a set of exponents for the valence s and p orbitals. To avoid this cost, they optimized a single set of exponents that would be used for both, but still determined separate coefficients for each.

• +1. I had no idea GAUSSIAN makes it more compact if the S-type and P-type exponents are the same! It turns out NWChem, ORCA, GAMESS, CP2K, and a lot of other programs do that too. The data format in my answer is much less compact, but perhaps a lot more clear and "scalable". If the S, P, D, and F-type exponents were all the same, it would have to say SPDF on the left, and it doesn't generalize the way things do when using only numbers. – Nike Dattani Sep 21 '20 at 5:31

Just like the answer of Tyberius, I suggest looking at the basis set data in the format of a popular software, instead of the general JSON format which is what is in the link you gave us. While the GAUSSIAN format is more compact, I think it's even more clear in the CFOUR format, which is the same way the data is presented if you choose MOLCAS, AcesII, DALTON, DIRAC, deMon2K, TURBOMOLE, MOLPRO, and some other places:

C:STO-3G
STO-3G Minimal Basis (3 functions/AO)

2
0    1
2    1
6    3

0.2941249355D+01 0.6834830964D+00 0.2222899159D+00 0.7161683735D+02 0.1304509632D+02 0.3530512160D+01

-0.9996722919D-01 0.0
0.3995128261D+00 0.0
0.7001154689D+00 0.0
0.0              0.1543289673D+00
0.0              0.5353281423D+00
0.0              0.4446345422D+00

0.2941249355D+01 0.6834830964D+00 0.2222899159D+00

0.1559162750D+00
0.6076837186D+00
0.3919573931D+00


Let me now explain what everything means:

    2       # Number of types of functions (here we have S and P)
0    1  # Types of functions (0 = S-type, 1 = P-type)
2    1  # Number of contractions (2 S-type, 1 P-type)
6    3  # Number of primitives   (6 S-type, 3 P-type)


Then we have the 6 S-type primitives followed by 12 S-type contraction coefficients, but notice that 6 of the contraction coefficients are 0, so that we are left with only 3 contraction coefficients for 1s and 3 contraction coefficients for 2s. This is why it's called STO-3G: There's 3 primitives for each orbital.

So the 1s orbitals are:

\begin{align} \phi_{1s} &= c_{11} g_s(\alpha_1) + c_{21} g_s(\alpha_2) + c_{31} g_s(\alpha_3) + \color{gray}{c_{41} g_s(\alpha_4)+c_{51} g_s(\alpha_5)+c_{61} g_s(\alpha_6) }\\ \phi_{2s} &= \color{gray}{c_{12} g_s(\alpha_1) + c_{22} g_s(\alpha_2) + c_{32} g_s(\alpha_3)} + c_{42} g_s(\alpha_4)+c_{52} g_s(\alpha_5)+c_{62} g_s(\alpha_6), \end{align}

where $$\alpha_1,\alpha_2,\alpha_3,\alpha_4,\alpha_5,\alpha_6$$ are given in this line:

0.2941249355D+01 0.6834830964D+00 0.2222899159D+00 0.7161683735D+02 0.1304509632D+02 0.3530512160D+01


Then the $$c_{ij}$$ matrix of coefficients is:

-0.9996722919D-01 0.0
0.3995128261D+00 0.0
0.7001154689D+00 0.0
0.0              0.1543289673D+00
0.0              0.5353281423D+00
0.0              0.4446345422D+00


Because of the 0.0 entries, we actually only have 3 terms for 1s and 3 terms for 2s, which is why it's called STO-3G.

So now your question was about the P-type orbitals. The 3 exponents ($$\alpha$$ in your question) are:

0.2941249355D+01 0.6834830964D+00 0.2222899159D+00


and the 3 contraction coefficients are:

 0.1559162750D+00
0.6076837186D+00
0.3919573931D+00


and $$\phi_{2p}$$ is a sum of three terms.

• I am confused with the 1s and 2s orbitals in your answer. When I substitute coefficients into your expression for $\phi_{1s}$, I get the expression that corresponds to $\phi_{2s}$ in @Tyberius' answer (see coefficients and exponents). Do I get something wrong? – u.heap_f3 Sep 21 '20 at 15:49
• That's why I find the GAUSSIAN format to be a bit harder to understand, even though it is certainly more compact. In my opinion it's best to just print out all S-type data, then all P-type data, rather than mixing the two together; even though this requires more lines. However your confusion about 1s vs 2s is not such a big deal I think, because those are just "dummy labels". The bottom line is that there's 2 S-type orbitals that are each made up of 3 S-type primitives. Whether you want to call one of them "1s" or "2s" or "56s" or "$\Lambda$s" or "$\Theta$s" is irrelevant I think. – Nike Dattani Sep 21 '20 at 16:03
• I think Gaussian's format does make it a little tougher to parse. In principle, it would better to list out each type individually, but its not too big an issue because I believe this reuse of exponents largely isn't done anymore and is basically just a relic of these older small basis sets. – Tyberius Sep 21 '20 at 17:46