1ACEファイルの読み方

2

ACEファイルとは• MCNPやPHITS、Serpentなどの連続エネルギーモンテ

カルロ計算コード用の断面積ライブラリ• 計算コードが読むことに特化しており、人が読むことは想定外
ACEファイルの概要(Opening)

92235.50c 233.025000 2.5507e-08 20171005
U-235 from JENDL-4
mat92280000000000000000
核種の情報等
00000000(NXS00000000 array)2023448 92235
164057474545060000000 データ位置0(JXS array)
1 820286 820377 820424 820471 820518 820565 13069291306975 1513550 1513595 1703760 1867817 1867862 1867907 1868801
1868846 1868846 1868891 2023403 820675 2023448 1689111 1692747
エネルギー点 [MeV]と1692768 1692834 1692840
00000
全断面積等
1.00000000000e-11 1.00000100000e-11 1.00012300000e-11 1.00024500000e-11(ESZ block)
1.00036700000e-11 1.00048900000e-11 1.00061100000e-11 1.00073300000e-11
1.00085500000e-11 1.00097800000e-11 1.00110000000e-11 1.00122200000e-11

3

ACEファイルを読むために• ACEフォーマットマニュアルが必要• 公式のマニュアルは二つ• ① MCNPマニュアルのVolume III:

Developer’s Guide• ② A Compact ENDF (ACE) Format
Specification, LA-UR-19-29016• https://github.com/NuclearData/ACEFormat• https://github.com/NuclearData/ACEFormat/blob/master/ACEFormat.pdf• ①は輸出規制の影響により、米国外のユーザーは入手困難• ②は中性子入射とTSLのみ整備• ②は整備中であり、記載ミスも多いので必ず最新版を利用すること

4

ACEファイルを読む上で注意する点• ACEファイルのエネルギーの単位はeVではなく、MeV• ACEファイルに格納されているデータに切れ目はない• 一行に4つの数字が並んでいるだけで評価済み核データのようにMFやMTなどで区切られていない【ACEファイルのデータの並びの例】

1.00000000000e-11 1.00000100000e-11 1.00012300000e-11 1.00024500000e-11
1.00036700000e-11 1.00048900000e-11 1.00061100000e-11 1.00073300000e-11
1.00085500000e-11 1.00097800000e-11 1.00110000000e-11 1.00122200000e-11• ファイル中の移動はデータ位置/データ数を利用• 最初、もしくはある位置からどこまでスキップしたら目的のデータがあるかがわかる【データ数を指定した例】-10164170238687240088-11164179239073240405-1762378382394242407160111238294239763241026

この例だと、1つ目のデータは1～75個目までの75個、2つ目のデータは76個目～110個目までの35個、3つ目のデータは111個目～164,169個目までの164,059個となる

5

MCNPでの断面積データの取り扱い• 全てのデータを一次元配列に保存• NJOY上ではXSS[]で与えられている• 断面積データ、二次エネルギー分布、角度分布など、データ毎に分けられていない• 一次配列中に各データの位置を記載することで高速に必要とするデータにアクセス可能• 最初からX個目、もしくはこの位置からY個目といった形
M個目からがNU blockのデータ

データ位置

全断面積等

νp、νd、νt

その他のXS(JXS block)(ESZ block)(NU block)(SIG block)

N個目からがMTR blockのデータ

6

ACEファイルを読もう (Header編)• ACEファイルを読む上で重要な情報は7行目からのNXS

arrayに記述• NXS arrayから入っているデータがある程度分かる• NXS arrayやJXS array中のデータが何を示すかについては、マニュアル中に記載• ACEファイルを読むためには、マニュアルが必須
92235.50c 233.025000 2.5507e-08 20171005
U-235 from JENDL-400000000000 データ総数
00 エネルギー点数00000002023448 92235
1640574745000001 820286 820377 820424 820471

陽子数＋質量数

mat9228000000
核種の情報等000(NXSarray)0004506000820518 820565 1306929

反応タイプ数

データ位置(JXS array)

7【参考】 Header形式の変更 (2.0.X)• 新しいHeader形式が導入• 最近のLANL配布のACEライブラリは新形式を採用• コメント行が複数行入れられるように• 記載の順序などは異なるものの、元々のHeaderと内容はほぼ同じ
ACE形式のバージョン
2.0.092235.710nc
ENDFB-VII.1
コメント行の行数233.024800 2.5301E-08 12/19/12 3
The next two lines are the first two lines of 'old-style' ACE.
92235.80c 233.024800 2.5301E-08 12/19/12
U235 ENDF71x (jlconlin) Ref. see jlconlin (ref 09/10/2012 10:00:53) mat9228

元々のHeader形式 (参考のためコメント文として記載)

コメント行

8

ACEファイルを読もう (ESZ block編)• 最初のESZ Blockに入っているのは以下の5つ• SESZ
入射エネルギー点 [MeV]
MT=102-117,• SESZ+NE
全断面積 (MT=1)
155, 182, 191• SESZ+2NE 全中性子消滅断面積 (MT=101)
193, 197の和• SESZ+3NE 弾性散乱断面積 (MT=2)• SESZ+4NE 核発熱計算用のheating number• NXS Arrayに記載されたエネルギー点数(NE)ずつ

各データが順番に入っている

入射エネ
ルギー点

全断面積

全消滅断面積

弾性散乱断面積

Heatingnumber※ A Compact ENDF (ACE) Format Specificationより

9

ACEファイルを読もう (SIG block編①)• SIG blockでは各反応の断面積を保存• 全断面積、放射捕獲断面積、弾性散乱断面積以外• 表中のLXSはHeaderのJXS Arrayの6番目のデータ• マニュアル中にLXS=JXS(6)と記載• LOCA1～LOCANMTはLSIG blockに記載• LOCAはSIG blockのスタート位置から何個目のデータが各MTのスタート位置かを示す※ A Compact ENDF (ACE) Format Specificationより

10

ACEファイルを読もう (SIG block編②)• 各MTの中は三つのデータで構成• IEi：断面積データが含まれる最初の入射エネルギー点• NE,i：断面積データ点数• σi[E(l)]：断面積• ACEファイルでは全ての反応について、共通の入射エネルギー点を利用• 閾値反応のように、高エネルギーの一部しか無いデータを効率的に格納するため、 IEiやNE,iが必要

11

ACEファイルを簡単に編集するために• FRENDYではACEファイルの読み書き用クラスを整備• frendy/ContinuousEnergyXSUtils/AceDataParser• frendy/ContinuousEnergyXSUtils/AceDataWriter• データ位置やデータ数はAceDataWriterが自動で修正• これらのクラスを用いることでデータ位置やデータ数を気にする必要なく、ACEファイルを書き換え可能に• FRENDY上ではACEファイルの各データをAceDataObjectで管理• frendy/ContinuousEnergyXSUtils/AceDataObject• AceDataObjectはデータ毎に分割されており、ユーザーがどのデータがどの位置にあるかを考える必要がない• マニュアルに記載されている個々のデータとの対比には
AceDataParserクラス中の読み取り部分をお読みください

12

FRENDYを使ったACEファイルの編集• FRENDYのACEファイル編集ツールが参考に• tools/perturbation_ace_file/PerturbMain.cpp• frendy/ContinuousEnergyXSUtils/PerturbUtils• 基本的には以下の流れとなる• AceDataParserを使ったACEファイルの読み取り• AceDataObject中のデータの修正• AceDataWriterを使って新しいACEファイルへ出力

13

まとめ
• ACEファイルとは• MCNPやPHITS、Serpentなどの連続エネルギーモンテカルロ計算コー
ド用の断面積ライブラリ• human readableではなく、machine readableなフォーマット
• ACEファイルを読むにはACEフォーマットマニュアルが必須• MCNPマニュアルのVolume III: Developer’s Guide• A Compact ENDF (ACE) Format Specification, LA-UR-19-29016• ACEファイルを読む上で注意する点• ACEファイルのエネルギーの単位はeVではなく、MeV• ACEファイルに格納されているデータに切れ目はない• ファイル中の移動はデータ位置/データ数を利用• FRENDYを用いたACEファイルの編集• FRENDYではACEファイルの読み書き用クラスを整備• これらのクラスを用いることでデータ位置やデータ数を気にする必要なく、ACEファイルを書き換え可能に