CBZ/SensitivityData の使用マニュアル 1
2018/5/21

千葉豪

炉物理パラメータ p の核データ σ に対する感度 S は、一般的に以下の式で定義される。

∂p σ·∂σ pS=(1)この感度は「核データ σ の単位相対変動あたりの炉物理パラメータ p の相対変動」を意味する。感度係数については、「自主ゼミ用資料」の「中性子増倍率の核データに対する感度解析の基礎」に説明があるので、そちらを参照されたい。

CBZ では、感度係数を SensitivityData クラスで定義する。SensitivityData クラスは着目する体系の着目する炉物理パラメータ毎に定義され、そのパラメータの各種核データに対する感度の情報がクラス内に格納される。例えば、ある炉心 A の中性子増倍率に対する感度は SensitivityData クラスのひとつのインスタンスとして定義されるし、異なる炉心 B のドップラー反応度に対する感度はまた別のインスタンスとして定義される。

SensitivityData クラスでは、感度係数データを、核データの種類に応じて、ゼロ次元データ、一次元デー
タ、二次元データに区分する。ゼロ次元データは「エネルギー群」という概念を持たないデータであり、例えば、ある核種の半減期や収率に対する感度データが該当し、主に燃焼特性の感度で現れる。一次元データ
は、エネルギー群毎の感度データであり、例えばある核種の核分裂断面積や核分裂あたりの平均発生中性子数に対する感度データが該当する。二次元データは、核反応の結果発生する二次中性子のエネルギー群にも依存する感度データであり、ある核種の弾性散乱断面積、非弾性散乱断面積、(n,2n) 反応断面積に対する感度データが該当する。二次元の感度データは、核反応を起こす入射中性子のエネルギー群 g に加えて、核反応の結果発生する二次中性子のエネルギー群 g ′ にも依存するものとして、Sg→g′ =∂pσg→g′·∂σg→g′p(2)のように定義される。なお、核反応によっては、二次元データと一次元データのいずれについても感度が定義される場合がある。例えば、弾性散乱断面積 σel については、g 群の弾性散乱断面積 σel,g に対する（一次元データとしての）感度 Sg と、g 群から g ′ 群に中性子が遷移する弾性散乱断面積 σel,g→g′ に対する（二次元データとしての）感度 Sg→g′ が定義でき、両者には以下の関係がある。

Sg =∑Sg→g′(3)g′

ここで、中性子エネルギーに依存する感度係数の考え方について整理する。エネルギーを連続で扱ったと∂p
き、dE は「エネルギーが E から E + dE の範囲における核データ σ に対するパラメータ p の感度∂σ(E)係数」と定義することが出来る。これに対して、エネルギーを群として扱ったとき、g 群の核データ σg に対する p の感度係数は以下のように記述される。

∂p=∂σg∫ Eg,high (Eg,low∂p∂σ(E))dE(4)

ここで、Eg,low 、Eg,high はそれぞれ g 群の下限、上限エネルギーを示す。これより、群で記述される核データに対する感度係数は「エネルギーに対する積分量」になることが分かる。従って、例えば、複数のエネル

1 /Document/CBG Manual/SensitivityData/1ギー群を跨ぐ巨視的なエネルギー群 G を考えたとき、核データ σG に対する感度は、g ∈ G なる関係がある場合には以下のように記述されることになる。

∑ ∂p∂p=∂σG∂σg(5)

g∈G

感度係数の一般的な定義式 (1) から明らかなように、断面積 σ がゼロの場合には感度もゼロとなる。しかし、このような扱いが不適切となる 2 があるので、CBZ ではいくつかの特定の核データについては、以下の式で感度を定義している。

S=

∂p 1·
∂σ p(6)

この場合、感度は「核データ σ の単位絶対変動あたりの炉物理パラメータ p の相対変動」を意味しており、
式 (1) で定義される「相対」感度に対して「絶対」感度と呼ばれる場合がある。CBZ において、このような絶対感度として計算される核データを Table 1 に示す。

Table 1: CBZ で絶対感度として計算される核データ
核データ一次元MT 番号

核分裂スペクトル (χ）

181

弾性散乱反応の平均散乱角余弦（µ̄）

251

非弾性散乱断面積（(n,n’)）416

二次元(n,2n) 反応断面積

SensitivityData クラスのインスタンスは、CBZ では中性子輸送（もしくは拡散）計算のソルバーや燃焼計算ソルバーの感度係数計算メソッドにより作成されるが、一般的にはそれらは外部ファイルとして出力、保存されることになる（具体的に述べると、SensitivityData クラスのインスタンスがそれらのモジュールにより生成され、その後、SensitivityData クラスのファイル書き出しメソッドにより外部ファイルとして出力される）。例えば、球形の原子炉である Flattop-25 の中性子増倍率に対する感度係数データが、CBZパッケージの「CBGCAL/lanl.tutorial/SNS」ディレクトリに「sns.flattop-u」という名前のファイルで与えられているので、それを開いてみてもらいたい。以下に示すようなテキスト形式の感度係数ファイルとなっている筈である。

Listing 1: SensitivityData クラスが出力する感度係数のテキストファイルの例
123456789101112131415161718
1920212223

f l a t t o p −ukeff
j e n d l −4
9 . 9 8 4 0 5 5 7 6 e −01
700
15
91 . 0 0 0 0 0 0 0 0 e+07
7 . 7 8 8 0 1 0 0 0 e+06
6 . 0 6 5 3 1 0 0 0 e+06
( omitted )5 . 3 1 5 7 9 0 0 0 e −01
4 . 1 3 9 9 4 0 0 0 e −01
3 . 2 2 4 1 9 0 0 0 e −01
1 . 0 0 0 0 0 0 0 0 e −05
92234018069
5 . 2 3 2 6 1 4 4 5 e −05
2 ゼロの値をとり得る核データが該当。

22425262728

1 . 0 7 9 7 3 4 6 2 e −04
1 . 8 7 0 5 2 1 2 1 e −04
3 . 1 8 1 2 9 8 9 8 e −04
4 . 3 5 2 6 7 9 8 3 e −04
4 . 9 5 2 7 6 2 2 0 e −04

このファイルでは、はじめに感度係数自身の属性を示す３つの文字列データが示され、その後、この感度が対象としている炉物理パラメータの値（この場合は Flattop-25 の中性子増倍率で 0.99841）、エネルギー群数（この例では 70）、ゼロ次元、一次元、二次元感度データの格納数（この例ではそれぞれ 0、15、9）が並び、それに引き続いてエネルギー群の境界エネルギー、感度係数データが記述されている。
ユーザーが感度係数の情報を取り出すため、このテキストファイルに直接アクセスすることは非効率である。SensitivityData クラスには、様々なデータの出力機能が実装されているので、CBZ では、このテキストファイルを読み込んだ SensivitiyData クラスのインスタンスを扱うことを推奨する。SensitivityData
クラスのインスタンスに外部ファイルの感度係数データを読み込ませデータの一部を出力する例として、「lanl.tutorial」ディレクトリの「main.readsns.cxx」を以下に示す。

Listing 2: SensivitiyData クラスの使用例
1
2
34
5
6

SensitivityData sens ;s e n s . R e a d F i l e ( ” . / SNS/ ” , ” s n s . f l a t t o p −u” ) ;sens . ShowSelf ( ) ;sens . ShowSelf ( 0 . 0 1 ) ;sens . ShowSensitivity1D (922380 ,102);

この例では、ディレクトリ「./SNS/」に置かれている「sns.flattop-u」という名前のファイルに記述された SensitivityData クラスのデータを ReadFile メソッドにより読み込み、その後、ShowSelf メソッドとShowSensivitity1D メソッドにより、感度係数の情報を出力させている。
ShowSelf メソッドでは、感度の絶対値が引数で指定した値以上のものについて、ゼロ次元の感度係数データ、及び、一次元、二次元の感度係数データについてはその総和を出力させている。引数が省略されている場合は、出力の閾値はゼロとされる。核データの種類（反応）については、ENDF-ID（MT 番号）で区別させており、例えば、2 が弾性散乱、18 が核分裂、102 が捕獲、452 が核分裂あたりの中性子発生数に対応する 3 。ただし、核種生成に関するいくつかのパラメータについては、CBZ 独自のルールで ID を付与している。例えば崩壊半減期は 8888、崩壊の分岐比は 8888X（ここで「X」は崩壊チャンネルの ID）として定義される。また、核分裂収率は個々の核分裂生成物核種に対して定義され、ID は生成の元となる核分裂性核種の ID を Y としたとき、「18000000+Y」として与えられる。例えば、ID が 942390 の Pu-239 からの核分裂収率は「18942390」となる。

ShowSensitivity1D メソッドでは（一次元断面積に対する）感度を出力している。このメソッドでは、一つ目の引数に感度を出力する核種の ID を、二つ目の引数に反応の ENDF-ID（MT 番号）をそれぞれ与える。SensitivityData クラスの ShowSensitivity1D メソッドによる感度の出力例を以下に示す。

Listing 3: ShowSensivitiy1D メソッドによる出力例（一部省略）
12345678910111213141516# Sensitivity printing##
Name1 : f l a t t o p −u#Name2 : k e f f#
Name3 : j e n d l −4## UpperSensitivity /# energy
lethargy ∗0.25
1 . 0 0 0 0 0 e+07
−8.39558 e −07
7 . 7 8 8 0 1 e+06
−1.36728 e −06
6 . 0 6 5 3 1 e+06
−3.05327 e −06
4 . 7 2 3 6 7 e+06
−1.65221 e −05
3 . 6 7 8 7 9 e+06
−7.81419 e −05
2 . 8 6 5 0 5 e+06
−2.31441 e −04
2 . 2 3 1 3 0 e+06
−4.77570 e −04
1 . 7 3 7 7 4 e+06
−7.46203 e −04

Sensitivity−8.39557 e −07−1.36728 e −06−3.05327 e −06−1.65223 e −05−7.81413 e −05−2.31442 e −04−4.77568 e −04−7.46210 e −04

Sensitivity /lethargy−3.35823 e −06−5.46911 e −06−1.22131 e −05−6.60884 e −05−3.12568 e −04−9.25764 e −04−1.91028 e −03−2.98481 e −03

数字が四つの欄で示されているが、一つ目がエネルギー群の上限エネルギー、残りの三つが感度係数を示す。なお、中性子の入射エネルギーに依存する核データに対する感度係数はエネルギー積分値であるが、グ3 詳細は「CBZ（マニュアル以外）」の「ENDF フォーマットの MAT-ID、MT-ID のルール」を参照のこと。

3

ラフ上にプロットするときは横軸で示すエネルギーを一般的には対数表示にするため、単位レサジーあたり、もしくはそれに 0.25 を乗じた値を用いるのがよいだろう 4 。四つ目のデータは単位レサジーあたり、二つ目のデータはそれに 0.25 を乗じた感度係数である 5 。三つ目のデータは感度係数そのものの値である。
また、前述の通り、多くの感度係数はエネルギー積分値であるため、グラフにプロットする場合には、ヒストグラム状にすべきである 6 。感度係数をプロットする際の悪い例、良い例をそれぞれ Fig. 1 に示す。なお、ヒストグラム状のグラムを Excel で作成する場合には、上のリストで示したデータを用いると少々手間を要するため、そのような場合には ShowSensitivity1DExcel メソッドを利用すると良い（このメソッドの0.06

0.06

0.05

0.05
Sensitivity/lethargy*0.25

Sensitivity/lethargy*0.25

出力データをそのまま用いればヒストグラムのデータを作成することが出来る）。

0.040.030.02

0.01

01000

0.04

0.03

0.020.01

10000

100000
Neutron energy [eV]

1e+06

1e+07

0100010000100000
Neutron energy [eV]

1e+06

1e+07

Fig. 1: 感度係数の表示例（左が悪い例、右が良い例）
SensitivityData クラスでは、感度係数データは 0 次元データについては real 型として定義されるが、1 次元（ベクトル）、二次元（行列）データについては、それぞれ GroupData1D、GroupData2D クラスのインスタンスとして定義される。ユーザ側でこれらのデータを扱う場合には、SensitivityData クラスのインスタンスから、直接これらを取り出すほうが便利である。以下に、一次元、二次元の感度データを GroupDataクラスのインスタンスとして取り出す例を示す。

Listing 4: SensivitiyData からの GroupData1D、2D の取り出しの例
12345

SensitivityData sens ;s e n s . R e a d F i l e ( ” . / SNS/ ” , ” s n s . f l a t t o p −u” ) ;GroupData1D s n s 1 d=s e n s . G e t S e n s i t i v i t y 1 D ( 9 2 2 3 8 0 , 1 0 2 ) ;GroupData2D s n s 2 d=s e n s . G e t S e n s i t i v i t y 2 D ( 9 2 2 3 8 0 , 4 ) ;4 エネルギー E に対するレサジーは ln (E /E) で定義される。ここで、E はある基準値であり、一般的には考えているエネル00ギーの最大値（例えば 10MeV）を用いる。あるエネルギー群のレサジーの幅は、そのエネルギー群の上限、下限エネルギーをそれぞれ Eu 、Ed とすると ln (Eu /Ed ) で与えられる。
5 0.25 を乗ずるのは、CBZ で頻繁に用いる 70 群、もしくは 107 群のエネルギー群構造では、多くのエネルギー群についてそのレサジー幅が 0.25 であることに由来する。つまり、単位レサジーあたりの感度係数に 0.25 を乗ずることにより、レサジー幅が 0.25 のエネルギー群については、それが感度係数そのものとなる。
6 エネルギーを離散化せずに連続エネルギーで扱う場合はこの限りではないが、CBZ はエネルギー多群近似に基づいているのでこのようになる。

4