############################################################################### 物質表データベースからのPHITS入力ファイルの作成 (materials__fromDatabase.py) ############################################################################### ========================================================= 物質データの管理 ========================================================= * 物質データを一覧としてもっておくと便利 - 大体使用する物質は同じ - 都度、文献値を探すのは面倒 - マスターデータベースとしてもっておいて、データベースは同じものを使用. - 使用する元素を指定して、使用する元素のみを引っ張ってきてソース入力ファイルを生成. | --------------------------------------------------------- データベースの構造 --------------------------------------------------------- * データベースファイルとして以下の形式が使用できる. - csv - json * csvからjsonへ変更 - 可読性高い.データ構造を理解しやすい.取り扱いやすい. | ========================================================= 使い方 ========================================================= --------------------------------------------------------- データベースの記載方法例 --------------------------------------------------------- .. code-block:: { Air: { Name: "NormalAir", Density: -0.0012049, Color: "cyan", Comment: "JAERI-Tech-96-001 <-- JAERI-M6928", Composition: { H: -0.001, C: -0.0126, N: -75.5, O: -23.2, }, }, H2O: { Name: "H2O", Density: -1.0, Color: "cyanblue", Comment: "", Composition: { H: 2.0, O: 1.0, }, }, } | --------------------------------------------------------- 記載項目 --------------------------------------------------------- .. csv-table:: :header: "Item", "Type", "Description" :widths: 10, 10, 40 :width: 700px "Name", "(string)", "名前" "Density", "(float)", "数密度(+) / 質量密度 (-)" "Color", "(string)", "色" "Comment", "(string)", "コメント(自由記述)" "Composition", "(dict of float)", "物質の構成元素と数密度比(+) / 質量密度比(-)" * 数密度は正の値、質量密度は負の値で記載する. - H2Oは H:2, O:1 の数密度比 - 構造鉄(SS400)に含まれる鉄と不純物炭素は質量%で Fe:-99.6% とC:-0.13% など負の値で質量密度比を記載. * 元素には質量数を書くことができる. * 例えば、 ホウ素 (B)の安定同位体比は、10B/11B:19.9%/80.1% | --------------------------------------------------------- 使用する物質の指定方法 --------------------------------------------------------- 1. materials.json 冒頭の設定箇所:settings 中の配列 :red:`"materialList"` にタグを記載(推奨). 2. 記載しない:全ての物質が "materials_phits.inp" に記載される. | ========================================================= 実装 ========================================================= --------------------------------------------------------- コード ( materials__fromJSON.py ) --------------------------------------------------------- .. literalinclude:: pyt/materials__fromJSON.py :language: python --------------------------------------------------------- 入力ファイル ( materials.json ) --------------------------------------------------------- .. literalinclude:: inp/materials.json :language: python --------------------------------------------------------- 生成される入力ファイル ( materials_phits.inp ) --------------------------------------------------------- .. literalinclude:: inp/materials_phits.inp