# How to exploit STO-nG coefficients from basissetexchange (BSE)?

I am trying to understand how to use the data of STO-6G basis from BSE in order to code my own DFT package. I started with a simple DFT code for H2. So the primitive gaussians are of the from : $$\left( \frac{2\alpha}{\pi} \right)^{\frac{3}{4}} e^{-\alpha x^2}$$

Let's take for example Neon in NWChem format:

#----------------------------------------------------------------------
# Basis Set Exchange
# Version v0.9.1
# https://www.basissetexchange.org
#----------------------------------------------------------------------
#   Basis set: STO-6G
# Description: STO-6G Minimal Basis (6 functions/AO)
#        Role: orbital
#     Version: 1  (Data from Gaussian09)
#----------------------------------------------------------------------

BASIS "ao basis" SPHERICAL PRINT
#BASIS SET: (12s,6p) -> [2s,1p]
Ne    S
0.2146955475E+04       0.9163596281E-02
0.3936419362E+03       0.4936149294E-01
0.1101268283E+03       0.1685383049E+00
0.3783153777E+02       0.3705627997E+00
0.1469109318E+02       0.4164915298E+00
0.6050603466E+01       0.1303340841E+00
Ne    SP
0.8550442919E+02      -0.1325278809E-01       0.3759696623E-02
0.1692355799E+02      -0.4699171014E-01       0.3767936984E-01
0.5259829210E+01      -0.3378537151E-01       0.1738967435E+00
0.2023645885E+01       0.2502417861E+00       0.4180364347E+00
0.8788707870E+00       0.5951172526E+00       0.4258595477E+00
0.4028507849E+00       0.2407061763E+00       0.1017082955E+00
END


Are the STO-nG coefficients the same for each of the p-orbitals ($$p_x$$, $$p_y$$ and $$p_z$$), d-orbitals, and higher angular momentum? If this is the case how can non-spherical effects be included?

Also what is the form of the primitive gaussian in case it must be changed from the Hydrogen/Helium case?

• I tried to limit your post to one question, but it is not immediately clear to me what you are asking. Are you trying to determine how to read some specific basis set format? Or are you trying to figure out how to use these basis set definitions to compute integrals?
– Tyberius
Commented Jul 19, 2023 at 1:26

My first question is: why write your own package if you already have many open source ones upon which to build? NWChem, psi4, pyscf, …

Note: Ne does not have d-functions within STO-6G.

For the d-orbitals, have a look at the corresponding basis set for Kr, shown below with some comments added. For a clear explanation of what the functions and corresponding orbitals look like, read Szabo/Ostlund or Frank Jensen's "Introduction to computational chemistry". Or Google "split valence basis sets", and you will find e.g. David Sherill's lecture notes.

#----------------------------------------------------------------------
# Basis Set Exchange
# Version v0.9.1
# https://www.basissetexchange.org
#----------------------------------------------------------------------
#   Basis set: STO-6G
# Description: STO-6G Minimal Basis (6 functions/AO)
#        Role: orbital
#     Version: 1  (Data from Gaussian09)
#----------------------------------------------------------------------

BASIS "ao basis" SPHERICAL PRINT
#BASIS SET: (24s,18p,6d) -> [4s,3p,1d]
#MS: 1s orbitals
Kr    S
0.2885373644E+05       0.9163596281E-02
0.5290300991E+04       0.4936149294E-01
0.1480035573E+04       0.1685383049E+00
0.5084321647E+03       0.3705627997E+00
0.1974390878E+03       0.4164915298E+00
0.8131631964E+02       0.1303340841E+00
#MS: 2s and 2p orbitals
Kr    SP
0.2425796448E+04      -0.1325278809E-01       0.3759696623E-02
0.4801284244E+03      -0.4699171014E-01       0.3767936984E-01
0.1492235564E+03      -0.3378537151E-01       0.1738967435E+00
0.5741168085E+02       0.2502417861E+00       0.4180364347E+00
0.2493393212E+02       0.5951172526E+00       0.4258595477E+00
0.1142904540E+02       0.2407061763E+00       0.1017082955E+00
#MS: 3s and 3p orbitals
Kr    SP
0.1284965766E+03      -0.9737395526E-02      -0.8104943356E-02
0.3700047197E+02      -0.7265876782E-01      -0.1715478915E-01
0.1455321200E+02      -0.1716155198E+00       0.7369785762E-01
0.6651312517E+01       0.1289776243E+00       0.3965149986E+00
0.3310132155E+01       0.7288614510E+00       0.4978084880E+00
0.1699958288E+01       0.3013317422E+00       0.1174825823E+00
#MS: 4s and 4p orbitals
Kr    SP
0.8808666254E+01       0.3775056180E-02      -0.7052075733E-02
0.2834325299E+01      -0.5585965266E-01      -0.5259505547E-01
0.1211009836E+01      -0.3192946152E+00      -0.3773450392E-01
0.6038871793E+00      -0.2764780132E-01       0.3874773403E+00
0.3259517997E+00       0.9049199432E+00       0.5791672602E+00
0.1812482827E+00       0.3406258162E+00       0.1221817127E+00
#MS: 3d orbitals
Kr    D
0.1284965766E+03       0.6633434386E-02
0.3700047197E+02       0.5958177963E-01
0.1455321200E+02       0.2401949582E+00
0.6651312517E+01       0.4648114679E+00
0.3310132155E+01       0.3434092326E+00
0.1699958288E+01       0.5389056980E-01
END

• My will is to learn computational chemistry on my own (books + code) since I don't have the chance to learn it at school. Looking at such optimized code is quite challenging when I only want a 'simple' code that works in order to get the concepts of a DFT program. Also I meant same question for atoms with d orbitals.
– mle
Commented Jul 20, 2023 at 8:31
• @mle since you say that you don't have a chance to learn computational chemistry at school, I wonder if you would be interested in attending our weekly meetings, in which I present lectures such as "Quantum Chemistry for High School Students" and "Quantum Chemistry & Machine Learning for Primary School Students". You can join our Discord server but make sure that after joining, you let us know who you are in the #General channel. Commented Jul 20, 2023 at 22:57