CrystOD 0.3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. crystod/CIR_data.txt.gz +0 -0
  2. crystod/__init__.py +98 -0
  3. crystod/__main__.py +5 -0
  4. crystod/_api.py +69 -0
  5. crystod/atomic_levels.py +134 -0
  6. crystod/band_pyscf.py +446 -0
  7. crystod/basis_function.py +1105 -0
  8. crystod/brillouin_zone.py +436 -0
  9. crystod/bz.py +32 -0
  10. crystod/bz_supercell.py +259 -0
  11. crystod/cli/__init__.py +21 -0
  12. crystod/cli/bz.py +192 -0
  13. crystod/cli/common.py +87 -0
  14. crystod/cli/group.py +566 -0
  15. crystod/cli/mag.py +128 -0
  16. crystod/cli/main.py +971 -0
  17. crystod/cli/md.py +202 -0
  18. crystod/cli/mol.py +290 -0
  19. crystod/cli/phonon.py +499 -0
  20. crystod/coset.py +252 -0
  21. crystod/crystal_orbital_diagram.py +1704 -0
  22. crystod/crystal_orbital_pyscf.py +2166 -0
  23. crystod/crystal_orbital_spgrep.py +1123 -0
  24. crystod/decompose_irrep.py +124 -0
  25. crystod/direct_product.py +180 -0
  26. crystod/dirpro_line_names.py +199 -0
  27. crystod/dos_pyscf.py +334 -0
  28. crystod/generate_basis_function.py +135 -0
  29. crystod/group.py +69 -0
  30. crystod/irreptables_compat.py +183 -0
  31. crystod/isoir.py +823 -0
  32. crystod/isotropy_subgroup.py +1237 -0
  33. crystod/ligand_field.py +136 -0
  34. crystod/mag.py +24 -0
  35. crystod/md.py +25 -0
  36. crystod/md_summary.py +111 -0
  37. crystod/mo_diagram.py +2067 -0
  38. crystod/mo_diagram_fragment.py +702 -0
  39. crystod/mo_diagram_pyscf.py +1111 -0
  40. crystod/modulation.py +1516 -0
  41. crystod/mol.py +40 -0
  42. crystod/molecular_salc.py +642 -0
  43. crystod/multiplet.py +562 -0
  44. crystod/multiplet_energy.py +1017 -0
  45. crystod/multiplet_visualize.py +709 -0
  46. crystod/operations.py +310 -0
  47. crystod/orbital_hybridization_spgrep.py +786 -0
  48. crystod/phonon.py +54 -0
  49. crystod/phonon_fatband.py +400 -0
  50. crystod/phonon_irreps.py +418 -0
  51. crystod/phonon_lt.py +209 -0
  52. crystod/phonon_subgroups.py +868 -0
  53. crystod/phonon_vector.py +1045 -0
  54. crystod/point_charge_field.py +319 -0
  55. crystod/poscar2cif.py +389 -0
  56. crystod/runtime_compat.py +161 -0
  57. crystod/salc.py +41 -0
  58. crystod/show_kpoints.py +105 -0
  59. crystod/spacegroup_product.py +882 -0
  60. crystod/spglib_compat.py +28 -0
  61. crystod/spin_basis.py +751 -0
  62. crystod/star_of_k.py +198 -0
  63. crystod/symmetry_mode.py +1067 -0
  64. crystod/vesta_element_rgb.json +127 -0
  65. crystod/vibration_modes.py +645 -0
  66. crystod/vibration_viewer.py +147 -0
  67. crystod/visualize_basis.py +1439 -0
  68. crystod/visualize_eht.py +447 -0
  69. crystod/visualize_pyscf.py +507 -0
  70. crystod/xdatcar_adp.py +537 -0
  71. crystod-0.3.6.dist-info/METADATA +191 -0
  72. crystod-0.3.6.dist-info/RECORD +76 -0
  73. crystod-0.3.6.dist-info/WHEEL +5 -0
  74. crystod-0.3.6.dist-info/entry_points.txt +8 -0
  75. crystod-0.3.6.dist-info/licenses/LICENSE +30 -0
  76. crystod-0.3.6.dist-info/top_level.txt +1 -0
Binary file
crystod/__init__.py ADDED
@@ -0,0 +1,98 @@
1
+ """crystod package.
2
+
3
+ Command-line tools (``crystod``, ``crystod-group``, ``crystod-bz``,
4
+ ``crystod-phonon``, ``crystod-mag``, ``crystod-md``, ``crystod-mol``) live
5
+ in ``crystod.cli``; the Python API mirrors the same domains:
6
+
7
+ import crystod
8
+
9
+ crystod.salc # crystal-orbital SALC analysis (the main command)
10
+ crystod.group # irrep algebra, isotropy subgroups, symmetry modes
11
+ crystod.phonon # phonon irreps, eigenvectors, modulation, subgroups
12
+ crystod.bz # Brillouin-zone plots and special k points
13
+ crystod.mag # symmetry-adapted spin bases
14
+ crystod.md # MD-trajectory analyses (ADPs)
15
+ crystod.mol # molecular SALCs and MO diagrams
16
+
17
+ The most common entry points are also importable from the top level::
18
+
19
+ from crystod import isotropy_subgroups, label_phonon_modes
20
+
21
+ Domain modules and the symbols below resolve lazily (PEP 562), so plain
22
+ ``import crystod`` stays light; the implementation modules
23
+ (``crystod.phonon_irreps``, ``crystod.isotropy_subgroup``, ...) remain
24
+ importable directly, exactly as before.
25
+ """
26
+
27
+ from .operations import (
28
+ characterize_rotation,
29
+ complex_to_real_transform,
30
+ complex_to_real_transform_orbital,
31
+ get_seitz_symbol,
32
+ rotation_matrix_to_euler_zyz,
33
+ wigner_D_matrix,
34
+ wigner_D_real,
35
+ )
36
+
37
+ __all__ = [
38
+ "__version__",
39
+ "characterize_rotation",
40
+ "complex_to_real_transform",
41
+ "complex_to_real_transform_orbital",
42
+ "get_seitz_symbol",
43
+ "rotation_matrix_to_euler_zyz",
44
+ "wigner_D_matrix",
45
+ "wigner_D_real",
46
+ # API domains (lazy)
47
+ "salc",
48
+ "group",
49
+ "phonon",
50
+ "bz",
51
+ "mag",
52
+ "md",
53
+ "mol",
54
+ # flagship API symbols (lazy)
55
+ "isotropy_subgroups",
56
+ "IsotropySubgroup",
57
+ "label_phonon_modes",
58
+ "imaginary_mode_subgroups",
59
+ "scan_imaginary_modes",
60
+ "PhononMode",
61
+ "ImaginaryModeResult",
62
+ "IsotropyAnalyzer",
63
+ "SpaceGroupIrrepAlgebra",
64
+ ]
65
+
66
+ __version__ = "0.3.6"
67
+
68
+ _API_DOMAINS = ("salc", "group", "phonon", "bz", "mag", "md", "mol")
69
+
70
+ _LAZY_SYMBOLS = {
71
+ "isotropy_subgroups": ("phonon_subgroups", "isotropy_subgroups"),
72
+ "IsotropySubgroup": ("phonon_subgroups", "IsotropySubgroup"),
73
+ "label_phonon_modes": ("phonon_subgroups", "label_phonon_modes"),
74
+ "imaginary_mode_subgroups": ("phonon_subgroups", "imaginary_mode_subgroups"),
75
+ "scan_imaginary_modes": ("phonon_subgroups", "scan_imaginary_modes"),
76
+ "PhononMode": ("phonon_subgroups", "PhononMode"),
77
+ "ImaginaryModeResult": ("phonon_subgroups", "ImaginaryModeResult"),
78
+ "IsotropyAnalyzer": ("isotropy_subgroup", "IsotropyAnalyzer"),
79
+ "SpaceGroupIrrepAlgebra": ("spacegroup_product", "SpaceGroupIrrepAlgebra"),
80
+ }
81
+
82
+
83
+ def __getattr__(name):
84
+ import importlib
85
+
86
+ if name in _API_DOMAINS:
87
+ return importlib.import_module(f".{name}", __name__)
88
+ if name in _LAZY_SYMBOLS:
89
+ module_name, attribute = _LAZY_SYMBOLS[name]
90
+ module = importlib.import_module(f".{module_name}", __name__)
91
+ value = getattr(module, attribute)
92
+ globals()[name] = value
93
+ return value
94
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
95
+
96
+
97
+ def __dir__():
98
+ return sorted(set(globals()) | set(__all__))
crystod/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ main()
crystod/_api.py ADDED
@@ -0,0 +1,69 @@
1
+ """Lazy attribute machinery for the public API namespaces.
2
+
3
+ The domain API modules (``crystod.salc``, ``crystod.phonon``,
4
+ ``crystod.group``, ``crystod.bz``, ``crystod.md``, ``crystod.mag``,
5
+ ``crystod.mol``) are thin, curated views over the implementation modules.
6
+ Because many implementation modules import phonopy/spgrep (and patch
7
+ spglib compatibility) at import time, the views resolve their attributes
8
+ lazily via PEP 562: ``import crystod.phonon`` is instant, and the heavy
9
+ machinery is only pulled in when an attribute is first used.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import functools
15
+ import importlib
16
+ import inspect
17
+
18
+
19
+ def _library_errors(function):
20
+ """Report bad input as ``ValueError`` instead of exiting the process.
21
+
22
+ The implementation modules double as command-line entry points and
23
+ report bad input the way a command line wants it, by raising
24
+ ``SystemExit``. That is right for a command and wrong for a library:
25
+ ``SystemExit`` derives from ``BaseException``, so a caller's
26
+ ``except Exception`` does not catch it and the whole program dies.
27
+ The API namespaces translate it at their boundary.
28
+ """
29
+
30
+ @functools.wraps(function)
31
+ def wrapper(*args, **kwargs):
32
+ try:
33
+ return function(*args, **kwargs)
34
+ except SystemExit as exc:
35
+ message = " ".join(str(exc).split())
36
+ raise ValueError(
37
+ message.removeprefix("ERROR: ") or "invalid input"
38
+ ) from None
39
+
40
+ return wrapper
41
+
42
+
43
+ def lazy_namespace(module_globals: dict, exports: dict):
44
+ """Build ``__getattr__``, ``__dir__``, and ``__all__`` for an API module.
45
+
46
+ ``exports`` maps each public name to ``(implementation_module, attribute)``
47
+ with the implementation module given relative to the ``crystod`` package.
48
+ """
49
+ module_name = module_globals["__name__"]
50
+
51
+ def __getattr__(name: str):
52
+ try:
53
+ target_module, attribute = exports[name]
54
+ except KeyError:
55
+ raise AttributeError(
56
+ f"module {module_name!r} has no attribute {name!r}"
57
+ ) from None
58
+ module = importlib.import_module(f".{target_module}", "crystod")
59
+ value = getattr(module, attribute)
60
+ if inspect.isfunction(value):
61
+ value = _library_errors(value)
62
+ module_globals[name] = value # cache; later access bypasses __getattr__
63
+ return value
64
+
65
+ def __dir__():
66
+ dunders = {name for name in module_globals if name.startswith("__")}
67
+ return sorted(dunders | set(exports))
68
+
69
+ return __getattr__, __dir__, sorted(exports)
@@ -0,0 +1,134 @@
1
+ """Neutral-atom orbital energies from the archived PySCF
2
+ calculations (reference/atomic_level_*, script
3
+ script/generate_atomic_levels.py; Hartree-Fock, def2-svp with the
4
+ def2 ECP beyond Kr, Stuttgart RSC 1997 for Ce-Yb and CRENBL for Lu
5
+ -- 4f in the valence space). Energies in eV, spin- and m-averaged
6
+ per shell; virtual shells included. AUTO-GENERATED by
7
+ script/collect_atomic_levels.py -- do not edit by hand."""
8
+
9
+ ATOMIC_LEVELS = {
10
+ "H": {"electrons": 1, "ecp_core": 0, "method": "UHF/def2-svp",
11
+ "levels": {"1s": -13.586, "2s": 4.944, "2p": 28.53}},
12
+ "Li": {"electrons": 3, "ecp_core": 0, "method": "UHF/def2-svp",
13
+ "levels": {"1s": -67.451, "2s": -2.418, "2p": 2.836, "3s": 2.774, "3p": 18.981}},
14
+ "Be": {"electrons": 4, "ecp_core": 0, "method": "RHF/def2-svp",
15
+ "levels": {"1s": -128.858, "2s": -8.311, "2p": 1.506, "3s": 5.059, "3p": 9.449}},
16
+ "B": {"electrons": 5, "ecp_core": 0, "method": "UHF/def2-svp",
17
+ "levels": {"1s": -209.324, "2s": -13.234, "2p": 0.097, "3s": 9.111, "3p": 13.445, "3d": 34.645}},
18
+ "C": {"electrons": 6, "ecp_core": 0, "method": "UHF/def2-svp",
19
+ "levels": {"1s": -308.023, "2s": -18.828, "2p": -2.204, "3s": 14.253, "3p": 19.693, "3d": 53.822}},
20
+ "N": {"electrons": 7, "ecp_core": 0, "method": "UHF/def2-svp",
21
+ "levels": {"1s": -425.05, "2s": -25.158, "2p": -5.543, "3s": 20.481, "3p": 26.877, "3d": 66.871}},
22
+ "O": {"electrons": 8, "ecp_core": 0, "method": "UHF/def2-svp",
23
+ "levels": {"1s": -562.081, "2s": -33.107, "2p": -10.307, "3s": 27.409, "3p": 31.817, "3d": 79.571}},
24
+ "F": {"electrons": 9, "ecp_core": 0, "method": "UHF/def2-svp",
25
+ "levels": {"1s": -717.492, "2s": -41.796, "2p": -16.058, "3s": 35.404, "3p": 38.333, "3d": 92.692}},
26
+ "Na": {"electrons": 11, "ecp_core": 0, "method": "UHF/def2-svp",
27
+ "levels": {"1s": -1101.352, "2s": -76.188, "2p": -41.414, "3s": -2.192, "3p": 2.171, "3d": 9.859, "4s": 3.69}},
28
+ "Mg": {"electrons": 12, "ecp_core": 0, "method": "RHF/def2-svp",
29
+ "levels": {"1s": -1334.333, "2s": -102.739, "2p": -62.342, "3s": -6.846, "3p": 1.464, "3d": 7.389, "4s": 3.676, "4p": 11.437}},
30
+ "Al": {"electrons": 13, "ecp_core": 0, "method": "UHF/def2-svp",
31
+ "levels": {"1s": -1590.98, "2s": -133.354, "2p": -87.383, "3s": -10.58, "3p": 0.032, "3d": 16.92, "4s": 5.629, "4p": 13.132}},
32
+ "Si": {"electrons": 14, "ecp_core": 0, "method": "UHF/def2-svp",
33
+ "levels": {"1s": -1871.456, "2s": -167.237, "2p": -115.624, "3s": -14.544, "3p": -1.841, "3d": 18.204, "4s": 7.927, "4p": 16.266}},
34
+ "P": {"electrons": 15, "ecp_core": 0, "method": "UHF/def2-svp",
35
+ "levels": {"1s": -2174.965, "2s": -204.095, "2p": -146.802, "3s": -18.723, "3p": -4.296, "3d": 21.618, "4s": 10.656, "4p": 20.933}},
36
+ "S": {"electrons": 16, "ecp_core": 0, "method": "UHF/def2-svp",
37
+ "levels": {"1s": -2502.232, "2s": -244.614, "2p": -181.592, "3s": -23.663, "3p": -7.563, "3d": 24.61, "4s": 13.587, "4p": 25.086}},
38
+ "Cl": {"electrons": 17, "ecp_core": 0, "method": "UHF/def2-svp",
39
+ "levels": {"1s": -2852.55, "2s": -288.171, "2p": -219.372, "3s": -28.847, "3p": -11.361, "3d": 27.624, "4s": 16.944, "4p": 30.137}},
40
+ "K": {"electrons": 19, "ecp_core": 0, "method": "UHF/def2-svp",
41
+ "levels": {"1s": -3633.406, "2s": -394.268, "2p": -313.524, "3s": -47.615, "3p": -26.011, "3d": 6.219, "4s": -1.878, "4p": 1.863, "4d": 19.746, "5s": 1.642}},
42
+ "Ca": {"electrons": 20, "ecp_core": 0, "method": "RHF/def2-svp",
43
+ "levels": {"1s": -4064.201, "2s": -457.754, "2p": -370.963, "3s": -61.114, "3p": -36.518, "3d": 3.401, "4s": -5.31, "4p": 2.288, "4d": 9.481, "5s": 2.164}},
44
+ "Sc": {"electrons": 21, "ecp_core": 0, "method": "UHF/def2-svp",
45
+ "levels": {"1s": -4514.115, "2s": -519.144, "2p": -426.415, "3s": -69.842, "3p": -42.85, "3d": 3.03, "4s": -5.701, "4p": 2.788, "4d": 17.559, "4f": 30.628, "5s": 2.53}},
46
+ "Ti": {"electrons": 22, "ecp_core": 0, "method": "UHF/def2-svp",
47
+ "levels": {"1s": -4987.227, "2s": -583.259, "2p": -484.58, "3s": -78.396, "3p": -49.027, "3d": 1.586, "4s": -6.026, "4p": 3.206, "4d": 21.666, "4f": 47.276, "5s": 2.742}},
48
+ "V": {"electrons": 23, "ecp_core": 0, "method": "UHF/def2-svp",
49
+ "levels": {"1s": -5482.827, "2s": -649.538, "2p": -544.88, "3s": -86.561, "3p": -54.944, "3d": -0.226, "4s": -6.255, "4p": 3.511, "4d": 25.226, "4f": 67.016, "5s": 3.074}},
50
+ "Cr": {"electrons": 24, "ecp_core": 0, "method": "UHF/def2-svp",
51
+ "levels": {"1s": -5996.473, "2s": -712.87, "2p": -602.314, "3s": -89.143, "3p": -55.59, "3d": 0.35, "4s": -2.601, "4p": 5.787, "4d": 24.334, "4f": 94.07, "5s": 4.459}},
52
+ "Mn": {"electrons": 25, "ecp_core": 0, "method": "UHF/def2-svp",
53
+ "levels": {"1s": -6537.634, "2s": -784.387, "2p": -667.747, "3s": -97.08, "3p": -61.193, "3d": -0.588, "4s": -2.519, "4p": 6.178, "4d": 36.16, "4f": 107.977, "5s": 5.271}},
54
+ "Fe": {"electrons": 26, "ecp_core": 0, "method": "UHF/def2-svp",
55
+ "levels": {"1s": -7103.976, "2s": -860.593, "2p": -737.855, "3s": -106.193, "3p": -67.899, "3d": -3.105, "4s": -2.579, "4p": 6.391, "4d": 37.884, "4f": 127.344, "5s": 5.624}},
56
+ "Co": {"electrons": 27, "ecp_core": 0, "method": "UHF/def2-svp",
57
+ "levels": {"1s": -7693.773, "2s": -939.946, "2p": -811.074, "3s": -115.476, "3p": -74.727, "3d": -5.795, "4s": -2.631, "4p": 6.586, "4d": 40.378, "4f": 148.796, "5s": 5.949}},
58
+ "Ni": {"electrons": 28, "ecp_core": 0, "method": "UHF/def2-svp",
59
+ "levels": {"1s": -8307.017, "2s": -1022.481, "2p": -887.431, "3s": -125.001, "3p": -81.738, "3d": -8.723, "4s": -2.682, "4p": 6.737, "4d": 43.101, "4f": 168.025, "5s": 6.272}},
60
+ "Cu": {"electrons": 29, "ecp_core": 0, "method": "UHF/def2-svp",
61
+ "levels": {"1s": -8945.797, "2s": -1109.928, "2p": -968.706, "3s": -135.754, "3p": -89.906, "3d": -12.806, "4s": -2.897, "4p": 6.91, "4d": 36.634, "4f": 173.104, "5s": 4.516}},
62
+ "Zn": {"electrons": 30, "ecp_core": 0, "method": "RHF/def2-svp",
63
+ "levels": {"1s": -9612.868, "2s": -1206.471, "2p": -1058.852, "3s": -152.97, "3p": -104.102, "3d": -20.915, "4s": -7.82, "4p": 5.144, "4d": 45.009, "4f": 193.008, "5s": 4.889}},
64
+ "Ga": {"electrons": 31, "ecp_core": 0, "method": "UHF/def2-svp",
65
+ "levels": {"1s": -10307.184, "2s": -1310.316, "2p": -1156.246, "3s": -173.948, "3p": -121.976, "3d": -32.414, "4s": -11.497, "4p": 0.043, "4d": 14.372, "5s": 5.992, "5p": 11.949, "5d": 64.909}},
66
+ "Ge": {"electrons": 32, "ecp_core": 0, "method": "UHF/def2-svp",
67
+ "levels": {"1s": -11026.148, "2s": -1418.593, "2p": -1258.024, "3s": -195.576, "3p": -140.425, "3d": -44.412, "4s": -14.988, "4p": -1.862, "4d": 15.634, "5s": 7.398, "5p": 14.301, "5d": 74.594}},
68
+ "As": {"electrons": 33, "ecp_core": 0, "method": "UHF/def2-svp",
69
+ "levels": {"1s": -11770.047, "2s": -1531.72, "2p": -1364.595, "3s": -218.372, "3p": -159.976, "3d": -57.409, "4s": -18.54, "4p": -4.209, "4d": 17.223, "5s": 9.012, "5p": 17.193, "5d": 84.948}},
70
+ "Se": {"electrons": 34, "ecp_core": 0, "method": "UHF/def2-svp",
71
+ "levels": {"1s": -12539.442, "2s": -1650.208, "2p": -1476.476, "3s": -242.845, "3p": -181.148, "3d": -71.958, "4s": -22.659, "4p": -7.168, "4d": 18.297, "5s": 10.613, "5p": 19.353, "5d": 94.735}},
72
+ "Br": {"electrons": 35, "ecp_core": 0, "method": "UHF/def2-svp",
73
+ "levels": {"1s": -13333.693, "2s": -1773.424, "2p": -1593.033, "3s": -268.373, "3p": -203.335, "3d": -87.457, "4s": -26.858, "4p": -10.464, "4d": 19.545, "5s": 12.424, "5p": 22.036, "5d": 105.132}},
74
+ "Rb": {"electrons": 9, "ecp_core": 28, "method": "UHF/def2-svp",
75
+ "levels": {"4s": -42.922, "4p": -22.018, "4d": 2.113, "5s": -1.772, "5p": 0.871, "5d": 10.947, "6s": 1.917, "6p": 12.564, "7s": 21.08, "8s": 533.576}},
76
+ "Sr": {"electrons": 10, "ecp_core": 28, "method": "RHF/def2-svp",
77
+ "levels": {"4s": -53.366, "4p": -29.944, "4d": 2.206, "5s": -4.925, "5p": 0.82, "5d": 5.543, "6s": 3.447, "6p": 8.634, "7s": 827.596}},
78
+ "Y": {"electrons": 11, "ecp_core": 28, "method": "UHF/def2-svp",
79
+ "levels": {"4s": -61.405, "4p": -35.466, "4d": 1.668, "4f": 21.979, "5s": -5.533, "5p": 0.754, "5d": 7.743, "6s": 3.532, "6p": 12.105, "7s": 39.027, "8s": 825.154}},
80
+ "Zr": {"electrons": 12, "ecp_core": 28, "method": "UHF/def2-svp",
81
+ "levels": {"4s": -68.871, "4p": -40.977, "4d": 0.351, "4f": 29.797, "5s": -5.834, "5p": 0.741, "5d": 9.442, "6s": 3.814, "6p": 10.134, "7s": 39.633, "8s": 910.863}},
82
+ "Nb": {"electrons": 13, "ecp_core": 28, "method": "UHF/def2-svp",
83
+ "levels": {"4s": -72.866, "4p": -43.249, "4d": -0.194, "4f": 39.323, "5s": -2.743, "5p": 1.459, "5d": 12.236, "6s": 5.305, "6p": 10.994, "7s": 42.025, "8s": 1001.99}},
84
+ "Mo": {"electrons": 14, "ecp_core": 28, "method": "UHF/def2-svp",
85
+ "levels": {"4s": -79.627, "4p": -48.299, "4d": -1.695, "4f": 46.801, "5s": -2.816, "5p": 1.586, "5d": 13.786, "6s": 5.715, "6p": 10.728, "7s": 48.912, "8s": 1082.001}},
86
+ "Cd": {"electrons": 20, "ecp_core": 28, "method": "RHF/def2-svp",
87
+ "levels": {"4s": -130.751, "4p": -86.135, "4d": -19.612, "4f": 85.454, "5s": -7.64, "5p": 1.537, "5d": 19.371, "6s": 5.996, "6p": 13.453, "7s": 66.276, "8s": 1554.294}},
88
+ "Sn": {"electrons": 22, "ecp_core": 28, "method": "UHF/def2-svp",
89
+ "levels": {"4s": -159.358, "4p": -109.993, "4d": -35.533, "5s": -13.796, "5p": -1.919, "5d": 13.959, "6s": 7.417, "6p": 10.424, "7s": 1416.894, "7p": 405.998}},
90
+ "Sb": {"electrons": 23, "ecp_core": 28, "method": "UHF/def2-svp",
91
+ "levels": {"4s": -177.37, "4p": -124.776, "4d": -43.891, "5s": -16.838, "5p": -4.009, "5d": 14.41, "6s": 8.679, "6p": 12.15, "7s": 1490.872, "7p": 506.017}},
92
+ "Te": {"electrons": 24, "ecp_core": 28, "method": "UHF/def2-svp",
93
+ "levels": {"4s": -193.995, "4p": -138.646, "4d": -53.066, "5s": -20.317, "5p": -6.55, "5d": 14.248, "6s": 9.781, "6p": 13.486, "7s": 1440.037, "7p": 520.544}},
94
+ "I": {"electrons": 25, "ecp_core": 28, "method": "UHF/def2-svp",
95
+ "levels": {"4s": -211.092, "4p": -152.531, "4d": -62.57, "5s": -23.837, "5p": -9.333, "5d": 16.33, "6s": 11.033, "6p": 15.136, "7s": 1532.496, "7p": 519.999}},
96
+ "Cs": {"electrons": 9, "ecp_core": 46, "method": "UHF/def2-svp",
97
+ "levels": {"5s": -35.821, "5p": -18.472, "5d": 2.249, "6s": -1.634, "6p": 0.742, "6d": 6.849, "7s": 1.675, "7p": 10.23, "8s": 17.56, "9s": 544.806}},
98
+ "Ba": {"electrons": 10, "ecp_core": 46, "method": "RHF/def2-svp",
99
+ "levels": {"5s": -44.314, "5p": -24.847, "5d": 1.528, "6s": -4.409, "6p": 0.833, "6d": 4.739, "7s": 2.164, "7p": 32.857, "8s": 2266.157}},
100
+ "La": {"electrons": 11, "ecp_core": 46, "method": "UHF/def2-svp",
101
+ "levels": {"4f": 17.79, "5s": -50.31, "5p": -28.792, "5d": 0.607, "6s": -4.892, "6p": 0.6, "6d": 6.172, "7s": 2.907, "7p": 12.325, "8s": 25.855, "9s": 316.468, "10s": 916.308}},
102
+ "Ce": {"electrons": 30, "ecp_core": 28, "method": "UHF/stuttgartrsc",
103
+ "levels": {"4s": -333.948, "4p": -245.506, "4d": -130.482, "4f": 5.907, "5s": -51.592, "5p": -29.095, "5d": 0.865, "5f": 13.981, "6s": -5.121, "6p": 1.442, "6d": 4.94, "6f": 40.29, "7s": 2.709, "7p": 10.525, "7d": 23.04, "8s": 1134.69, "8p": 47.529}},
104
+ "Pr": {"electrons": 31, "ecp_core": 28, "method": "UHF/stuttgartrsc",
105
+ "levels": {"4s": -351.877, "4p": -257.319, "4d": -139.215, "4f": 2.253, "5s": -55.459, "5p": -31.695, "5d": 0.844, "5f": 14.622, "6s": -6.796, "6p": 0.413, "6d": 5.263, "6f": 43.262, "7s": 2.567, "7p": 10.207, "7d": 23.009, "8s": 1054.693, "8p": 49.488}},
106
+ "Nd": {"electrons": 32, "ecp_core": 28, "method": "UHF/stuttgartrsc",
107
+ "levels": {"4s": -355.91, "4p": -189.132, "4d": -139.565, "4f": 2.017, "5s": -43.931, "5p": -9.714, "5d": 6.021, "5f": 19.872, "6s": 0.637, "6p": 18.079, "6d": 22.488, "6f": 53.465, "7s": 4.23, "7p": 225.184, "7d": 83.163, "8s": 964.408, "8p": 17738.828}},
108
+ "Pm": {"electrons": 33, "ecp_core": 28, "method": "UHF/stuttgartrsc",
109
+ "levels": {"4s": -380.097, "4p": -277.126, "4d": -149.457, "4f": -0.28, "5s": -57.123, "5p": -31.896, "5d": 0.943, "5f": 17.963, "6s": -5.326, "6p": 1.718, "6d": 4.141, "6f": 52.907, "7s": 2.545, "7p": 14.819, "7d": 17.378, "8s": 892.295, "8p": 77.776}},
110
+ "Sm": {"electrons": 34, "ecp_core": 28, "method": "UHF/stuttgartrsc",
111
+ "levels": {"4s": -380.671, "4p": -277.456, "4d": -145.66, "4f": 2.583, "5s": -53.574, "5p": -28.874, "5d": 5.481, "5f": 24.131, "6s": -4.86, "6p": 2.251, "6d": 34.808, "6f": 72.268, "7s": 2.884, "7p": 18.552, "7d": 125.23, "8s": 762.237, "8p": 96.782}},
112
+ "Eu": {"electrons": 35, "ecp_core": 28, "method": "UHF/stuttgartrsc",
113
+ "levels": {"4s": -396.428, "4p": -286.572, "4d": -151.387, "4f": 0.837, "5s": -54.89, "5p": -29.471, "5d": 6.05, "5f": 25.76, "6s": -4.911, "6p": 2.249, "6d": 38.43, "6f": 77.55, "7s": 2.937, "7p": 18.777, "7d": 139.129, "8s": 768.798, "8p": 96.766}},
114
+ "Gd": {"electrons": 36, "ecp_core": 28, "method": "UHF/stuttgartrsc",
115
+ "levels": {"4s": -425.809, "4p": -304.76, "4d": -168.766, "4f": -9.005, "5s": -64.448, "5p": -36.227, "5d": 3.14, "5f": 22.88, "6s": -6.743, "6p": 0.699, "6d": 41.922, "6f": 73.004, "7s": 2.414, "7p": 16.325, "7d": 162.712, "8s": 784.721, "8p": 88.02}},
116
+ "Tb": {"electrons": 37, "ecp_core": 28, "method": "UHF/stuttgartrsc",
117
+ "levels": {"4s": -412.207, "4p": -309.574, "4d": -160.472, "4f": -3.609, "5s": -55.796, "5p": -31.388, "5d": 7.846, "5f": 26.461, "6s": -4.925, "6p": 2.535, "6d": 52.995, "6f": 82.239, "7s": 3.11, "7p": 20.402, "7d": 193.151, "8s": 691.091, "8p": 99.39}},
118
+ "Dy": {"electrons": 38, "ecp_core": 28, "method": "UHF/stuttgartrsc",
119
+ "levels": {"4s": -434.576, "4p": -314.453, "4d": -165.484, "4f": -5.479, "5s": -58.344, "5p": -31.665, "5d": 8.783, "5f": 27.055, "6s": -5.051, "6p": 2.611, "6d": 58.574, "6f": 84.902, "7s": 3.049, "7p": 20.733, "7d": 212.39, "8s": 870.849, "8p": 100.72}},
120
+ "Ho": {"electrons": 39, "ecp_core": 28, "method": "UHF/stuttgartrsc",
121
+ "levels": {"4s": -463.811, "4p": -321.493, "4d": -168.195, "4f": -7.467, "5s": -60.975, "5p": -32.077, "5d": 9.288, "5f": 27.698, "6s": -5.138, "6p": 2.705, "6d": 60.102, "6f": 87.45, "7s": 3.219, "7p": 22.746, "7d": 215.409, "8s": 783.722, "8p": 118.515}},
122
+ "Er": {"electrons": 40, "ecp_core": 28, "method": "UHF/stuttgartrsc",
123
+ "levels": {"4s": -497.152, "4p": -349.506, "4d": -182.885, "4f": -21.974, "5s": -73.723, "5p": -43.144, "5d": 16.355, "5f": 22.902, "6s": -8.662, "6p": 8.632, "6d": 164.262, "6f": 81.722, "7s": -0.282, "7p": 87.135, "7d": 580.513, "8s": 577.489, "8p": 698.003}},
124
+ "Tm": {"electrons": 41, "ecp_core": 28, "method": "UHF/stuttgartrsc",
125
+ "levels": {"4s": -513.641, "4p": -355.268, "4d": -186.996, "4f": -24.579, "5s": -75.162, "5p": -43.879, "5d": 17.544, "5f": 23.615, "6s": -8.746, "6p": 10.07, "6d": 170.686, "6f": 84.435, "7s": -0.272, "7p": 99.316, "7d": 604.766, "8s": 598.749, "8p": 736.796}},
126
+ "Yb": {"electrons": 42, "ecp_core": 28, "method": "RHF/stuttgartrsc",
127
+ "levels": {"4s": -511.544, "4p": -352.4, "4d": -168.992, "4f": -14.312, "5s": -64.636, "5p": -34.639, "5d": 22.037, "5f": 31.632, "6s": -5.243, "6p": 16.885, "6d": 142.926, "6f": 103.838, "7s": 1.989, "7p": 112.991, "7d": 473.442, "8s": 191.032, "8p": 742.28}},
128
+ "Lu": {"electrons": 17, "ecp_core": 54, "method": "UHF/crenbl",
129
+ "levels": {"4f": -25.405, "5d": 1.337, "5f": 56.044, "6s": -7.943, "6p": -0.447, "6d": 3.422, "6f": 222.172, "7s": 1.259, "7p": 2.528, "7d": 10.287, "7f": 738.535, "8s": 6.998, "8p": 9.953, "8d": 27.561, "8f": 2388.48, "9s": 43.151, "9p": 36.057, "9d": 73.23, "9f": 8673.216, "10s": 239.248, "10p": 94.622, "10d": 1311.319, "11s": 2728.426, "11p": 333.176}},
130
+ "Pb": {"electrons": 22, "ecp_core": 60, "method": "UHF/def2-svp",
131
+ "levels": {"5s": -167.936, "5p": -104.869, "5d": -29.171, "6s": -15.313, "6p": -1.768, "6d": 13.129, "7s": 8.28, "7p": 10.027, "8s": 1535.58, "8p": 554.506}},
132
+ "Bi": {"electrons": 23, "ecp_core": 60, "method": "UHF/def2-svp",
133
+ "levels": {"5s": -181.758, "5p": -115.801, "5d": -35.589, "6s": -18.445, "6p": -3.762, "6d": 13.903, "7s": 9.32, "7p": 11.84, "8s": 1481.155, "8p": 584.209}},
134
+ }