データ¶
3 つのデータセットを、それ自体として独立に公開しています。それぞれが独自の版の 系列を持ちます。何かを実行する必要はなく、Julia も要りません。
| データセット | 版 | 入手先 | |
|---|---|---|---|
| F(s, E₀) | STEM-EDX 用の内殻イオン化形状因子、525 チャネル | dataset 7.0.0 | Zenodo 10.5281/zenodo.22643468 · GitHub release dataset-v7.0.0 |
| f_x(s), f_e(s) | X 線・電子線の原子散乱因子、中性原子 86 種 | dataset-factors 2.0.0 | Zenodo 10.5281/zenodo.22820415 · GitHub release dataset-factors-v2.0.0 — 後述 |
| f_x(s), f_e(s)、陰イオン | 同じ 2 つの散乱因子、Watson 球で安定化した陰イオン 22 種 | dataset-factors-ion 1.0.0 | Zenodo 10.5281/zenodo.22820492 · GitHub release dataset-factors-ion-v1.0.0 — 後述 |
F と散乱因子は、別の系統の数値です。\(F(s, E_0)\) は、ある元素・ある副殻・あるビーム エネルギーについて、内殻イオン化が運動量移行にどう分布するかを記述するもので、 STEM-EDX や ALCHEMI のシミュレーションが必要とする量です。\(f_x(s)\) と \(f_e(s)\) は、 X 線結晶学・電子線結晶学で普通に使われる弾性散乱の原子散乱因子 — Waasmaier & Kirfel (1995) や Peng et al. (1996) がパラメータ化している数値 — で、 ここではフィットから読み出す代わりに、同じ原子から計算しています。
内殻イオン化形状因子 F(s, E₀) — dataset v7.0.0¶
数値を使う前にこのページを読んでください
F は符号付きで、運動量の規約は q = 4πs、s_cert より先の値は物理ではなく
埋め草で、E₀ 軸はチャネルごとに異なります。これらはどれも、実際に利用側の
コードを壊した実績があります。詳細は後述の 仕様 にまとめて
あり、アーカイブに同梱した実行可能な参照 loader が検査します。
核模型の正誤表: dataset F v4.0.0–v6.0.0
来歴の記述「有限核 (一様球 R = 1.2 A^{1/3} fm)」は誤りです。これらの release は SCF・束縛状態・緩和イオン・連続状態のすべてで点核を使っています。 点核の表として読んでください。元のアーカイブ・数値・チェックサムは そのままで、組み直してはいません。
dataset F v7.0.0 で、有限の一様帯電球を導入しました。model_id は末尾が
-FNUSX で区別され、来歴の記述も直してあります。球の半径は IAEA が
まとめた実測の rms 電荷半径から求めています。ただし Tc・Pm・At の 3 元素は、
文書化してある式による fallback です。
同じ数値設定で計算した点核の対照と比べると、F の最大絶対差は、表の各行の
s 格子上で 1.5 × 10⁻⁸ 〜 5.0 × 10⁻⁴ の範囲に入ります (全 525 チャネル・
14,796 行。1 行 = 1 チャネル × 1 加速電圧)。これは観測された模型差で
あって誤差の上界ではなく、殻によって違います。古い release との差には
数値手法の更新も含まれます。対照の表は v7.0.0 のアーカイブの
control_point_nucleus/ に同梱してあるので、この比較は独立に再計算できます。
入手先¶
| 正本の記録 | Zenodo、10.5281/zenodo.22643468 — 版 DOI |
| ミラー | GitHub release dataset-v7.0.0 |
| サイズ | 圧縮 92 MB、展開 235 MB — うち点核の対照一式が 111 MB |
| ライセンス | データは CC-BY-4.0、同梱 loader は MIT |
2 つの複製はバイト同一です。アーカイブは決定論的に組んであります (エントリはソート済み、mtime はデータセット自身の日付に固定、所有者は固定、 gzip のタイムスタンプ無し)。ですから、Zenodo 上の複製と GitHub 上の複製は、単に 信用するのではなく比較できます。
sha256sum -c temari-dataset-v7.0.0.tar.gz.sha256 # the archive
tar -xzf temari-dataset-v7.0.0.tar.gz && cd temari-dataset-v7.0.0
python tools/temari_contract.py . # the contents; non-zero on failure
temari_contract.py が必要とするのは Python の標準ライブラリだけです。
ダウンロード前に眺める: チャネルの索引はリポジトリに
tables/channels.csv
としてコミットしてあります — 525 行で、GitHub が検索可能な表として表示します。
「自分の元素と吸収端は入っているか」という問いに、92 MB のダウンロード無しで
答えてくれます。
中身¶
版 7.0.0、schema 2、Julia 1.11.9 上の Temari で生成しました。
| チャネル | 525 — K、L1–L3、M1–M5 |
| 行 (チャネル × E₀) | 14,796 |
| 運動量格子 | s = 0 … 16 Å⁻¹、等間隔 321 節点 (刻み 0.05 Å⁻¹) |
| モデル | DHFS-KS23-DiracB-KDIRAC2C-jsplit-fullrange-sym-v4-DSCF-FNUSX — 末尾の -FNUSX が有限核を表します |
| 同梱するもう 1 組 | control_point_nucleus/ — 同じ 525 チャネルを、同じ数値設定で点核として計算した対照一式です。核模型の効きを読者が再計算できるように同梱しています。⚠ 使うためのデータではありません — dataset_version は 0.0.0-dev で、独自の manifest を持ち、top level の manifest には入っていません |
殻ごとの収録範囲:
| 殻 | Z の範囲 | チャネル数 |
|---|---|---|
| K | 6 – 50 | 45 |
| L1, L2, L3 | 20 – 86 | 各 67 |
| M1, M2, M3 | 30 – 86 | 各 57 |
| M4, M5 | 33 – 86 | 各 54 |
チャネルとは何か
チャネルとは、1 つの元素と 1 つの副殻の組です — F_K_Z26.json は鉄の K 殻
(1s)、F_L3_Z79.json は金の L3 殻 (2p₃/₂) です。各チャネルのファイルは
ビームエネルギー \(E_0\) 1 つにつき 1 行を持ちます。Fe K のファイルなら
30 keV から 400 keV までの 28 行です。1 行が運ぶのは F (s 格子上の 321 個の
値)、s_cert_A_inv、tail.eps、sigma_bote_nm2、sigma_own_nm2、過電圧
u = E₀/E_edge、そしてソルバの診断値です。チャネル階層のキーには、閾値として
使った吸収端エネルギー (e_th_keV_bote、Fe K では 7.083 keV)、model id、s 格子、
来歴が入っています。
F とは何か¶
\(F(s, E_0)\) は内殻イオン化形状因子の形状で、\(F(0) = 1\) となるように規格化 されています。STEM-EDX と ALCHEMI が必要とする量そのものです。すなわち、2 つの Bloch 波が \(K = 4\pi s\,a_0\) だけ離れたときの混合動的形状因子 (MDFF) を、放出電子の エネルギーと方向について積分し、\(K = 0\) で規格化したもので、EDX マップが結晶方位に どう依存するかを記述するのに使う非対角量です。ALCHEMI (Atom Location by CHannelling-Enhanced MIcroanalysis) は、まさにその特性 X 線収量の方位依存性から サイト占有率を求める手法で、Temari が供給するのは下流の Bloch 波シミュレーションが 使う非対角イオン化形状因子であって、占有率の精密化そのものは行いません。 それがどんな積分から来るのかは 物理 (処方) にあります。
- s は Å⁻¹ 単位の \(\sin\theta/\lambda\) で、結晶学の規約です。運動量移行は q = 4πs なので、原子単位では K = 4πs·a₀ です。たとえば s = 0.5 Å⁻¹ は q = 6.28 Å⁻¹、すなわち K = 3.32 a₀⁻¹ です。
- F は GOS ではなく、GOS の代わりに使ってはいけません。一般化振動子強度は エネルギー損失を変数として残していて正の量ですが、F は損失を積分してしまって いて符号付きです。
- F は断面積ではありません。絶対スケールは別途
sigma_bote_nm2が与えます。 これは Bote et al. (2009) の係数から来ています。
仕様¶
以下は好みの問題ではありません。どれも実際に利用側を壊した実績があり、どれも
temari_contract.py が検査します。
- F は符号付きです。525 チャネル中 358 チャネルが負の値を含み、最小値は
−0.3194 です。F を非負として扱う経路 —
clip(0)、abs、単調性の仮定 — は どれも F を黙って壊し、その破損は q での積分を経ても生き残ります。F を、 利用側が clip する GOSH 形式で公開しないのはこのためです。 - q = 4πs です。s をそのまま運動量として使うと 4π 倍ずれます。
s_certより先の値は厳密に 0 の埋め草であって計算値ではありません。 すべての行が、自分がどこまで届くかを宣言しています。1,598 行 (10.8 %) は 16 Å⁻¹ に届く前で止まります。この埋め草を補間の基底に入れると、結果が 0 側へ 引きずられます。- E₀ 軸はチャネルごとに異なります — 525 チャネルに対して 459 通りの軸が あり、行数は 22 から 40 です。和集合の軸の上に密な [チャネル, E₀, s] の 立方体は存在しません。(30 keV から 400 keV までの 22 個の絶対節点はすべての チャネルに存在します。異なるのは、チャネルごとの過電圧の節点です。)
epsは上界であって E₀ 方向に補間してはいけません。挟む 2 行の最大値を 取ってください — 補間した上界は上界ではありません。 E₀ がちょうど行の上に乗る場合は、その行のepsだけを使ってください。 挟む 2 行が存在しないからで、それでも隣の行と組にすると、epsが E₀ に対して 単調でないところで答えが変わります。epsは一般には単調ではありません — Rn M5 の 30 keV では、2 通りの読み方が 1.29×10⁻⁴ と 1.51×10⁻⁴ を与えます。s_certも同じで、節点の上ではその行の値、行と行の間では 2 つのうち小さいほうを 取ってください。- E₀ 補間は x = ln(u−1) の上で行い、y には値がすべて正の s 列では log F を、
それ以外では生の F を使い、
s_certがその列に届く行だけを対象に します。生の E₀ の上で生の F を補間すると、出荷している利用側と異なる答えに なります — 最大 2.9×10⁻³ で、所々で符号が逆になります。 そのうえで s 基底に入れるのは、その E₀ のs_cert以下の列だけです — どれかの行が届く全列ではありません。広く取ると、その E₀ では E₀ 軸方向の外挿に よってしか存在しない高 s 列まで入ってしまい、s_certの直下で最大 3.3×10⁻³ ずれます。これはこのデータセットの E₀ 補間誤差の最悪値と同じ桁です。 s_certより先には性質の異なる 2 つの領域があります。s_certとs_kin= 1/λ(E₀) の間では値は未収録で、上界epsを伴います。s_kinより 上では、そのようなビーム対は Ewald 球上にそもそも存在しないので、要求そのものが 成り立ちません — そこに上界を付けることは、起こり得ない配置について何かを 保証することになってしまいます。
移植を固定ベクトルで検査する
上の 5 と 6 の 2 文目は 2026 年 8 月に足したものです。独立に書いた第 2 の 評価器が、まさにこの 2 箇所で参照 loader と食い違ったためです。どちらの読みも 50 本の参照ベクトル で固定してあり、3 つの領域すべてを覆い、両評価器が 10⁻¹² で一致しています。 ⚠ これは post-release のもので、公開済みアーカイブを変えずに作りました。 アーカイブ自身はこれを含んでいません。
s_kin は幾何学的な限界です — 半径 \(1/\lambda\) の Ewald 球上の 2 本のビームは、
最大でも直径 \(2/\lambda\) しか離れられず、\(s = |\Delta k|/2\) なので \(s = 1/\lambda\)
になります。s_cert = min(16, 0.98·s_kin) を格子節点へ切り下げたものが収録された
保証で、その 2 % 内側です。どちらも精度の限界ではありません。
1 行を実際に追う
30 keV の Fe K: λ = 0.0698 Å なので s_kin = 14.33 Å⁻¹、0.98·s_kin = 14.04
で、この行は s_cert_A_inv = 14.0 と tail.eps = 5.9×10⁻³ を記録しています。
その F は 0 … 14.0 の 281 節点に計算値を、その上の 40 節点に厳密な 0 を
持ちます。200 keV では 1/λ = 39.9 Å⁻¹ なので、16 までのすべての節点が保証
され、s_cert = 16 です。
このチャネルを、行としては存在しない \(E_0\) = 160 keV で評価するには (隣の
行は 150 keV と 170 keV です)、u = 160/7.083 として x = ln(u − 1) を作り、
列ごとに、出荷している補間子 — s_cert がその s に届くすべての行を通る
x 上の単調 3 次 (PCHIP) で、列がすべて正なら log F の上で組むもの — をその
x で評価します。eps は挟む 2 行の大きいほうを取ります。temari_contract.py
はまさにこれを行い、移植が再現しなければならない golden ベクトルを持って
います。
Python で読む¶
アーカイブには動く reader が既に入っています。検証に使う tools/temari_contract.py
そのもので、標準ライブラリしか要らず、実行するだけでなく import できます。
import sys
sys.path.insert(0, "tools") # 展開したアーカイブの中で
from temari_contract import load_channel, f_at
ch = load_channel("F_K_Z26.json") # 鉄の K 殻
value, bound, region = f_at(ch, 200.0, 1.25) # E₀ は keV、s は Å⁻¹
# -> 0.6877590692528429, 0.0, 'tabulated'
f_at は 3 要素を返し、効いてくるのは 3 番目です。仕様の 3 つの
領域のどこに入ったかを教えてくれるので、s_cert と自分で比べる必要がありません。
f_at(ch, 30.0, 14.0) # (0.0029481544, 0.0, 'tabulated') 計算値
f_at(ch, 30.0, 14.2) # (0.0, 0.005896507, 'unrecorded') s_cert の先。bound が効く
f_at(ch, 30.0, 15.0) # (0.0, nan, 'impossible') そのビーム対は存在しない
E₀ 方向の補間も、出荷している利用側と同じ座標で行われます —
f_at(ch, 160.0, 2.5) はファイルに存在しない行を評価します。
これは v7.0.0 の使用例であって、Temari の Python API ではありません
load_channel と f_at は、dataset v7.0.0 に同梱された参照 loader の
入口 2 つです。そのアーカイブが凍結されているので、その版に対しては安定です。
しかしパッケージではなく、データセットと独立に版が付いているわけでもなく、
同じファイルの他の部分 — とくにスプラインの内部 — は界面ではありません。
読み込むデータセットの版を固定し、この名前の上にライブラリを組まないでください。
数値はどこまで信じてよいか¶
- QC: 525 / 525 チャネルが合格、生成ゲートの失敗はゼロです。E₀ 軸上の leave-one-out (LOO) 検査は、ゲート 5×10⁻³ に対して最悪 1.16×10⁻³ です。
- ⚠ この leave-one-out の値は E₀ 補間の誤差上界ではありません。軸の両端の 2 節点ずつを省くので、閾値直上の領域と 400 keV 側は構造的にこの検査の死角です。 区間内部の直接測定は、範囲の一部でこれを上回ります (最悪 3.0×10⁻³、閾値直上。 検証 を参照)。
- ⚠ 部分波打ち切りの処方感度 (2026-08-20 に出荷後測定): 出荷の部分波数の規則
(
⌈κ·min(r_core, 6/Z)⌉+12) を⌈κ·r_core⌉+12に替えると、M 殻の F(s) が s ≈ 0.15–0.3 で絶対 6.3×10⁻⁴ (3d) 〜 1.65×10⁻³ (3s)、σ_own が 1.2×10⁻³ 〜 5.7×10⁻³ 動きます (軽元素の L 殻で ≤ 1.6×10⁻⁴ / 6×10⁻⁴、K 殻は ≤ 3×10⁻⁷)。これは二処方間の感度であって誤差の上界ではなく、 第 2 の処方のほうが収束側です。s ≤ 2 の E₀ 補間の項 (8.5×10⁻⁵) より M 殻で 1 桁大きく、 次世代 (v6) で処方を変えます。同日に、ε 求積の閾値側区間 (20 点) が重元素 (Z ≳ 80) の K 以外の殻で 未収束であることも分かりました (最悪 Rn M5 で F の絶対差 6.0×10⁻⁵、σ_own 2.4×10⁻⁴。v6 では 40 点)。 出荷データの隣に置いたsrc/prod_v5_jl/ERRATA.mdが正本です (MANIFEST は不変)。 - ⚠ 外部の物差しは少なく、16 Å⁻¹ に届くものは 1 つもありません。一般化振動子 強度については、この分野で最も新しい公開データベースである Dirac GOS データベース (Zhang et al., 2023) が q = 50 Å⁻¹ で止まり、これはこの規約では s = 3.98 Å⁻¹ です。F(s) そのものについては、計算された形状表が 2 つあります: s = 2.5 までの Oxley & Allen (2000) と、s = 20 までの µSTEM の形状因子 (Allen et al., 2015) で、どちらも K 殻と L 殻、どちらも局所交換の原子と 1 成分の連続状態によるものです。これらに対して形状は s ≈ 0.75 (Si K)、 2 (Fe K)、0.3 Å⁻¹ (Fe L 殻) まで 1 % 以内で一致し、その先では下回ります。 乖離の大部分は、試験した観測量が反応する s < 2 Å⁻¹ の範囲より上にあります。 曲線は比較ページにあります。高 s 領域についてそれ以外に 言えることはすべて、内部の恒等式と解析的極限に依拠しており、他者の数値には 依拠していません。
- 絶対断面積は Bote–Salvat であってこの計算ではありません。Bote et al. (2009)
の式の実験からの RMS 偏差は 10 % (K)、15 % (L)、24 % (M) です
(Llovet et al., 2014)。
sigma_own_nm2は内部整合性の指標として併記して います — これは診断値であって検証スコアではなく、Bote–Salvat も正解値では ありません。
何が・どのように検査されているかは検証を参照してください。
終状態の場への感度¶
終状態は緩和したイオンです: 連続状態の電子を解く前に、内殻の空孔を自己無撞着に 遮蔽させます。よく使われるもう一つの選択 — 凍結した中性原子の場 — は数値の設定では なく別の処方で、軽元素では両者が一致しません。
200 keV での σ を Bote–Salvat (Bote et al., 2009) と比べると、緩和の処方は Be K で 25 %、B で 18 %、C で 14 % 低く、差は Z とともに単調に縮みます — Ne で 6 %、Fe K ではほぼ無くなります (1.004 = 0.4 % 高い)。凍結した場で計算し直すと、 表の F(s) は最大 4.6 × 10⁻² 動きます (Be、s = 0.25 Å⁻¹。回折で最も重みの大きい範囲)。 Fe K では 3.7 × 10⁻³ です。
これは直さずに文書に残しています。凍結のほうが良いとは示せないからです。凍結は Dirac GOS データベース (Zhang et al., 2023) を 2–4 %、独立なもう一つの公開計算 (Segger et al., 2023) を 4–11 % 上回り、Bote–Salvat を 2 % 下回ります。二つの公開計算 どうしも 1.8–6.4 % 食い違い、どの処方もこの幅の帯の中で判定されることになります。 元素ごとの実験値の集成 Llovet et al. (2014) は両方向を指し — C と N では凍結、 O・Ne・Fe では緩和のほうが近い — ばらつきは効果より大きく、選択が最も効く Be と B には K 殻の測定が 1 つもありません。上の数値は、この一つの選択に対する表の感度として 読んでください。表の誤差棒ではありません。
原子散乱因子 f_x(s), f_e(s) — dataset-factors v2.0.0¶
中性原子 86 種 (Z = 1–86) の X 線原子散乱因子 \(f_x(s)\) [electrons] と
第一 Born の電子散乱因子 \(f_e(s)\) [Å] を、KLI 交換 — Krieger et al. (1992) の
最適化有効ポテンシャル (OEP) に対する交換のみの KLI 近似 — を用いた完全相対論的
(Dirac) な自己無撞着場 (SCF) から求めたものです。これは F(s, E₀) とは別のデータセット
系統で、E₀ 軸を持たず、独立した版の系列と独自の release
dataset-factors-v2.0.0
(データは CC-BY-4.0、同梱 loader は MIT) を持ちます。版 DOI は
10.5281/zenodo.22820415 です。
⚠ これは F(s, E₀) とは別の Zenodo 系列です (系列 DOI
10.5281/zenodo.22644247。その時点の
最新版に解決されます)。DOI は、保存された release を引用と保存のために識別する
ものであって、認証や誤差上界を主張するものではありません。
誤差上界の保証を持つファイルはありません
v2.0.0 のすべての表は artifact_role = "computed" と
certification_status = "not_certified" を自分で名乗ります。v1.0.0 が述べていた
停止誤差の上界は 2026-09-13 に撤回しました。根拠が条件つきだったためです —
より厳しい (τ/10) 参照解の残差に対する仮定した余裕に依っており、その仮定を
τ/100 と照らして確かめたのは H、He、Ne、Na だけでした。
これは数値が誤っているという表明ではありません。v1.0.0
(10.5281/zenodo.22644248) は
取り下げていません。v1.0.0 が述べた保証にも同じ限界が当てはまります。
2026-08 の格子の認証の結果は、保証としてではなく履歴として、各ファイルの
certification_history に残しています。
v1.0.0 から変わったのは、各ファイルが自分について述べる内容であって、処方では ありません。ファイルは schema 2 に従い、\(f_x\) と \(f_e\) は 84 元素で v1.0.0 と ビット同一です。Ba と Ta は、収録した最後の桁が違います (\(f_x\) で最大 1.0e-9 electrons、\(f_e\) で最大 4.0e-9 Å。SCF の停止の許容の約 10 分の 1 です。固有値と モーメントも動いています)。表を再生成したときに、SCF が停止許容の内側の別の 反復で止まったためです。
v1.0.0 アーカイブへの正誤表 (2026-08-19)
アーカイブに同梱した README.md の中に、いま読むと事実と合わない記述が 2 つあります。
アーカイブはそのために組み直してはいません — バイト列とその SHA-256 は
正本のままです。表の数値は 1 つも変わりません。
- この系統が「独立した版と DOI」を持つ、と書いてあります。アーカイブを 凍結した時点で持っていたのは独立した版の系列だけでした。⭐ これは誤りと いうより追い越された記述です — この系統で最初の DOI 10.5281/zenodo.22644248 を アーカイブより後の 2026-09-07 に発行しました。
- 交換を「exact exchange in the KLI approximation」、1 箇所では 「KLI exact exchange」と書いています。どちらも OEP に対する交換のみの KLI 近似と読み替えてください。この区別はこの表自身で測れるものです — 後述の 表は KLI であって Dirac–Hartree–Fock ではない を参照してください。
どちらも v2.0.0 の README.md で修正しました。同じ正誤表を
release ページ
にも掲載しています。
中身¶
原子ごとに 1 ファイル、計 86 ファイル SF_Z<zzz>.json で、それぞれ固定格子
s_i = 6 i / 7680 (i = 0..7680、7681 節点、0 ≤ s ≤ 6 Å⁻¹) 上の f_x と f_e を、
10 進で有効数字 11 桁に丸めて収めています。ほかに動径モーメント M₂、M₄、M₆、M₈、M₁₀、
処方、生成時のゲート台帳、ファイル自身の状態 (artifact_role、certification_status と
その理由、certification_history)、来歴 (生成器の commit とソース指紋) を持ちます。モデルは
DHFS-KLI-DTM1-dt16-neutral-v1、schema 2、Julia 1.12.6 上の Temari で生成しました
(アーカイブの MANIFEST.md にピン留め)。固有値と 4 次より上のモーメントは計算した値を
そのまま収めたもので、精度は評価していません。γ (入射電子の相対論因子) は f_e に
含まれていません — Doyle & Turner (1968) や Peng et al. (1996) と同じ第一 Born
の規約で、γ は結晶ポテンシャルのコードが自分で掛けます。
仕様¶
以下はどれも、アーカイブに同梱した実行可能な仕様
(tools/temari_factors_contract.py、Python 標準ライブラリのみ) が検査するもので、
それぞれに、規則の破れを検査が検知することを示す負のミュータントが付いています。
- s 格子は収録していません。s_i = 6·i/7680 を binary64 で再構成し
(
6.0*i/7680)、float64 リトルエンディアンのバイト列の SHA-256 が1476113c622ccb9e62d4b56973277b7e550fef44357cf42d7923a9dde84f32fbに等しいことを 検査してください。 - f_x は s の上で補間します — 左端は clamped (f_x′(0) = 0)、右端は not-a-knot です。s について偶関数なので f_x′(0) = 0 は厳密に成り立ちます。 左端を not-a-knot にすると第 1 区間で誤差が約 10 倍になり、Cs と Ba で表現誤差の 許容を超えます。
- f_e は s ではなく t = s² の上で補間します — 両端とも not-a-knot です。 t の節点は非等間隔です (t_i = s_i²)。
- 定義域は閉区間 [0, 6] Å⁻¹ だけです。補外も clamp もしません。s は Å⁻¹ 単位の sinθ/λ です (q = 4πs)。
- 値は有効数字 11 桁の 10 進数で JSON の数値として収録しています。binary64 として読み、丸め直さないでください。
スプラインの規約が仕様の一部である理由
アーカイブは golden ベクトル — C、Fe、Cs、Au の、節点から外れた s での値、
許容 1e-12 — を持っています。参照 loader で評価すれば通ります。ところが f_x を、
clamped の代わりに s = 0 で not-a-knot 条件にして評価すると、第 1 区間の誤差が
約 10 倍に膨らみ — Cs と Ba で表現誤差の許容を超えるのに十分な量 (B_repr の 1.22 倍と
1.19 倍) — 第 1 区間の中点を含む golden ベクトルは失敗します。「負の
ミュータントで検査済み」とはこういう意味です: 各規則には、わざと壊した変種が
あり、検査がそれを捕まえることが示されています。Julia の参照 loader と SciPy の
CubicSpline は、Python の参照実装 (適合テストのスクリプト) と 4×10⁻¹⁶ で一致します。
仕様は性質の違う 2 つのことを主張しています。分けておく値打ちがあります。1 つは
適合です — loader が、与えられた節点値から規約どおりの曲線を作れているか (端条件、
t = s² の変数変換、定義域)。もう 1 つは同一性です — その節点値が公開値そのものか。
表を非可逆だが文書化された形で持つ利用者 (圧縮する、自分の絶対刻みで再量子化する、
単精度で持つ) は、1 つめを完全に満たしながら 2 つめを意図的に満たさないことがあります。
--values-from ALT は 1 つめだけを引き受けます。ALT の節点値の上に参照 loader を組み、
その参照をスプラインの解析条件・独立実装・負のミュータントに照らして検証し、
--make-golden を付ければ同じ値に束縛された oracle を出します。利用者の loader は、
その oracle と相対 1e-12 で突き合わせてください。この実行は利用者の loader を 1 度も
呼びませんし、データセットの検証でもありません。許容は動かしません。1e-12 は精度では
なく実装間の一致の閾値で、t = s² の取り違えを捕まえるのはこちらです。Cs での実測では、
この取り違えは絶対では 2.4×10⁻⁸ Å — リリースの許容 1e-7 Å の内側なので、利用者自身の
精度検査は素通りします — で、相対では 1.5×10⁻⁹ です。
tar -xzf temari-factors-v2.0.0.tar.gz && cd temari-factors-v2.0.0
python tools/temari_factors_contract.py . --negative # exits non-zero on failure
python tools/temari_factors_contract.py . --values-from ALT --negative # 適合だけ
数値はどこまで信じてよいか¶
リリースの許容は T_comp = 1e-7 electrons (f_x) と T_comp,e = 1e-7 Å (f_e) です。 これらは受け入れの許容です — 数値をどこまで抑えたかの目安で、測定した差と保守的な 配分に支えられたものです。誤差定理によるものではなく、誤差上界の保証を持つファイルは ありません。測定したものは次のとおりです:
- 動径格子 dt/16 を、より粗い格子・より細かい格子と、元素ごとに比べました (2026-08。
certification_historyに残した分類はこの手続きの結果です)。 - 出荷したすべての解について、SCF の停止誤差を τ/10 の参照に対して測定しました (f_x で最悪 0.39 × B_scf)。この値は、参照解の残差に対する仮定した 0.10 の余裕を 含みます — 撤回した上界が依っていた仮定です。
- 補間 + 丸めの誤差を、封印した中点で 86 元素すべてについて測定しました (最悪 f_x で 0.16 × B_repr、f_e で 0.34 × B_repr,e)。
- 試した動径格子の端点延長に対する感度は B_grid の 0.9 % 以下でした (観測された感度であって、無限領域の上界ではありません)。
v2.0.0 の 86 表はすべて、単一の commit で空のキャッシュから再生成し、走行の前に固定した
規則で検収しました: 事前に凍結した目録に対する構造と同一性、各表の品質検査、基準の表との
差が SCF の停止の許容の内側にあること (今回の差はゼロ) です。出荷したバイト列は検収した
バイト列です — 各表の SHA-256 を生成の台帳と検収の結果に結び付けています。
検収は誤差上界ではありません。何が合否を決め、何が記録だけで、検収が何を示さないかは、
アーカイブの README.md に書いてあります。
表のバイト列の再生成は保証しません。SCF はプロセス間で別の反復で止まることが あり (散発的に観測、停止許容の範囲内。Ba と Ta が v1.0.0 と違う理由です)、公開した アーカイブのバイト列とその SHA-256 が正本です。中性原子のみです — 荷電種は 下の別の系統で、この表からは導けません。
表は KLI であって Dirac–Hartree–Fock ではない¶
\(f_x\) は OFFV1 (Olukayode et al., 2023) の DHF 値と 8 元素で比較し (0–6 Å⁻¹ での 最大相対差 0.07–0.26 %、軽元素で最大)、C、Si、Fe、Au については s ≤ 2 Å⁻¹ で 相対 RMS 0.03–0.15 % で一致します — これは Waasmaier–Kirfel のフィット自身が OFFV1 と一致する水準です。v2.0.0 では、この比較を 2 つの表に共通する 85 元素 (He–Rn。OFFV1 は He から始まります) について、2 つの格子が厳密に共有する節点で、検収の基準としてではなく報告として走らせました: 最大の相対差は 1.1 % (He、s = 5 Å⁻¹)、最大の絶対差は 0.043 electrons (Yb、s = 0.3 Å⁻¹) です。2 つの表は別の模型から来ており、この比較は模型の差とどちらかの表の数値誤差とを 分離しません。処方はKLI 近似での交換のみであり、それが 現れる唯一の場所が \(s \to 0\) での \(f_e\) です: DHF (Mott–Bethe を通したもの) に 対して、出荷した \(f_e\) は \(s = 0.02\) Å⁻¹ で d ブロックでは最大 2 %、Cr と Cu では 4 % 低く、一方で希ガスでは差がゼロで、\(s \ge 0.5\) Å⁻¹ の \(f_e\) はすべての元素で 0.14 % で一致します。この不足は KLI 近似そのものと歩調を合わせています: KLI は 交換のみの最適化有効ポテンシャル (OEP) の局所近似で、それが落としている軌道シフト 項 — 自然な読みは、\((n-1)\)d 殻の上の \(n\)s 電子を僅かに強く束縛しすぎている、 というものです — は、Krieger et al. (1992) が表にしている閉副殻 10 原子について 彼らが公表する \(\langle r^2 \rangle\) の KLI/HF 比と突き合わせることで同定しました。 \(f_x\) への影響は、すべての d ブロック元素で 0.22 % 以下です。曲線と Z 掃引は 比較ページにあります。
陰イオンの散乱因子 — dataset-factors-ion 1.0.0¶
荷電種 22 種の \(f_x(s)\) と \(f_e(s)\) です。陰イオン N³⁻、O²⁻、P³⁻、S²⁻、As³⁻、Se²⁻、
Sb³⁻、Te²⁻ を、Alsalman et al. (2024) が陰イオン半径を表にしている配位数ごとに収めて
います。処方、s 格子 (7681 節点、0 ≤ s ≤ 6 Å⁻¹)、補間の規約は中性の系統と同じですが、
独自の版の系列と独自の Zenodo 系列を持つ別の系統です: release
dataset-factors-ion-v1.0.0、
版 DOI 10.5281/zenodo.22820492、系列 DOI
10.5281/zenodo.22820491
(データは CC-BY-4.0、同梱 loader は MIT)。荷電種は中性の表からは導けません。
誤差上界の保証を持つファイルはありません
すべての表は artifact_role = "computed" と
certification_status = "not_certified" を自分で名乗ります。以前の事前登録つきの
認証は 2026-09-13 に撤回しました。停止の項が依っていた仮定を 22 種すべてで
直接試したところ、全種で成り立たなかったためです。
これは数値が誤っているという表明ではありません。事後の再解析による分類は、
保証としてではなく履歴として、各ファイルの certification_history に残しています。
この系統に固有のことが 3 つあります。詳細はアーカイブの README.md にあります。
- 模型の選択は誤差棒ではありません。多価の陰イオンは、この処方では自由イオンと
しては束縛しません。Watson 球 — 半径 R (上の陰イオン半径) に電荷 Q を一様に載せた
球殻 — で安定化しています。球は自己無撞着場には入りますが、散乱源には含めません。
O²⁻ (R = 1.40 Å) で、Q を Watson (1958) が計算した 2 つの値の間で切り替えると、
\(f_e\) の正則部は小さい s で 16–20 % 変わります (測った 1 例であって、全種に対する
幅ではありません)。s ≈ 0.5 Å⁻¹ より上では変化は 1e-4 未満です。半径とその出典は、
ファイルごとに
external_field_specに記録しています。 - 配位数は種の同一性の一部です。同じイオンでも配位数が違えば別のファイルです
(
SF_Z<zzz>_<16-hex>.json。16 進の部分は電子配置と外場の要約です)。結晶学的な サイトは利用者が知っていることで、表が知っていることではないからです。 - \(f_e\) は全体としては収めていません。正味の電荷があると s → 0 で発散するためです。
ファイルは、閉じた形の単極子の係数 C (
monopole_coefficient_A_inv) と、どこでも 有限な正則部を持ちます: \(f_e(s) = C/s^2 + f_{e,\mathrm{regular}}(s)\)。全体から単極子を 引いて正則部を作り直さないでください — s = 0 の近くでは両方が発散し、差の桁が すべて失われます。f_e_regular_Aは中性の \(f_e\) と同じ補間 (t = s² の 3 次、両端 not-a-knot)、\(f_x\) は中性の \(f_x\) と同じ補間です。
1.0.0 は、この系統で初めて、表が何を記述するか・release が通った検証 (出荷した
バイト列に結び付けたもの)・利用の規約 (全表 computed、厳密な誤差上界は主張しない) の
3 つを固定した release です。22 表はすべて、単一の commit で空のキャッシュから再生成し、
走行の前に固定した規則で検収しました。検収は誤差上界ではなく、Watson 球の模型の
選択については何も述べません。O²⁻ の表の \(f_x\) を Waasmaier & Kirfel (1995) の解析的な
パラメータ化と比べる診断も走らせました (最大の相対差は s = 2 Å⁻¹ までで約 1.2 %、
s = 6 Å⁻¹ では 3.3 % 低い)。これは模型がどこに位置するかを示すもので、数値の検証では
ありません。この系統でこれより前に公開した release は
dataset-factors-ion-v0.1.0
(2026-09-09、外場の旧い数値処理、DOI なし) だけです。
版管理¶
データセットとソフトウェアは独立した版の系列を持ちます。F(s, E₀) データセットの
release は dataset-vX.Y.Z、散乱因子データセットの release は
dataset-factors-vX.Y.Z (中性原子) と dataset-factors-ion-vX.Y.Z (荷電種)、
ソフトウェアの release は vX.Y.Z とタグ付けします。
同じ release に混ぜることはありません。
新しいデータセット世代の生成は、再現性の規律が「宣言すべき
事象」と呼ぶものです。model ID、s 格子、schema、Julia のバージョンはすべて、
アーカイブ内の MANIFEST.md にピン留めされています。
引用¶
ソフトウェアはリポジトリの CITATION.cff で、データセットはそれ自身の DOI で
引用してください:
Seto, Y. (2026). Inner-shell ionization form factors F(s, E0) for STEM-EDX: 525 channels (K, L1-L3, M1-M5) computed with Temari (Version 7.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.22643468
⚠ 版 DOI を引用してください。10.5281/zenodo.22643468 です — これは、ファイルが
それ以後変わっていないことを保証します。10.5281/zenodo.21872049 は版に依存しない
DOI で、その時点の最新版に解決されます。これが欲しいのは、使った数値ではなく
データセット一般に言及するときだけです。
散乱因子は別の Zenodo 系列です:
Seto, Y. (2026). Atomic X-ray and first-Born electron scattering factors f_x(s), f_e(s) for 86 neutral atoms (Z = 1–86), computed with Temari (Version 2.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.22820415
使った数値が v1.0.0 のアーカイブのものなら、代わりに 10.5281/zenodo.22644248 を
引用してください。10.5281/zenodo.22644247 はこの系列の、版に依存しない DOI です。
陰イオンは 3 つめの系列です:
Seto, Y. (2026). X-ray and electron scattering factors for 22 Watson-sphere-stabilised anions (N3-, O2-, P3-, S2-, As3-, Se2-, Sb3-, Te2-) computed with Temari (Version 1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.22820492
データは CC-BY-4.0 で同梱 loader は MIT です。帰属表示はリンクで構いません。 表をファイルとしてではなくバイナリリソースに埋め込んで配る場合でも運用できるのは このためです。F の値はここで計算したものです。唯一の第三者由来の入力は Bote–Salvat の表で、閾値として使う吸収端エネルギーと絶対断面積を与えます。 この表はパブリックドメインです。
このデータセットを通じて得た断面積を公表する場合は、Bote & Salvat (2008) と Bote et al. (2009) も引用してください。
参考文献¶
- Allen, L. J., D'Alfonso, A. J. & Findlay, S. D. (2015). Modelling the inelastic scattering of fast electrons. Ultramicroscopy 151, 11–22.
- Alsalman, M. A., Hezam, M. S., Alqahtani, S. M., Baloch, A. A. B. & Alharbi, F. H. (2024). Anions' radii — New data points calibrated to match Shannon's table. Computational Materials Science 247, 113491.
- Bote, D. & Salvat, F. (2008). Calculations of inner-shell ionization by electron impact with the distorted-wave and plane-wave Born approximations. Physical Review A 77, 042701.
- Bote, D., Salvat, F., Jablonski, A. & Powell, C. J. (2009). Cross sections for ionization of K, L and M shells of atoms by impact of electrons and positrons with energies up to 1 GeV: Analytical formulas. Atomic Data and Nuclear Data Tables 95, 871–909. Erratum: 97 (2011), 186.
- Doyle, P. A. & Turner, P. S. (1968). Relativistic Hartree–Fock X-ray and electron scattering factors. Acta Crystallographica A 24, 390–397.
- Krieger, J. B., Li, Y. & Iafrate, G. J. (1992). Construction and application of an accurate local spin-polarized Kohn–Sham potential with integer discontinuity: Exchange-only theory. Physical Review A 45, 101–126.
- Llovet, X., Powell, C. J., Salvat, F. & Jablonski, A. (2014). Cross sections for inner-shell ionization by electron impact. Journal of Physical and Chemical Reference Data 43, 013102.
- Olukayode, S., Froese Fischer, C. & Volkov, A. (2023). Revisited relativistic Dirac–Hartree–Fock X-ray scattering factors. I. Neutral atoms with Z = 2–118. Acta Crystallographica A 79, 59–79.
- Oxley, M. P. & Allen, L. J. (2000). Atomic scattering factors for K-shell and L-shell ionization by fast electrons. Acta Crystallographica A 56, 470–490.
- Peng, L.-M., Ren, G., Dudarev, S. L. & Whelan, M. J. (1996). Robust parameterization of elastic and absorptive electron atomic scattering factors. Acta Crystallographica A 52, 257–276.
- Segger, L., Guzzinati, G. & Kohl, H. (2023). Generalised Oscillator Strengths for the simulation of EELS spectra, with a broader coverage of high energy and minor edges (version 1.5.0) [Data set]. Zenodo. doi:10.5281/zenodo.7645765
- Waasmaier, D. & Kirfel, A. (1995). New analytical scattering-factor functions for free atoms and ions. Acta Crystallographica A 51, 416–431.
- Watson, R. E. (1958). Analytic Hartree–Fock solutions for O²⁻. Physical Review 111, 1108–1110.
- Zhang, Z., Lobato, I., Jannis, D., Verbeeck, J., Van Aert, S. & Nellist, P. (2023). Generalised oscillator strength for core-shell electron excitation by fast electrons based on Dirac solutions [Data set]. Zenodo. doi:10.5281/zenodo.7729585