Input data¶
The current state layer is generated from compact tracked source tables.
Frozen Gaussian basis bundles and profile-generation settings are declared
separately in data/profile_datasets.yaml.
Atomic-state layer¶
The curated state table is:
data/states/curated/atom_states_v2.json
The selection file used to build it is:
data/states/selection/required_states_v2.csv
Each curated record contains the fields needed to construct a one-center PySCF atom and assign spherical fractional occupations: element, charge, electron count, configuration, multiplicity, spin-resolved angular-momentum counts, state role, curation status, and occupation policy.
The current curated table contains neutral, cationic, physical/provisional monoanion, and formal-anion reference states. Profile-generation datasets may select a subset of these states by charge and state role.
Source convention¶
Neutral and positive-ion state labels are prepared from the NIST Atomic Spectra Database Ground States and Ionization Energies interface, NIST Standard Reference Database 78. This repository keeps compact configuration labels needed for generator reproducibility, NIST ground-level labels, parsed simple LS-term multiplicities, a small set of manual domain-specific multiplicity assignments for non-LS NIST labels, and an ionization-energy provenance class derived from the NIST bracket syntax. It does not redistribute raw NIST ASD pages, quantitative ionization-energy values, numerical uncertainty records, or bibliography rows.
Most retained multiplicities are parsed automatically from simple LS-like
NIST Ground Level labels. For seven neutral/cation states in the intended
charge-policy domain whose NIST labels use jj or pair-coupled notation, the
project assigns LS-equivalent/Hund-consistent multiplicities manually in the
source table. Remaining non-empty labels outside this domain that are not parsed by the
simple rule are left blank. No separate review table is shipped because these
rows are outside the intended neutral/cation computation scope.
A compact monoanion source table is stored at
data/states/source/ning2022/ning2022_monoanions.csv. It is curated from Ning and Lu
2022 (DOI: 10.1063/5.0080243) and retains only state labels plus status flags for H-U monoanions. It does
not store electron-affinity values or numerical uncertainties. Rows may be
flagged as accepted experimental/evaluated monoanions, provisional experimental
monoanions, theory-only diagnostics, or excluded/unbound/problematic cases. This
source table is part of the current state-preparation layer.
A formal-anion preparation table is stored at
data/states/curated/formal_atoms_ions.csv. It contains formal references for
required H-Rn monoanions without accepted physical/reference rows and for the current
p-block multianion policy. Purely formal actinide fallback monoanions are out of
the current scope. The source-backed Fr-U rows from the Ning--Lu table are
included only in the primary dyall-v4z H-Lr dataset and retain their original
physical/provisional/theory-only status. Every formal row is marked
physical_status = not_claimed; these records are stockholder/Hirshfeld-I-like
density references, not stable isolated atomic-anion claims.
The state-layer details are documented in data/states/README.md, the policy
rationale is summarized in docs/state_policy.md, the user-facing validation
entry point is scripts/check_states.py, and the regeneration entry point is
scripts/build_atom_states.py.
Basis-set layer¶
The frozen basis bundles are stored under data/basis_sets/. Each bundle contains
one NWChem-format spherical basis file, a manifest, SHA256 checksum, local
reference notes, and a bundle README.
Basis branches currently declared for profile generation:
| basis ID | role | active dataset scope |
|---|---|---|
x2c-QZVPall |
primary H-Rn scalar-relativistic branch | all curated states, H-Rn |
dyall-v4z |
primary H-Lr heavy-element branch | all curated states, H-Lr |
x2c-QZVPall-s |
NMR-shielding-oriented supplemented x2c branch | neutral and anion states, H-Rn; cations excluded |
dyall-av4z |
augmented dyall branch | neutral and anion states in H-Ba and Hf-Ra where covered; cations excluded |
The two primary datasets are not split into separate atom/cation/anion products.
The supplemented/augmented branches likewise keep neutral and anion rows together
under one basis identity, while excluding cations because their compact densities
are not the focus of the tail-sensitivity comparison. x2c-QZVPall-s is not a
general diffuse tail basis; dyall-av4z is the available-element augmented
branch.
The basis text checksum is the basis-data identity. Ordinary validation is offline and checks required files, checksums, NWChem spherical headers, manifest consistency, and declared element coverage. If PySCF is installed, representative basis-parse smoke checks are also run.
The basis-layer details are documented in data/basis_sets/README.md, and the
validation entry point is scripts/check_basis_bundles.py.
Dataset specification¶
data/profile_datasets.yaml connects the input layers to the generated data
products. It declares:
- the profile-data version;
- PySCF version expected for release generation;
- PBE0, UKS, sf-X2C-1e, and pure/spherical basis settings;
- SCF convergence and DFT grid settings;
- the stored radial profile grid;
- the independent QA grid;
- density cutoffs used for radii;
- active dataset IDs, basis IDs, element coverage, charge-class selection, and state-role selection.
This YAML file should be treated as the central machine-readable contract for profile-generation settings.
State-selection outputs¶
The state-validation command is:
python scripts/check_states.py
The state-preparation command is:
python scripts/build_atom_states.py
It produces the current selection and curated-state set:
data/states/selection/required_states_v2.csv
data/states/curated/atom_states_v2.csv
data/states/curated/atom_states_v2.json
data/states/curated/atom_states_summary_v2.json
The output combines NIST neutral/cation rows, accepted H-Rn and source-backed Fr-U Ning--Lu monoanion rows, and explicitly formal anion rows. The JSON uses curated ground multiplicities and a spherical l-count occupation convention rather than the earlier configuration-only Hund high-spin rule.