.. _fragdata: [ Frag Data ] セクション ================================================== このセクションでは、ユーザー指定断面積読み込み機能について定義できます。 この機能を使用することにより、特定の粒子間の核反応イベントをユーザーが指定した断面積データを用いて模擬できます。 ただし、本機能で指定した粒子間、エネルギー領域にある反応に対しても、核データライブラリを使用する設定になっている場合は、データライブラリにある情報が優先的に使用されます。 また、指定できる入射粒子は、陽子や中性子、原子核のみです。 光子や電子は指定できないのでご注意ください。 他に、核子の弾性散乱の寄与はPHITSのモデルにより別途考慮されます。 本機能を用いて生成される粒子は、その断面積に応じてウエイト値が変わります。 場合によっては非常に小さい値となりますので、ウエイトカットオフを避けるために、**[parameters]** セクションにおいて **wc2(i)** の値を粒子 **i** 毎に変えてください。 粒子の反応計算打切エネルギー **cmin(i)** は、考慮したい最小の入射エネルギーに応じて設定してください。 書式は、以下のようになります。 .. code-block:: text :caption: **[ Frag Data ]** セクションの例 [ Frag Data ] opt proj targ file 0 12C 16O DDX_12C-16O.dat 1 proton 63Cu DDX_p-63Cu.dat **opt** が 0 の場合は指定した断面積を使用しません。 これが 1 の場合は、**proj** と **targ** で指定した粒子間の核反応を **file** で指定したファイルにある断面積データを基に模擬します。 **opt** が 2, 3 の場合は整備中です。 **opt** が 4 の場合は、入射エネルギーや放出角度、放出エネルギーについて、与えられたデータを基に単純な外挿を行います。 ただし、この外挿オプションは、下記にある **neo** が正で、**nag** が 0 でない場合しか使用できません。 また、放出エネルギーや角度の微分断面積データが群形式ではなく点形式で与えられた時は、**opt** を 5 としてください。 この場合、線形内挿を行って放出粒子のエネルギーと角度の依存性を再現します。 本機能のサンプリング方法は次の通りです。 放出粒子についてはサンプリングは行わず、常に1つ放出します。 その際、各放出確率(生成断面積)に応じてウエイト値が変動します。 一方、放出エネルギーと角度については各微分断面積に応じたサンプリングを行って決定するため、ウエイト値は変動しません。 (ただし、iopt=5のみ内挿に伴ってウエイト値が変動します。) **file** で指定する断面積データファイルの書式は、以下のようになります。 .. code-block:: text :caption: ユーザー指定断面積データファイルの書式 projectile target nei ein(1) ein(2) ein(3) ...... ein(nei+1) totxs(1) totxs(2) totxs(3) ...... totxs(nei+1) neo eout(1) eout(2) eout(3) ...... eout(neo+1) nag angle(1) angle(2) angle(3) ...... angle(nag+1) nfrg frag(1) frag(2) frag(3) ...... frag(nfrg) proxs(1,1) proxs(1,2) proxs(1,3) ...... proxs(1,nfrg) ddx(1,1,1,1) ddx(1,1,1,2) ddx(1,1,1,3) ...... ddx(1,1,1,nag) ddx(1,1,2,1) ddx(1,1,2,2) ddx(1,1,2,3) ...... ddx(1,1,2,nag) ......... ddx(1,1,neo,1) ddx(1,1,neo,2) ddx(1,1,neo,3) ...... ddx(1,1,neo,nag) ddx(1,2,1,1) ddx(1,2,1,2) ddx(1,2,1,3) ...... ddx(1,2,1,nag) ddx(1,2,2,1) ddx(1,2,2,2) ddx(1,2,2,3) ...... ddx(1,2,2,nag) ......... ddx(1,2,neo,1) ddx(1,2,neo,2) ddx(1,2,neo,3) ...... ddx(1,2,neo,nag) ......... ......... ddx(1,nfrg,1,1) ddx(1,nfrg,1,2) ddx(1,nfrg,1,3) ...... ddx(1,nfrg,1,nag) ddx(1,nfrg,2,1) ddx(1,nfrg,2,2) ddx(1,nfrg,2,3) ...... ddx(1,nfrg,2,nag) ......... ddx(1,nfrg,neo,1) ddx(1,nfrg,neo,2) ddx(1,nfrg,neo,3) ...... ddx(1,nfrg,neo,nag) proxs(2,1) proxs(2,2) proxs(2,3) ...... proxs(2,nfrg) ddx(2,1,1,1) ddx(2,1,1,2) ddx(2,1,1,3) ...... ddx(2,1,1,nag) ddx(2,1,2,1) ddx(2,1,2,2) ddx(2,1,2,3) ...... ddx(2,1,2,nag) ......... ddx(2,1,neo,1) ddx(2,1,neo,2) ddx(2,1,neo,3) ...... ddx(2,1,neo,nag) ......... ......... ......... ......... proxs(nei+1,1) proxs(nei+1,2) proxs(nei+1,3) ...... proxs(nei+1,nfrg) ddx(nei+1,1,1,1) ddx(nei+1,1,1,2) ddx(nei+1,1,1,3) ...... ddx(nei+1,1,1,nag) ddx(nei+1,1,2,1) ddx(nei+1,1,2,2) ddx(nei+1,1,2,3) ...... ddx(nei+1,1,2,nag) ......... ddx(nei+1,1,neo,1) ddx(nei+1,1,neo,2) ddx(nei+1,1,neo,3) ...... ddx(nei+1,1,neo,nag) ......... ......... ddx(nei+1,nfrg,1,1) ddx(nei+1,nfrg,1,2) ddx(nei+1,nfrg,1,3) ...... ddx(nei+1,nfrg,1,nag) ddx(nei+1,nfrg,2,1) ddx(nei+1,nfrg,2,2) ddx(nei+1,nfrg,2,3) ...... ddx(nei+1,nfrg,2,nag) ......... ddx(nei+1,nfrg,neo,1) ddx(nei+1,nfrg,neo,2) ddx(nei+1,nfrg,neo,3) ...... ddx(nei+1,nfrg,neo,nag) 最初に、**projectile** と **target** において入射粒子と標的粒子のそれぞれを指定します。 **nei** は入射エネルギーの分点数で、その次の行に **nei+1** 点の入射エネルギー(**ein**: 単位は MeV/n)を指定し、更にその次の行に同数の全反応断面積(**totxs**: 単位は mb)を指定します。 ここで **totxs** が 0 の場合は、**icxsni** や **icrhi** で指定する全反応断面積モデルにより得られた値が使われます。 **neo** は放出粒子のエネルギー分点数で、その次の行に **neo+1** 点の放出エネルギー(**eout**: 単位は MeV/n)を指定します。 ただし、**opt** が 5 の場合は **neo** 点の **eout** を指定してください。 **nag** は放出角度の分点数で、その次の行に **nag+1** 点の角度(**angle**)を指定します。 ただし、**opt** が 5 の場合は **nag** 点の **angle** を指定してください。 **nag** > 0 の場合はラジアン単位(rad)、**nag** < 0 の場合は度数単位(degree)で **angle** を与えます。 **nag** = 0 の場合は等方分布を仮定します。 **nfrg** は放出粒子の数で、その次の行に **nfrg** 個の放出粒子を指定します。 **proxs** は各放出粒子のある入射エネルギーに対する生成断面積(mb)で、その次の行から2重微分断面積(**ddx**: 単位は mb/MeV/sr)を並べます。 1つの **proxs** に対して **neo** × **nag** 点の2重微分断面積のデータが必要で、それを1単位として **nei+1** 個のデータを並べます。 放出粒子を複数指定する場合(**nfrg** > 1)は、**proxs** から始まるデータ群が **nfrg** で指定した数だけ必要となります。 また、**neo** を書くべき行で ``model`` と書いた場合は、PHITSに組み込まれている核反応モデルが使用されます。 その場合は、微分断面積のデータを与える必要はありません。 .. _ex-fragdata-ex1: .. code-block:: text :caption: 断面積データファイルの例 1: proton 2: 63Cu 3: 1 4: 10.0 100.0 5: 1000.0 500.0 6: 3 7: 1.0 10.0 50.0 100.0 8: -6 9: 0.0 30.0 60.0 90.0 120.0 150.0 180.0 10: 1 11: neutron 12: 300.0 13: 10.0 10.0 10.0 10.0 10.0 10.0 14: 15.0 13.0 12.0 11.0 10.0 10.0 15: 10.0 11.0 10.0 11.0 10.0 10.0 16: 0.0 17: 5.0 5.0 5.0 5.0 5.0 5.0 18: 10.0 8.0 7.0 6.0 5.0 5.0 19: 5.0 6.0 5.0 6.0 5.0 5.0 :numref:`ex-fragdata-ex1` に断面積データファイルの一例を示します。 1, 2 行目にそれぞれ入射粒子として proton、標的粒子として :math:`{}^{63}\mathrm{Cu}` を指定しています。 3 行目がエネルギー分点数で、この例では **nei=1** としています。 4, 5 行目において入射エネルギーと全反応断面積を **nei+1** 点ずつ与えています。 6 行目は放出粒子のエネルギー分点数です。 この例では **neo=3** としており、7 行目で放出エネルギーとして、1.0, 10.0, 50.0, 100.0 MeV の値を指定しています。 8 行目は角度の分点数です。 これをマイナスにし、9 行目で与える角度の情報を度数単位で与えています。 10 行目で放出粒子として取り扱いたい数を決めており、11 行目でその粒子(=neutron)を指定しています。 12 行目に入射エネルギーが 10.0 MeV の場合の neutron 生成反応断面積を与えており、13, 14, 15 行目でこの入射エネルギーにおける2重微分断面積を与えています。 各行は 7 行目で決めたエネルギービンに対応しており、各列は 9 行目で決めた角度ビンに対応しています。 基本的に、12 行目の生成反応断面積には、13, 14, 15 行目の微分断面積を積分した量を与えてください。 一致しない場合は、生成反応断面積の値を使って規格化されます。 16, 17, 18, 19 行目は、入射エネルギーが 100.0 MeV の場合の生成反応断面積と2重微分断面積です。 16 行目の生成反応断面積は 0 にしていますが、この場合、生成反応断面積として、17, 18, 19 行目の微分断面積を内挿して積分した値を使用します。 **neo** をマイナスで指定することで、放出粒子のエネルギーを離散的に与えることができます。 この場合、**eout** の個数は **neo** としてください。 **neo** を 0 にすると、放出粒子のエネルギースペクトルをガウス分布で与えることができます。 この場合は、**ddx** の箇所にガウス分布の平均値と分散の値を MeV で与えてください。 **ddx** の箇所で、0 の値が並ぶ場合は次のような省略形を利用できます。 .. code-block:: text :caption: **ddx** における 0 の省略形 0 -9 この例では、0 が合計 10 個並ぶことを意味します。