中性子熱化計算器(Neutron Thermalization Calculator)
概要
Neutron-Thermalization-Calculatorは、入射中性子がある初期エネルギーから熱エネルギーへと減速(熱化)する過程で必要となる衝突回数とレタルジー(対数エネルギー落差)を計算するPython製のCLIツールです。軽水(Light Water)、重水(Heavy Water)、グラファイト(Graphite)を減速材として選択可能で、シミュレーションには確率論的な誤差解析(stochastic error analysis)機能が組み込まれており、結果の不確かさを評価できます。教育用途や概算解析、設計の初期段階での比較に適した小規模かつ可読性の高い実装です。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 8
- ファイル数: 4
- メインの言語: Python
主な特徴
- コマンドラインから中性子の熱化に必要な衝突回数とレタルジーを計算
- 軽水、重水、グラファイトの三種類の減速材に対応
- 確率的誤差解析(stochastic error analysis)で結果の不確かさを評価
- シンプルなPython実装で教育やプロトタイピングに適合
技術的なポイント
このツールは中性子熱化に関する基礎理論を数値計算に落とし込んだシンプルな実装が特徴です。物理的には「レタルジー(u = ln(E0/E))」という対数エネルギー差を用い、1回の弾性散乱あたりで期待される平均対数エネルギー減少(平均対数エネルギー減衰量、ξ)を用いて必要衝突回数を推定します。一般にξは減速材の原子量や散乱断面に依存し、軽い核種ほど一回あたりのエネルギー損失が大きく、したがって必要衝突回数は少なくなります。ツールはこの関係を使い、指定した初期エネルギーから目標熱エネルギーまでのレタルジーを算出し、ξで割ることで平均衝突回数を求めます。
さらに「stochastic error analysis」と銘打つ機能により、単純な決定論的計算だけでなく、初期条件のばらつきや計算上の統計的不確かさを評価できます。実装としては乱数を用いたサンプリング(Monte Carlo的手法)や繰り返し計算により、衝突回数やレタルジーの分散を推定し、標準偏差や信頼区間といった形で出力する設計と考えられます。コードベースは小さく、main.pyを中心にコマンド入力→物理量計算→誤差推定→結果表示の流れが実装されているため、機能拡張(別材料の追加、より詳細な散乱モデルやエネルギースペクトルの導入)や教育用の改変が容易です。
プロジェクトの構成
主要なファイルとディレクトリ:
-
.gitignore: file
-
LICENSE: file
-
README.md: file
-
main.py: file
-
main.pyがエントリポイントで、ユーザ入力の受け取りと計算ルーチン、誤差解析の呼び出しを担います。READMEには使用方法、サポートする材料、ライセンス表記(MIT)や依存(Python 3.x)などが記載されています。
まとめ
教育や概算解析に最適な、軽量で拡張しやすい中性子熱化計算ツールです(50字程度)。
リポジトリ情報:
- 名前: Neutron-Thermalization-Calculator
- 説明: “A Python CLI tool to calculate neutron thermalization collisions and lethargy with stochastic error analysis. Supports Light Water, Heavy Water, and Graphite.”
- スター数: 1
- 言語: Python
- URL: https://github.com/tameryigit0/Neutron-Thermalization-Calculator
- オーナー: tameryigit0
- アバター: https://avatars.githubusercontent.com/u/222622752?v=4