CBZ における核データの共分散データの取り扱い
千葉豪
平成 28 年 12 月 14 日

原子炉の核特性パラメータの予測には、様々な核データが入力として用いられる。核データの評価値には不確かさが存在することから、原子炉の核特性パラメータにも核データの不確かさに起因する不確かさが存在することになる。核データから核特性パラメータへの誤差伝播計算には種々の方法があるが、CBZ では、核特性パラメータの核データに対する感度を用いて行う方法を一般的に採用している。
核データには、中性子核反応断面積（以下、反応断面積）に加えて、崩壊データや核分裂収率データ、放射化断面積データ等、様々な種類があり、評価済み核データファイルにおいては、それらのデータに対して不確かさ（共分散データ）が評価されている。
現時点では、CBZ には、反応断面積、崩壊データ、核分裂収率データを定義するためのクラスが実装されている。本メモではそれらのうち反応断面積について解説を行う。

1

中性子核反応断面積の共分散データ

1.1

概要

反応断面積の共分散データの使用例を以下に示す。

Listing 1: 中性子核反応断面積の共分散データの使用例
123456789101112131415LibraryCovariance x s c o v l i b ;s t r i n g c o v d i r ( ” /home/ c h i b a /CBGLIB/ j 4 c o v . 1 0 7 g . i w t 7 / ” ) ;x s c o v l i b . ReadCovarianceFromFile ( c o v d i r , ”U238” ) ;x s c o v l i b . ShowSelf ( ) ;CrossSectionCovariance xscov ;x s c o v=x s c o v l i b . G e t C r o s s S e c t i o n C o v a r i a n c e ( 9 2 2 3 8 0 , 1 0 2 , 9 2 2 3 8 0 , 1 0 2 ) ;GroupData2D covmat=x s c o v . GetCo varia n ce ( ” R e l a t i v e ” ) ;GroupData1D s t d=x s c o v . G e t S t a n d a r d D e v i a t i o n ( ” R e l a t i v e ” ) ;GroupData2D c o r r=x s c o v . G e t C o r r e l a t i o n M a t r i x ( ) ;covmat . s h o w s e l f ( ) ;std . show self ( ) ;corr . show self ( ) ;反応断面積の共分散データは多群形式で用意されており、CBZLIB と同様に、核種毎に異なったファイル（テキスト形式）で与えられている。
複数の核種の共分散データを保持するクラスとして「LibraryCovariance」クラスが実装されている。この例では、LibraryCovariance クラスのインスタンス xscov lib に対して、「ReadCovarianceFromFile」メソッドにより、JENDL-4.0 の U-238 の 107 群断面積に対する共分散データが外部ファイルから読み込まれている。なお、LibraryCovariance クラスのインスタンスは複数核種の共分散データを保持することができる。このクラスのインスタンスが保持する共分散データについては、「ShowSelf」メソッドによりその一覧を表示させることができる。

1

反応断面積の共分散データは、「CrossSectionCovariance」クラスとして実装されている。すな
わち、LibraryCovariance クラスのインスタンスは、複数の CrossSectionCovariance クラスのインスタンスを保持していることになる。LibraryCovariance クラスのインスタンスから、特定のCrossSectionCovariance クラスのインスタンスを取り出すメソッドとして「GetCrossSectionCovariance」が実装されている。取り出す共分散データは引数で指定し、反応断面積 A と B の共分散データを取り出す場合には、一つ目と二つ目がそれぞれ反応断面積 A の核種 ID、反応 ID 1 に、三つ目と四つ目がそれぞれ反応断面積 B の核種 ID、反応 ID に対応する。この例では、U-238 の捕獲反応断面積の分散を取り出していることになる。なお、異なる核データ間の共分散について
は、「核データ A と核データ B」のものが収納されていないとしても、「核データ B と核データ A」のものが収納されている場合があるので、「ShowSelf」メソッドで予め収納されているデータを把握しておくことが望ましいであろう。
CrossSectionCovariance クラスのインスタンスからは、共分散行列や標準偏差（ベクトル形式）を、絶対値及び相対値で取り出すことができる。これらは上記の例の「GetCovariance」「GetStandardDeviation」メソッドに対応する。絶対値および相対値については引数で指定するが、通常は相対値を利用するとよいであろう。また、相関行列も「GetCorrelationMatrix」メソッドにより取り出すことが出来る。

1.2

複数の反応断面積の和に対する共分散の作成

CBZ では、便宜的に、高エネルギー中性子の (n,p) や (n,d) 反応等、中性子が見かけ上消失する反応は (n,g) 反応に加えることで陰に考慮している（つまり、(n,g) 反応断面積は実質的に「中性子消失断面積」となっている）。一方、共分散データについては、NJOY で多群に処理したデータをそのまま CBZ 用の共分散ライブラリとして格納しており、(n,p) 反応等は陽に取り扱われており、(n,g) 反応の共分散データにはこれらは考慮されていない。CBZ で計算される (n,g) 反応断面積に対する感度係数は中性子消失断面積であるため、この感度係数と共分散データから (n,g) 反応断面積（もしくは中性子消失断面積）由来の不確かさを計算することが出来ないことを意味する。
この点は通常の核分裂炉については問題とならないが、14MeV 入射の核融合中性子工学の問題では大きな問題となる。
この問題に対応するため、CBZ の LibraryCovariance クラスには、複数の断面積の和として定義される断面積の共分散を再計算するメソッド「CovarianceForSummedQuantity」が実装されている。
複数の断面積の和として、断面積 σ̃g が以下のように定義されるものとする。
∑σ̃g =σgi(1)i

ここで、i は核反応の種類を、g はエネルギー群を示す。σ̃ に対する共分散は以下のように定義される。
()∑∑∑∑∑∑ ( ∂ σ̃g ) ∂ σ̃g′kl
Cov(σ,σ)=Cov(σgk , σgl ′ ),Cov(σ̃g , σ̃g′ ) =(2)ijkl
∂σ∂σijijklkl())(∑∑∑∑∑ ∂ σ̃g∂ σ̂g′Cov(σ̃g , σ̂g′ ) =Cov(σik , σjl ) =Cov(σgk , σ̂g′ )(3)kl∂σ∂σijijkkl1

反応 ID は ENDF フォーマットに準じている（核種 ID は準じていないことに注意）。これについてはホームペー
ジ上の「CBZ（マニュアル以外）」の項目の「ENDF フォーマットの MAT-ID、MT-ID のルール」を参照のこと。

2

ここで σ̂ は式 (1) の右辺に含まれない、無関係の反応断面積である。
以下に、CovarianceForSummedQuantity メソッドの使用例を示す。一つ目の引数に操作を行う共分散の MAT 番号を定義し、二つ目、三つ目の引数に、和をとる反応断面積の数とその MT 番号を定義する。そして最後の四つ目の引数に、反応断面積の和に対応する MT 番号を定義する。この例では、MT=102 から 107 の反応断面積の総和に関する共分散データが MT=102 として再定義されることになる。この場合、MT=102 と MT=4 の共分散等についても、再定義が行われる。

Listing 2: 反応断面積の和に対する共分散再計算メソッドの使用例
int mt disap [ ]={10 2 , 10 3 , 10 4 , 10 5 ,1 0 6 ,1 0 7};
x s c o v . CovarianceForSummedQuantity ( 2 9 0 6 3 0 , 6 , mt disap , 1 0 2 ) ;12

崩壊データの共分散データ

2

評価済み核データファイルの崩壊データには、崩壊定数（半減期）と崩壊分岐比に対して分散が与えられている場合がある。CBZ ではいずれの分散データも扱うことが可能である。関連のソー
スプログラムは「YieldDecayCovariance.h」「YieldDecayCovariance.cxx」に記述されている 2 。

2.1

半減期（崩壊定数）の共分散データはじめに崩壊定数の分散データの取り扱いについて述べる。崩壊定数に対しては分散のみが与えられており、核種間の崩壊定数の相関は考える必要がない。崩壊定数の分散は、CBZ では「HalflifeCovariance」クラスにより取り扱いを行う。このクラスの使用例を以下に示す。

Listing 3: 崩壊定数の共分散を扱う HalflifeCovariance クラスの使用例
123456789101112131415BCGManager bm ;bm . ReadDecayDataFromFile ( ” . . / . . / CBGLIB BURN/ D D f i l e /dd . j e n d l 2 0 1 1 ” ) ;HalfLifeCovariance cov hl ;c o v h l . MakeCovarianceMatrix (bm ) ;GroupData2D covmat=c o v h l . G e t C o v a r i a n c e M a t r i x ( ) ; // R e l a t i v e c o v a r i a n c e m a t r i x
i n t s z=c o v h l . G e t S i z e ( ) ;f o r ( i n t i =0; i <s z ; i ++){i n t i d=c o v h l . GetID ( i ) ;r e a l h l=c o v h l . G e t H a l f L i f e ( i ) ;// Ha l f − l i f er e a l s t d e v=covmat . g e t d a t ( i , i ) ;// R e l a t i v e v a r i a n c e o f h a l f − l i f e ( decay c o n s t a n t )s t d e v=s q r t ( s t d e v ) ;// R e l a t i v e s t a n d a r d d e v i a t i o ncout<<id <<” ”<<hl <<” ”<<s t d e v <<” \n” ;};１行目でインスタンスが生成されている「BCGManager」クラスは、燃焼チェーンを作成するためのクラスであり、必要となる崩壊データや核分裂収率データ等を保持することができる。BCGManagerクラスのインスタンスは外部ファイルから崩壊データを読み込むが、それがこの例の２行目に対応する。HalfLifeCovariance クラスでは、BCGManager クラスのインスタンスからデータを読み込むが、それが５行目に対応する。HalfLifeCovariance クラスは、核種毎の半減期とその相対共分散行列が定義されている。この例から、その取り出し方法は容易に分かるであろう。
なお、半減期に分散が与えられていないものについては、デフォルトで 100%の誤差（相対誤差で 1.0）が仮定される。このデフォルト値を変更する場合には「SetTheoreticalValueError」メソッドを用いる（引数には相対誤差を与える）。
2

このプログラムは 2014 年度卒の川本君（現四国電力）が作成した。

3

2.2

分岐比の共分散データ

評価済み核データファイルにおいては分岐比に対しても分散のみが与えられているが、この物理量は崩壊チャンネルの総和が 1.0 となるように規格化されている必要があるため、崩壊チャンネル間で必然的に相関が発生する。CBZ においては、所謂「zero-sum rule」を課すことで、崩壊チャンネル間の相関を考慮する（従って、分散の値自体が変わる）。分岐比の共分散は、CBZ では「BrachingRatioCovariance」クラスにより取り扱いを行う。このクラスの使用例を以下に示す。

Listing 4: 分岐比の共分散を扱う BranchingRatioCovariance クラスの使用例
123456789101112131415161718BCGManager bm ;bm . ReadDecayDataFromFile ( ” . . / . . / CBGLIB BURN/ D D f i l e /dd . j e n d l 2 0 1 1 ” ) ;BranchingRatioCovariance cov br ;c o v b r . MakeCovarianceMatrix (bm ) ;GroupData2D covmat=c o v b r . G e t C o v a r i a n c e M a t r i x ( ) ; // R e l a t i v e c o v a r i a n c e
i n t s z=c o v b r . G e t S i z e I D a r r a y ( ) ;f o r ( i n t i =0; i <s z ; i ++){
i n t i d=c o v b r . GetID ( i ) ;i n t ch=c o v b r . GetChannel ( i ) ;i f ( ch >1){
GroupData2D covmat=c o v b r . G e t C o v a r i a n c e M a t r i x ( i d ) ;cout<<”# M a t e r i a l ID : ”<<id <<” \n” ;covmat . s h o w s e l f ( ) ;};};このクラスは HalfLifeCovariance クラスと同様に、データは BCGManager クラスのインスタンスから取り出す。９行目以降で、崩壊チャンネルが複数ある核種について、分岐比の相対共分散行列が出力される。12 行目の変数「ch」はこの核種の崩壊チャンネル数に対応している。
なお、分岐比に分散が与えられていないものについては、デフォルトで 100%の誤差（相対誤差で 1.0）が仮定される。このデフォルト値を変更する場合には「SetTheoreticalValueError」メソッドを用いる（引数には相対誤差を与える）。

2.3

核分裂収率の共分散データ

評価済み核データファイルにおいては、核分裂収率データに対しても分散のみが与えられている。しかし、質量数が同一の崩壊系列に属する核種間には強い相関があると考えられることから、核データファイルには与えられていない共分散を評価するための方法がいくつか提案されている。
CBZ では、片倉氏が用いている方法を利用している [1]。
独立核分裂収率の共分散は、CBZ では「IndependentYieldCovariance」クラスにより取り扱いを行う。このクラスの使用例を以下に示す。

Listing 5: 核分裂収率の共分散を扱う IndependentYieldCovariance クラスの使用例
1234567891011121314BCGManager bm ;bm . ReadDecayDataFromFile ( ” . . / . . / CBGLIB BURN/ D D f i l e /dd . e n d f 7 1 ” ) ;bm . ReadDecayDataFromFile ( ” . . / . . / CBGLIB BURN/ D D f i l e /dd . j e n d l 2 0 1 1 ” ) ;I n d e p e n d e n t Y i e l d C o v a r i a n c e cov ;cov . ReadYieldDataFromFile ( ”U235” , ” . . / . . / CBGLIB BURN/ F P Y f i l e /JENDL−FPY−2011/U235” , 0 ) ;cov . MakeCovarianceMatrix (bm ) ;// cov . M a k e C o v a r i a n c e M a t r i x W i t h o u t C o r r e l a t i o n ( ) ; // No c o r r e l a t i o n s a r e assumed .
GroupData2D mat=cov . G e t C o v a r i a n c e M a t r i x ( ”U235” ) ; // R e l a t i v e c o v a r i a n c ei n t s z=cov . G e t S i z e ( ”U235” ) ;f o r ( i n t i =0; i <s z ; i ++){i n t i d=cov . GetID ( ”U235” , i ) ;4

1516};

cout<<id <<” ”<<s q r t ( mat . g e t d a t ( i , i ))<<” \n” ;このクラスでは崩壊データと核分裂収率データの両方が必要となる。前者については BCGManager
クラスからデータを取り出すが、後者については、IndependentYieldCovariance クラスのインスタンスが直接、外部ファイルからデータを読み込む。その操作がこの例の６行目のメソッド「ReadYieldDataFromFile」に対応する（実際には、このメソッドでは読むこむべきファイル名を指定するだけの操作を行っている）。IndependentYieldCovariance クラスのインスタンスは複数の核分裂性核種の収率の共分散データを保持できるため、個々の共分散データに「タグ」をつける。
それがこのメソッドの一つ目の引数に対応する。また、二つ目の引数は読み込む外部ファイルに、三つ目の引数は核分裂収率データが定義されるエネルギー点 3 にそれぞれ対応する。
８行目で共分散行列を生成するが、そのかわりに９行目のメソッドを利用すると、相関を考慮しない行列を生成することができる。また、11 行目以降では、「U235」というタグに対応したデータを取り出すようになっている。

参考文献[1] J. Katakura, ”JENDL FP Decay Data File 2011 and Fission Yields Data File 2011,” JAEAData/Code 2011-025 (2011).

3

核分裂収率データは複数の異なるエネルギー点において定義される場合がある。ここでは整数で指定する（例えば最初のエネルギー点ならば 0、等）ため、予め核分裂収率データを木綿豆腐コードで読み込み、何番目のエネルギー点がどのエネルギーに対応するか、把握しておくとよいであろう。

5