Temari dataset-factors v1.0.0 — atomic scattering factors f_x(s), f_e(s), Z = 1–86
First release of the
dataset-factorsfamily — atomic scattering factors, independent of the F(s, E₀) dataset (dataset-v5.0.0) and of the software version.
No DOI has been minted yet. Cite this versioned release tag and identify the archive by its SHA-256:b1ab343072873810b39c63c23ee4074d12f251c2df29c4800037b1ddf56bb9cc. A Zenodo record, if created later, will be added toCITATION.cffand the Data page; the archive here will not be rebuilt for it.
X-ray atomic scattering factors f_x(s) [electrons] and first-Born electron scattering factors f_e(s) [Å] for the 86 neutral atoms Z = 1–86, on 7681 nodes s_i = 6·i/7680 (0 ≤ s ≤ 6 Å⁻¹), from a fully relativistic (Dirac) self-consistent field with exact exchange in the KLI approximation.
This is the data only. The software is released separately (v1.1.0 was tagged with it) and carries its own version.
| Dataset version | 1.0.0 |
| Model | DHFS-KLI-DTM1-dt16-neutral-v1 (full-Dirac SCF + KLI, dirac_true_midpoint_v1 numerics, radial grid dt/16 = 6.25e-5, n_r = 323,400) |
| Schema | 1 (schema/temari_factors_v1.schema.json) |
| Generated with | Temari src/gen_factors.jl @ 0612e0caa6d4edfd6dcefc4ca68cdb450d004531 (source fingerprint ad39233717ee8e2c4922bd0752b8cfe6654db7db49ba53eb92de2b937a777905), Julia 1.12.6 (pinned in MANIFEST.md) |
| Archive SHA-256 | b1ab343072873810b39c63c23ee4074d12f251c2df29c4800037b1ddf56bb9cc |
| Manifest digest | 5aa766ce94f5dcdb58d815f436dd4fbfe852b8cc5c026e11b097d1e0ff391d1e |
| Licence | data CC-BY-4.0, bundled loader MIT (LICENSE.md states the split) |
Read before use — the five things that bite
Each is checked by the executable contract shipped in the archive, and each has a negative mutant showing the check detects it (18 mutants in total; run with --negative).
- The s grid is not stored. Reconstruct s_i = 6·i/7680 in binary64 (
6.0*i/7680; in C# write6.0 * i / 7680.0, not integer division) and check the SHA-256 of the float64 little-endian byte stream:1476113c622ccb9e62d4b56973277b7e550fef44357cf42d7923a9dde84f32fb. - f_x is interpolated in s with a clamped left end (f_x′(0) = 0) and a not-a-knot right end. Natural or NAK/NAK splines are wrong (up to 10× the representation budget for Cs/Ba).
- f_e is interpolated in t = s², not in s, not-a-knot at both ends. The t nodes are non-uniform.
- Domain [0, 6] Å⁻¹ inclusive; nothing else. No extrapolation, no clamping. s = sinθ/λ in Å⁻¹ (q = 4πs). γ (the incident-electron relativistic factor) is not included in f_e — multiply downstream.
- Values are 11-significant-digit decimals stored as JSON numbers. Parse as binary64; do not re-round.
Golden vectors (C, Fe, Cs, Au at 16 off-knot points, tolerance 1e-12 relative) pin the convention; the Python contract, a Julia reference loader and SciPy's CubicSpline agree to 4×10⁻¹⁶.
sha256sum -c temari-factors-v1.0.0.tar.gz.sha256
tar -xzf temari-factors-v1.0.0.tar.gz && cd temari-factors-v1.0.0
python tools/temari_factors_contract.py . --negative # exits non-zero on failureWhat the numbers are worth — and what is not claimed
- T_comp = 1e-7 electrons (f_x) and T_comp,e = 1e-7 Å (f_e) are release acceptance budgets, split 10 : 1 between numerical error (grid + SCF stopping) and representation error (interpolation + rounding). They are supported by measured differences and conservative triangle allocations, not by an a-priori error theorem: the radial grid was certified element by element (density L¹ bound, worst 0.58 × B_grid); the SCF stopping error of every shipped solve was measured against a τ/10 reference (worst 0.39 × B_scf for f_x, 0.59 × of the f_e allowance, with an assumed 0.10 allowance for the reference's own residual); the interpolation-plus-rounding error was measured on sealed midpoints for all 86 elements (worst 0.16 × B_repr, 0.34 × B_repr,e).
- Endpoint truncation of the radial grid: sensitivity to the tested extensions (r₀/10, r₀/100, r_max×1.5, r_max×2) was ≤ 0.9 % of B_grid — an observed sensitivity, not a bound on the unknown infinite-domain truncation error.
- Model validation: f_x was compared with the DHF values of OFFV1 on eight elements; the tables are KLI, not DHF, and no claim of superiority over DHF or Xα tables is made. No independent external validation of f_e was performed.
- Reproducibility: the archive is built deterministically (built twice, same SHA) and the JSON carries no volatile information — but exact regeneration of the table bytes is not guaranteed: the SCF can stop at a different iterate from one process to the next (observed sporadically — 6 of 85 elements differed between two full runs, all within the stopping tolerance and inside the gates above). The released archive bytes and their SHA-256 are canonical.
- Full QC (F1–F10) was run before packaging and again on the extracted archive with external references (certification copies and τ/10 solutions) on the generating machine; the archive-local check (
check_factor_tables.jlin the repository) reruns F1–F7 and F9 without those references. - Two pre-release runs were superseded and are not part of this release: run 1 (generator
3c9d691) rejected Cs on a series-truncation sub-gate that was a threshold design error; run 2 (f27ed05) carried a per-file provenance note that overstated byte reproducibility. Only the gate and the note text changed; the released files all come from one generator commit and one source fingerprint (details and the run-to-run comparisons — 79/85 and 81/86 elements byte-identical — inMANIFEST.md). - Neutral atoms only; ions are not derivable from these tables.
MANIFEST.md inside the archive (in Japanese) is the record of the generating run: prescription, certification pointers, QC numbers, timeline. manifest.json carries the SHA-256 and byte count of each data file and an order-independent digest.