atomref-proatoms neutral radial profiles v1¶
This notebook inspects the generated v1 release artifacts. It reads radial profiles, cutoff radii, and QA tables from data/; it does not run SCF calculations and does not define the production workflow.
For the density model, see docs/theory.md. For file and column conventions, see docs/data.md.
Data contract¶
The active v1 profile datasets contain neutral atoms only. Dataset scope, method settings, radial grids, QA grids, and density cutoffs are declared in data/profile_datasets.yaml.
In [1]:
Copied!
from pathlib import Path
import pandas as pd
ROOT = Path.cwd()
if not (ROOT / 'data').exists():
ROOT = Path.cwd().parents[1]
profiles_root = ROOT / 'data' / 'profiles'
radii_root = ROOT / 'data' / 'radii'
qa_root = ROOT / 'data' / 'qa'
dataset_dirs = sorted(
path for path in profiles_root.glob('*') if path.is_dir()
)
[
(path.name, len(pd.read_csv(path / 'profiles.csv')))
for path in dataset_dirs
]
from pathlib import Path
import pandas as pd
ROOT = Path.cwd()
if not (ROOT / 'data').exists():
ROOT = Path.cwd().parents[1]
profiles_root = ROOT / 'data' / 'profiles'
radii_root = ROOT / 'data' / 'radii'
qa_root = ROOT / 'data' / 'qa'
dataset_dirs = sorted(
path for path in profiles_root.glob('*') if path.is_dir()
)
[
(path.name, len(pd.read_csv(path / 'profiles.csv')))
for path in dataset_dirs
]
Out[1]:
[('pbe0_sfx2c_dyallv4z_h-lr_spherical_v1', 1200),
('pbe0_sfx2c_x2cqzvpall_h-rn_spherical_v1', 1200)]
In [2]:
Copied!
qa_summary = pd.read_csv(qa_root / 'qa_summary.csv')
qa_summary
qa_summary = pd.read_csv(qa_root / 'qa_summary.csv')
qa_summary
Out[2]:
| dataset_id | basis_id | state_count | passed_count | failed_count | max_abs_electron_count_error_qa | max_rel_angular_sigma | linear_dependency_warning_count | |
|---|---|---|---|---|---|---|---|---|
| 0 | pbe0_sfx2c_x2cqzvpall_h-rn_spherical_v1 | x2c-QZVPall | 86 | 86 | 0 | 2.287948e-12 | 2.597422e-15 | 0 |
| 1 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | dyall-v4z | 103 | 103 | 0 | 2.415845e-12 | 2.684266e-15 | 55 |
In [3]:
Copied!
radii_tables = {
path.parent.name: pd.read_csv(path) for path in radii_root.glob('*/radii.csv')
}
pd.concat(radii_tables, names=['dataset_id']).reset_index(level=0).head()
radii_tables = {
path.parent.name: pd.read_csv(path) for path in radii_root.glob('*/radii.csv')
}
pd.concat(radii_tables, names=['dataset_id']).reset_index(level=0).head()
Out[3]:
| dataset_id | state_id | symbol | z | charge | electron_count | multiplicity | state_category | state_role | r_iso_0.003_e_bohr3_bohr | r_iso_0.001_e_bohr3_bohr | r_iso_0.0001_e_bohr3_bohr | r_iso_0.003_e_bohr3_angstrom | r_iso_0.001_e_bohr3_angstrom | r_iso_0.0001_e_bohr3_angstrom | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | H_q0_mult2_hund | H | 1 | 0 | 1 | 2 | nist_ground_state | recommended | 2.332423 | 2.902821 | 4.128081 | 1.234265 | 1.536107 | 2.184487 |
| 1 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | He_q0_mult1_hund | He | 2 | 0 | 2 | 1 | nist_ground_state | recommended | 2.148013 | 2.535794 | 3.374066 | 1.136679 | 1.341884 | 1.785479 |
| 2 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | Li_q0_mult2_hund | Li | 3 | 0 | 3 | 2 | nist_ground_state | recommended | 2.699133 | 4.168646 | 6.469639 | 1.428320 | 2.205952 | 3.423585 |
| 3 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | Be_q0_mult1_hund | Be | 4 | 0 | 4 | 1 | nist_ground_state | recommended | 3.362242 | 4.129170 | 5.685431 | 1.779222 | 2.185063 | 3.008601 |
| 4 | pbe0_sfx2c_dyallv4z_h-lr_spherical_v1 | B_q0_mult2_hund | B | 5 | 0 | 5 | 2 | nist_ground_state | recommended | 3.257091 | 3.914727 | 5.403529 | 1.723578 | 2.071584 | 2.859424 |
Interpretation notes¶
The profile tables are the canonical radial-density release artifacts. The radii tables are derived from those profiles by interpolation at the declared density cutoffs, and the QA tables summarize release-gate checks for each generated state.