Temari¶
孤立原子の散乱・励起因子を第一原理から計算する。
Temari は孤立原子をゼロから解く — 自己無撞着場、束縛軌道、歪曲連続波 — そして 電子顕微鏡・分光・輸送シミュレーションが必要とする散乱因子・励起因子を導く。 外部の原子構造コードを使わず、フィット済みパラメータ表も使わず、依存は Julia 標準ライブラリのみ。
名前について
手毬 (てまり) は球面を幾何学的に分割し、糸を何本も巻き重ねて模様を作る日本の 伝統工芸。このコードがやっていることそのものの比喩になっている — 球対称な 原子場の上に部分波を何十本も重ねる。部分波展開という骨格は、出口が イオン化形状因子でも一般化振動子強度でも弾性位相シフトでも変わらない。
現在地: 初期段階
エンジンは既に存在し、実運用されている — ReciPro に同梱する STEM-EDX 用 イオン化テーブルを生成しているのがこのコード。リポジトリはそのエンジンの 周りに組み立てている最中で、層構造へのモジュール分割はまだ行っていない。
いま計算できるもの¶
- 内殻イオン化形状因子 \(F(s, E_0)\) (K・L1・L2・L3) — 相対論的な \(j\) 分解 束縛軌道、緩和した内殻空孔の連続状態、スカラー相対論的な放出電子
- イオン化断面積 \(\sigma(E_0)\) — Bote–Salvat の解析式による
形状因子は \(F(0) = 1\) に規格化され、非弾性像の非局在化を担う。絶対値は断面積が 与える。処方とその限界は 物理 (処方) を参照。
目的から探す¶
| 目的 | 出発点 |
|---|---|
| とにかく 1 回動かして数値を見たい | はじめに |
| サブコマンドとオプションの一覧 | コマンドリファレンス |
| 実装されている処方そのもの | 物理 (処方) |
| 新しい量をどこに挿すのか | 層構造 |
| 数値をどこまで信じてよいか | 検証 |
| なぜ「効きそうな最適化」が却下されたのか | 再現性の規律・性能 |
| これから何を作るのか / 何を作らないのか | ロードマップ |
| Windows で長時間バッチが進まなくなった | トラブルシューティング |
なぜ作るのか¶
高速電子・光子・電子が孤立原子に散乱される物理は、1 つの計算に複数の出口が ある構造をしている。既存の公開ツールはどれも出口を 1 つだけ見せ、エンジンを 隠している。
- STEM-EDX / EELS マッピング用のイオン化形状因子は顕微鏡シミュレータの内部に 閉じ込められている
- EELS の標準的な一般化振動子強度 (GOS) 表は 1980 年代のもの (Egerton の SIGMAK/SIGMAL、Leapman の Hartree–Slater 表)。近代的・公開・相対論的な GOS 表は 事実上存在しない
- 弾性散乱の位相シフトは別の Fortran パッケージにある
- 原子散乱因子はフィット済みパラメータとして配布され、任意のイオンについて 計算し直せる形では配られていない
Temari はエンジンを公開の場に置き、そこに出口を足していく。現行コードは既に 3 つの量を計算しては捨てており、それらを出すのは物理ではなく配管の作業である (層構造)。
設計原則¶
- 依存ゼロ。Julia 標準ライブラリのみ。同梱データは Bote–Salvat 断面積係数 (パブリックドメイン) だけ。
- スタンドアロン。1 ファイルに落として人に渡せる状態を保つ。
- MIT。参照実装は読めて使えるべきもの。
- 速い。ただし再現性が速度より上位: 浮動小数点の総和順序を変える最適化は、 テーブル全再生成を意図するときにだけ採用し、その旨を宣言する。
- 物理が読める。コード中のコメントが処方の正本。
- エンジンと GUI の界面は CLI 契約に固定。GUI はサブコマンドを叩いて JSON を 読む別プロセスであり、in-process 結合はしない。
ここに無いもの¶
- 出荷テーブルは置かない。ここにあるのはコードとドキュメントだけ。生成された データセットは、それを同梱するアプリケーション側にある。
- 制限のある出典の参照データは置かない。論文表や GPL コードとの比較は開発の 一部だが、その数値をこのリポジトリに取り込むことはしない。
クレジットとライセンス¶
MIT。Copyright © 2026 Yusuke SETO.
実装の大半は AI 支援 (Anthropic Claude) によって書かれた。物理的処方の選択と 検証はすべて作者の責任である。
bote_salvat.json は NIST の BoteSalvatICX.jl (Unlicense、パブリックドメイン) から
機械抽出したもの。断面積を用いた結果を公表する際は Bote & Salvat, Phys. Rev. A
77 (2008) 042701 および Bote et al., At. Data Nucl. Data Tables 95
(2009) 871 を引用してください。