Notebooks · lib/basis/pople631g
The 6-31G basis set, H through Ar, as a table
Generated by tools/basis_tables.py from the Basis Set Exchange (the
basis_set_exchange package 0.12, data version 0 of the set, general
contractions optimized). Do not edit; rerun the generator. The generator's
docstring says why version 0, how shells are split and in what order they
stand, and tools/basis_tables.py --check compares every element with
PySCF 2.5.0's copy of the set.
basis_631g() is the Basis record of lib/basis/basis: one row per segmented
shell, (Z, l, nprim, p0) with p0 the row of its first primitive, and
one row per primitive, (exponent, coefficient). Elements 1 to 18, 100
shells and 328 primitives, angular momentum up to p.
Used with import basis.pople631g, and passed to molecule (lib/hf/molecule).
lib/basis/pople631g.viv · 1 code cellOpen in the workbenchDownload .vivLook inside this program
- Atlas
The program’s map: every function and which calls which.
There’s no recorded run of this program yet.
Shift+Enter in a cell runs it and moves to the next. Running a cell runs every cell above it too, as one program.
from basis.basis import Basis, basis_check, basis_nao, basis_of, basis_rows, BS_NAO_LEN BASIS_631G_NSHELL = 100 BASIS_631G_NPRIM = 328 #| (Z, l, nprim, p0), one segmented shell per row, by element. def basis_631g_shells_flat() -> Arr { return [1, 0, 3, 0, 1, 0, 1, 3, 2, 0, 3, 4, 2, 0, 1, 7, 3, 0, 6, 8, 3, 0, 3, 14, 3, 0, 1, 17, 3, 1, 3, 18, 3, 1, 1, 21, 4, 0, 6, 22, 4, 0, 3, 28, 4, 0, 1, 31, 4, 1, 3, 32, 4, 1, 1, 35, 5, 0, 6, 36, 5, 0, 3, 42, 5, 0, 1, 45, 5, 1, 3, 46, 5, 1, 1, 49, 6, 0, 6, 50, 6, 0, 3, 56, 6, 0, 1, 59, 6, 1, 3, 60, 6, 1, 1, 63, 7, 0, 6, 64, 7, 0, 3, 70, 7, 0, 1, 73, 7, 1, 3, 74, 7, 1, 1, 77, 8, 0, 6, 78, 8, 0, 3, 84, 8, 0, 1, 87, 8, 1, 3, 88, 8, 1, 1, 91, 9, 0, 6, 92, 9, 0, 3, 98, 9, 0, 1, 101, 9, 1, 3, 102, 9, 1, 1, 105, 10, 0, 6, 106, 10, 0, 3, 112, 10, 0, 1, 115, 10, 1, 3, 116, 10, 1, 1, 119, 11, 0, 6, 120, 11, 0, 6, 126, 11, 0, 3, 132, 11, 0, 1, 135, 11, 1, 6, 136, 11, 1, 3, 142, 11, 1, 1, 145, 12, 0, 6, 146, 12, 0, 6, 152, 12, 0, 3, 158, 12, 0, 1, 161, 12, 1, 6, 162, 12, 1, 3, 168, 12, 1, 1, 171, 13, 0, 6, 172, 13, 0, 6, 178, 13, 0, 3, 184, 13, 0, 1, 187, 13, 1, 6, 188, 13, 1, 3, 194, 13, 1, 1, 197, 14, 0, 6, 198, 14, 0, 6, 204, 14, 0, 3, 210, 14, 0, 1, 213, 14, 1, 6, 214, 14, 1, 3, 220, 14, 1, 1, 223, 15, 0, 6, 224, 15, 0, 6, 230, 15, 0, 3, 236, 15, 0, 1, 239, 15, 1, 6, 240, 15, 1, 3, 246, 15, 1, 1, 249, 16, 0, 6, 250, 16, 0, 6, 256, 16, 0, 3, 262, 16, 0, 1, 265, 16, 1, 6, 266, 16, 1, 3, 272, 16, 1, 1, 275, 17, 0, 6, 276, 17, 0, 6, 282, 17, 0, 3, 288, 17, 0, 1, 291, 17, 1, 6, 292, 17, 1, 3, 298, 17, 1, 1, 301, 18, 0, 6, 302, 18, 0, 6, 308, 18, 0, 3, 314, 18, 0, 1, 317, 18, 1, 6, 318, 18, 1, 3, 324, 18, 1, 1, 327] } #| (exponent, coefficient), one primitive per row. def basis_631g_prims_flat() -> Arr { return [18.731137, 0.0334946, 2.8253937, 0.23472695, 0.6401217, 0.81375733, 0.1612778, 1.0, 38.421634, 0.023766, 5.77803, 0.154679, 1.241774, 0.46963, 0.297964, 1.0, 642.41892, 0.0021426, 96.798515, 0.0162089, 22.091121, 0.0773156, 6.2010703, 0.245786, 1.9351177, 0.470189, 0.6367358, 0.3454708, 2.3249184, -0.0350917, 0.6324306, -0.1912328, 0.0790534, 1.0839878, 0.035962, 1.0, 2.3249184, 0.0089415, 0.6324306, 0.1410095, 0.0790534, 0.9453637, 0.035962, 1.0, 1264.5857, 0.0019448, 189.93681, 0.0148351, 43.159089, 0.0720906, 12.098663, 0.2371542, 3.8063232, 0.4691987, 1.2728903, 0.3565202, 3.1964631, -0.1126487, 0.7478133, -0.2295064, 0.2199663, 1.1869167, 0.0823099, 1.0, 3.1964631, 0.0559802, 0.7478133, 0.2615506, 0.2199663, 0.7939723, 0.0823099, 1.0, 2068.8823, 0.0018663, 310.64957, 0.0142515, 70.683033, 0.0695516, 19.86108, 0.2325729, 6.2993048, 0.4670787, 2.127027, 0.3634314, 4.727971, -0.1303938, 1.1903377, -0.1307889, 0.3594117, 1.1309444, 0.1267512, 1.0, 4.727971, 0.0745976, 1.1903377, 0.3078467, 0.3594117, 0.7434568, 0.1267512, 1.0, 3047.5249, 0.0018347, 457.36951, 0.0140373, 103.94869, 0.0688426, 29.210155, 0.2321844, 9.286663, 0.4679413, 3.163927, 0.362312, 7.8682724, -0.1193324, 1.8812885, -0.1608542, 0.5442493, 1.1434564, 0.1687144, 1.0, 7.8682724, 0.0689991, 1.8812885, 0.316424, 0.5442493, 0.7443083, 0.1687144, 1.0, 4173.511, 0.0018348, 627.4579, 0.013995, 142.9021, 0.068587, 40.23433, 0.232241, 12.82021, 0.46907, 4.390437, 0.360455, 11.626358, -0.114961, 2.71628, -0.169118, 0.772218, 1.145852, 0.2120313, 1.0, 11.626358, 0.06758, 2.71628, 0.323907, 0.772218, 0.740895, 0.2120313, 1.0, 5484.6717, 0.0018311, 825.23495, 0.0139501, 188.04696, 0.0684451, 52.9645, 0.2327143, 16.89757, 0.470193, 5.7996353, 0.3585209, 15.539616, -0.1107775, 3.5999336, -0.1480263, 1.0137618, 1.130767, 0.2700058, 1.0, 15.539616, 0.0708743, 3.5999336, 0.3397528, 1.0137618, 0.7271586, 0.2700058, 1.0, 7001.71309, 0.0018196169, 1051.36609, 0.0139160796, 239.28569, 0.0684053245, 67.3974453, 0.23318576, 21.5199573, 0.471267439, 7.4031013, 0.356618546, 20.8479528, -0.108506975, 4.80830834, -0.146451658, 1.34406986, 1.12868858, 0.358151393, 1.0, 20.8479528, 0.0716287243, 4.80830834, 0.345912103, 1.34406986, 0.722469957, 0.358151393, 1.0, 8425.85153, 0.0018843481, 1268.5194, 0.0143368994, 289.621414, 0.0701096233, 81.859004, 0.237373266, 26.2515079, 0.473007126, 9.09472051, 0.348401241, 26.532131, -0.107118287, 6.10175501, -0.146163821, 1.69627153, 1.1277735, 0.4458187, 1.0, 26.532131, 0.0719095885, 6.10175501, 0.349513372, 1.69627153, 0.719940512, 0.4458187, 1.0, 9993.2, 0.0019377, 1499.89, 0.014807, 341.951, 0.072706, 94.6797, 0.252629, 29.7345, 0.493242, 10.0063, 0.313169, 150.963, -0.0035421, 35.5878, -0.043959, 11.1683, -0.1097521, 3.90201, 0.187398, 1.38177, 0.646699, 0.466382, 0.306058, 0.497966, -0.248503, 0.084353, -0.131704, 0.066635, 1.23352, 0.0259544, 1.0, 150.963, 0.0050017, 35.5878, 0.035511, 11.1683, 0.142825, 3.90201, 0.33862, 1.38177, 0.451579, 0.466382, 0.273271, 0.497966, -0.023023, 0.084353, 0.950359, 0.066635, 0.059858, 0.0259544, 1.0, 11722.8, 0.0019778, 1759.93, 0.015114, 400.846, 0.073911, 112.807, 0.249191, 35.9997, 0.487928, 12.1828, 0.319662, 189.18, -0.0032372, 45.2119, -0.041008, 14.3563, -0.1126, 5.13886, 0.148633, 1.90652, 0.616497, 0.705887, 0.364829, 0.92934, -0.21229, 0.269035, -0.107985, 0.117379, 1.17584, 0.0421061, 1.0, 189.18, 0.0049281, 45.2119, 0.034989, 14.3563, 0.140725, 5.13886, 0.333642, 1.90652, 0.44494, 0.705887, 0.269254, 0.92934, -0.022419, 0.269035, 0.19227, 0.117379, 0.846181, 0.0421061, 1.0, 13983.1, 0.00194267, 2098.75, 0.0148599, 477.705, 0.0728494, 134.36, 0.24683, 42.8709, 0.487258, 14.5189, 0.323496, 239.668, -0.00292619, 57.4419, -0.037408, 18.2859, -0.114487, 6.59914, 0.115635, 2.49049, 0.612595, 0.94454, 0.393799, 1.2779, -0.227606, 0.39759, 0.00144583, 0.160095, 1.09279, 0.0556577, 1.0, 239.668, 0.00460285, 57.4419, 0.033199, 18.2859, 0.136282, 6.59914, 0.330476, 2.49049, 0.449146, 0.94454, 0.265704, 1.2779, -0.017513, 0.39759, 0.244533, 0.160095, 0.804934, 0.0556577, 1.0, 16115.9, 0.00195948, 2425.58, 0.0149288, 553.867, 0.0728478, 156.34, 0.24613, 50.0683, 0.485914, 17.0178, 0.325002, 292.718, -0.00278094, 69.8731, -0.0357146, 22.3363, -0.114985, 8.15039, 0.0935634, 3.13458, 0.603017, 1.22543, 0.418959, 1.72738, -0.24463, 0.572922, 0.00431572, 0.222192, 1.09818, 0.0778369, 1.0, 292.718, 0.00443826, 69.8731, 0.0326679, 22.3363, 0.134721, 8.15039, 0.328678, 3.13458, 0.44964, 1.22543, 0.261372, 1.72738, -0.0177951, 0.572922, 0.253539, 0.222192, 0.800669, 0.0778369, 1.0, 19413.3, 0.0018516, 2909.42, 0.0142062, 661.364, 0.0699995, 185.759, 0.240079, 59.1943, 0.484762, 20.031, 0.3352, 339.478, -0.00278217, 81.0101, -0.0360499, 25.878, -0.116631, 9.45221, 0.0968328, 3.66566, 0.614418, 1.46746, 0.403798, 2.15623, -0.252923, 0.748997, 0.0328517, 0.283145, 1.08125, 0.0998317, 1.0, 339.478, 0.00456462, 81.0101, 0.0336936, 25.878, 0.139755, 9.45221, 0.339362, 3.66566, 0.450921, 1.46746, 0.238586, 2.15623, -0.0177653, 0.748997, 0.274058, 0.283145, 0.785421, 0.0998317, 1.0, 21917.1, 0.001869, 3301.49, 0.01423, 754.146, 0.069696, 212.711, 0.238487, 67.9896, 0.483307, 23.0515, 0.338074, 423.735, -0.0023767, 100.71, -0.031693, 32.1599, -0.113317, 11.8079, 0.05609, 4.6311, 0.592255, 1.87025, 0.455006, 2.61584, -0.250374, 0.922167, 0.066957, 0.341287, 1.05451, 0.117167, 1.0, 423.735, 0.004061, 100.71, 0.030681, 32.1599, 0.130452, 11.8079, 0.327205, 4.6311, 0.452851, 1.87025, 0.256042, 2.61584, -0.014511, 0.922167, 0.310263, 0.341287, 0.754483, 0.117167, 1.0, 25180.1, 0.001833, 3780.35, 0.014034, 860.474, 0.069097, 242.145, 0.237452, 77.3349, 0.483034, 26.247, 0.339856, 491.765, -0.0022974, 116.984, -0.030714, 37.4153, -0.112528, 13.7834, 0.045016, 5.45215, 0.589353, 2.22588, 0.465206, 3.18649, -0.25183, 1.14427, 0.061589, 0.420377, 1.06018, 0.142657, 1.0, 491.765, 0.0039894, 116.984, 0.030318, 37.4153, 0.12988, 13.7834, 0.327951, 5.45215, 0.453527, 2.22588, 0.252154, 3.18649, -0.014299, 1.14427, 0.323572, 0.420377, 0.743507, 0.142657, 1.0, 28348.3, 0.00182526, 4257.62, 0.0139686, 969.857, 0.0687073, 273.263, 0.236204, 87.3695, 0.482214, 29.6867, 0.342043, 575.891, -0.00215972, 136.816, -0.0290775, 43.8098, -0.110827, 16.2094, 0.0276999, 6.46084, 0.577613, 2.65114, 0.488688, 3.86028, -0.255592, 1.41373, 0.0378066, 0.516646, 1.08056, 0.173888, 1.0, 575.891, 0.00380665, 136.816, 0.0292305, 43.8098, 0.126467, 16.2094, 0.32351, 6.46084, 0.454896, 2.65114, 0.25663, 3.86028, -0.0159197, 1.41373, 0.324646, 0.516646, 0.74399, 0.173888, 1.0] } #| The 6-31G basis set as a `Basis` record. def basis_631g() -> Basis { return basis_of(basis_631g_shells_flat(), basis_631g_prims_flat()) } #| The Cartesian and spherical AO counts of one atom of each element, `1` to `18`, #| as the generator counted them. def basis_631g_nao() -> Arr { return [2, 2, 2, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13] } test "the 6-31G table covers H through Ar, each element's shells in one run" { bt631g_b = basis_631g() assert_near(len(bt631g_b.shells), BASIS_631G_NSHELL, 0.0) assert_near(len(bt631g_b.prims), BASIS_631G_NPRIM, 0.0) assert_near(basis_check(bt631g_b), 0.0, 0.0) bt631g_n = basis_rows(basis_631g_nao(), BS_NAO_LEN) for bt631g_z to len(bt631g_n) { bt631g_k = basis_nao(bt631g_b, bt631g_z + 1) assert_near(bt631g_k[0], bt631g_n[bt631g_z, 0], 0.0) assert_near(bt631g_k[1], bt631g_n[bt631g_z, 1], 0.0) } }