.. _[t-cross]: [ T-Cross ] セクション ================================================== 指定した任意の面における粒子の **current** 、または **flux** を出力します。 粒子が面を通過する度にそのままカウントするものが **current** で、面の法線 ベクトルに対して粒子が角度 :math:`\theta` で入射した場合に :math:`1/\cos\theta` の重みを付けてカウントするものが **flux** (ただし、単位時間あたりの量ではないので、正確には fluence)です。 これらは共に面を通過する単位面積あたりの粒子の数を意味する物理量ですが、 **current** が単に指定した面を通過する粒子の総量を評価するのに対し、 **flux** は粒子の流れの方向に垂直な面を通過する量を評価します。 したがって、単位面積あたりの値を求める際に必要となる面積が違うこととなり、 :numref:`flux` に示すように、 **flux** の場合は :math:`1/\cos\theta` の重みを付けてカウントすることになります。 なお、 :numref:`flux` の :math:`S` は、 **mesh=reg** を選択している場合 は形状メッシュサブセクションにおいて **area** として与えます。 **mesh=r-z** 、 **mesh=xyz** を選択している場合は自動的に計算された値が使 用されるため必要ありません。 .. _flux: .. figure:: ./flux.png :width: 25em :alt: 指定した面の面積 S と粒子の運動方向に対して有効な面素 S cos(theta) の関係。 :align: center 指定した面の面積 :math:`S` と粒子の運動方向に対して有効な面素 :math:`S\cos\theta` の関係。 本タリーの **flux** は :math:`1/\cos\theta` の重みを考慮した量となるた め、 **[t-track]** で指定する領域の厚さを無限に薄くした場合と同等の結果 が得られます。 これにより例えば、指定した面に沿って設置した測定機器の応答の状況を調べる のに利用でき、前もって [cm :math:`^2`] の単位をもつ断面積の形で計算して おいた各測定機器の応答性能と掛け合わせることにより、その測定機器が応答す る回数を見積もることができます。 .. rst-class:: no-caption-number .. list-table:: **mesh** :header-rows: 0 * - value - explanation * - **reg, r-z, xyz** - メッシュ型。 メッシュ型サブセクションが必要です。 **r-z** メッシュの時にメッシュの側面が円柱状のあるセルの側面と一致する場 合や、 **xyz** メッシュの時に座標変換によって存在するセルの境界面とタリー 面が一致する場合は、計算結果がおかしくなる可能性があるので注意してくださ い。 .. rst-class:: no-caption-number .. list-table:: **part** :header-rows: 0 * - value - explanation * - **all** (省略時), 粒子名 - タリーする粒子。 .. include:: ../commontally/e-type.rst .. rst-class:: no-caption-number .. list-table:: **e-unit** :header-rows: 0 * - value - explanation * - **MeV** (default), **keV**, **eV**, **nm**, **A0**, **keV/um** - エネルギーメッシュの単位。 **nm** は波長(ナノメートル)、 **A0** は波長(オングストローム)を指定。質量を持つ粒子に対してはド・ブロイ波長となる。 **nm**, **A0** を使用する場合、unit は 1, 4, 11, 14 のいずれかに限定される。 **keV/um** を指定した場合、エネルギー軸がLETに変換される(eng2let=1 相当)。 .. rst-class:: no-caption-number .. list-table:: **eng2let** :header-rows: 0 * - value - explanation * - (省略可) - **0** (default): **e-type** で指定したエネルギーを LET に変換しません。 **1**: エネルギーを LET (keV/um) に変換します。 結果を LET の関数として出力するには、 **eng2let=1** とした上で **axis=let** としてください。 .. include:: ../commontally/t-type.rst .. rst-class:: no-caption-number .. list-table:: **a-type** :header-rows: 0 * - value - explanation * - **1, 2, -1, -2** - 角度メッシュを指定します。**1, 2** は cosine mesh、**-1, -2** は degree 指定です。**output=a-curr** または **output=oa-curr** の場合に有効です。 角度メッシュを用いることで、ある面の法線と角度 :math:`\theta` をなす current を計数できます。:numref:`current-atype` に概念図を示します。**unit=4, 5, 6, 14, 15, 16** を指定すると、角度メッシュごとのビン幅を考慮した結果を出力できます。 .. _current-atype: .. figure:: current-atype.png :width: 20em :alt: current-atype :align: center 角度メッシュを用いた current の角度区分の概念図 .. rst-class:: no-caption-number .. list-table:: **iangform** :header-rows: 0 * - value - explanation * - **0** (default), **1, 2, 3** - **a-type** mesh の角度基準を選択します。 **0**: 面の法線ベクトルと粒子の運動方向の成す角度( :math:`\theta` と等しい) **1**: x 軸と粒子の運動方向の成す角度 **2**: y 軸と粒子の運動方向の成す角度 **3**: z 軸と粒子の運動方向の成す角度 .. rst-class:: no-caption-number .. list-table:: **unit** :header-rows: 0 * - value - explanation * - **1, 2, 3, 4, 5, 6** - **1**: [1/cm^2/source] **2**: [1/cm^2/MeV/source] **3**: [1/cm^2/Lethargy/source] **4**: [1/cm^2/sr/source] **5**: [1/cm^2/MeV/sr/source] **6**: [1/cm^2/Lethargy/sr/source] * - **11, 12, 13, 14, 15, 16** - **11**: [1/cm^2/nsec/source] **12**: [1/cm^2/MeV/nsec/source] **13**: [1/cm^2/Lethargy/nsec/source] **14**: [1/cm^2/sr/nsec/source] **15**: [1/cm^2/MeV/sr/nsec/source] **16**: [1/cm^2/Lethargy/sr/nsec/source] **unit = 3, 6, 13, 16** の場合の Lethargy はエネルギーに関する自然対数目盛 を表しています。 各エネルギービンの上限と下限がそれぞれ :math:`E_{\rm high}`, :math:`E_{\rm low}` のときに、各 Lethargy の幅を :math:`\ln(E_{\rm high}/E_{\rm low})` で与えます。 **unit = 4, 5, 6, 14, 15, 16** の場合の **sr** は、立体角の単位ステラジ アン(steradian)を表しています。 .. rst-class:: no-caption-number .. list-table:: **axis** :header-rows: 0 * - value - explanation * - **eng, let, reg, x, y, z, r** - 出力データの x 軸。 * - **cos, the, t** - 角度(cos, the)または時間軸。 * - **xy** - 2次元表示。 * - **yz, xz, rz** - 2次元表示。 **enclos=1** の場合のみ有効です。 .. include:: ../commontally/samepage.rst .. include:: ../commontally/file.rst .. include:: ../commontally/resfile.rst .. include:: ../commontally/factor.rst .. include:: ../commontally/title.rst .. include:: ../commontally/angel.rst .. include:: ../commontally/sangel.rst .. rst-class:: no-caption-number .. list-table:: **2d-type** :header-rows: 0 * - value - explanation * - **1, 2, 3, 4, 5, 6, 7** - 2次元表示のオプション。 * - (省略可, **D=2**) - .. rst-class:: no-caption-number .. list-table:: **output** :header-rows: 0 * - value - explanation * - **flux** - タリー面における粒子 flux を出力。 * - **current** - タリー面を横断する粒子数を出力。 * - **f-curr** - 面を前方に向かって横断する粒子数を出力。 * - **b-curr** - タリー面を後方に向かって横断する粒子数を出力。 以下は、エネルギー分布や角度分布の有無を明示的に出力するオプションですが、version 3.34以降の使用は奨励されていません。 * - **o-curr** - **e-type** を指定しない場合の current。 * - **of-curr** - **e-type** を指定しない場合の f-curr。 * - **ob-curr** - **e-type** を指定しない場合の b-curr。 * - **a-curr** - **a-type** を指定した場合の current。 * - **oa-curr** - **e-type** を指定せず **a-type** を指定した場合の current。 * - **a-flux** - **a-type** を指定した場合の flux。 * - **oa-flux** - **e-type** を指定せず **a-type** を指定した場合の flux。 **output=f-curr, b-curr, of-curr, ob-curr** は、 xyz メッシュと r-z メッ シュで利用できます。 ただし、 xyz メッシュの場合は、 z 軸の方向に対してのみタリーが機能しま す。 .. include:: ../commontally/x-txt.rst .. include:: ../commontally/y-txt.rst .. include:: ../commontally/z-txt.rst .. include:: ../commontally/gshow.rst .. include:: ../commontally/resol.rst .. include:: ../commontally/width.rst .. rst-class:: no-caption-number .. list-table:: **epsout** :header-rows: 0 * - value - explanation * - **0** (default), **1**, **2** - **epsout=1** では、結果を eps ファイルとして出力します。 ファイル名は拡張子を ``.eps`` に置き換えたものになります。 **epsout=2** では、2次元型の **axis=xy** を除き、eps ファイルにエラーバーも表示します。 .. include:: ../commontally/maxangel.rst .. include:: ../commontally/ctmin.rst .. include:: ../commontally/ctmax.rst .. include:: ../commontally/chmin.rst .. include:: ../commontally/chmax.rst **[counter]** における動作契機として **in** 、 **out** を設定し、かつ **[t-cross]** でその境界面を指定した場合、タリーした後にカウンター値が変 わるのでご注意ください。 変化前のカウンター値を指定しないと、境界面を通過する瞬間の情報はタリーさ れません。 .. include:: ../commontally/trcl.rst .. rst-class:: no-caption-number .. list-table:: **dump** :header-rows: 0 * - value - explanation * - データ数 - Dump機能により出力する粒子情報の数を定義します。 **mesh = reg** のみ有効です。 **dump** を指定した場合、自動的に **unit = 1** かつ **output = current** となります。 * - 次行: データ定義 - 出力する粒子情報の順番を :numref:`tbl-tally-dump` に示す粒子情報番号で定義します。出力したdumpファイルを **idmpmode = 1** として接続計算で利用する場合は、18 ( **nocas** )と19( **nobch** )は必須となります。 .. rst-class:: no-caption-number .. list-table:: **letmat** :header-rows: 0 * - value - explanation * - (省略可) - **eng2let=1** の場合のみ有効です。 LET ( :math:`dE/dx` ) を評価する物質番号。 省略時は、実際の物質です。 物質を指定する場合の密度は、 **[Material]** セクションで定義された密度となります。 したがって、水に対する LET 分布を計算したい場合、 **[Material]** セクションで、水の密度が 1 g/cm^3 となるように定義する必要があります。 また、負の場合は電子・陽電子の :math:`dE/dx` として 1 g/cm^3 の水に対する値が参照されます。 詳しくは ``ParticleTherapy`` を参照してください。 .. rst-class:: no-caption-number .. list-table:: **gslat** :header-rows: 0 * - value - explanation * - **1** (default), **0** - **1**: **gshow** を指定した際に lattice の境界線を表示します。 **0**: 表示しません。 .. include:: ../commontally/stdcut.rst .. rst-class:: no-caption-number .. list-table:: **multiplier** :header-rows: 0 * - value - explanation * - 物質数 - 物質ごとに multiplier を指定します。 * - (省略可) - このパラメータの下に multiplier サブセクションが必要です。 詳細は multiplier サブセクションを参照してください。 バージョン2.86より、 **[t-cross]** でも **multiplier** の機能が使えるよう になりました。 .. rst-class:: no-caption-number .. list-table:: **enclos** :header-rows: 0 * - value - explanation * - **0** (default) - **mesh=r-z** のときは z 軸に垂直な面と r 軸に垂直な面の2種類をタリー面として定義します。 **mesh=xyz** のときは z 軸に垂直な面のみをタリー面として定義します。 * - **1** - メッシュ型によって区切られた領域を取り囲む面をタリー面として定義します。 1つの領域を構成する全ての面を1つのタリー面として扱います。 バージョン3.10より、 **mesh=xyz** または **mesh=r-z** とした場合に **enclos=1** とすることで、メッシュ型によって区切られた領域を取り囲む面 をタリー面として設定する機能を追加しました。 このとき、1つの領域を構成する全ての面を、1つのタリー面として扱います。 例えば **mesh=xyz** の場合、 **enclos=0** では z 軸に垂直な面のみをタ リー面としますが、 **enclos=1** では xyz メッシュで形作られる直方体の6 面をタリー面とします。 また、 **forward** はタリー面に囲まれた領域に流入する方向、 **backward** はタリー面に囲まれた領域から流出する方向を意味します。 そして、単位面積あたりの量の計算では、その閉曲面の総面積を使用します。 メッシュ型として **mesh=reg** を選択した場合、それに続くメッシュ型サブセ クションにおいて、タリーするための横断面を定義する必要があります。 横断面の定義は、出て行く領域( **r-from** )と入ってくる領域 ( **r-to** )の領域番号を指定する形で行います。 [#old-rinout]_ また、単位面積あたりの量を計算するために、その横断面の面積を **area** (単位は cm :math:`^2`)として与えてください。 **mesh=reg** の場合のメッシュ型サブセクションは、次のような書式となりま す。 .. code-block:: text :caption: **mesh=reg** を用いた **[t-cross]** の例題 mesh = reg reg = number of crossing surfaces r-from r-to area 2 8 10.0 3 8 5.0 ( 4 5 ) ( 4 5 ) 2.0 (13<5) (14<5) 7.0 (13<6) (14<6) 7.0 (13<7) (14<7) 7.0 ... ... .... ... ... .... **mesh=reg** と書いた次の行で、 **reg=** により、指定したい横断面の数を決 めてください。 さらにその次の行から、行列形式で **r-from** 、 **r-to** 、 **area** を指 定します。 これらは **reg=** で決めた数の行数分のデータセットが必要です。 データ列の順番は、 **r-from r-to area** が default です。 この見出しの行は省略できますが、もし順番を変える場合は、 **area r-from r-to** のように各列の見出しを明示してください。 また、読み飛ばしコラム用の **non** も使えます。 領域番号を指定する際は、領域をまとめる **( { 2 - 5 } 8 9 )** という書式 や **( 6 < 10[1 0 0] < u=3 )** などの lattice, universe 構造も利用でき ます。 ただし、単一の数字でない場合は必ず **( )** で括ってください。 これらの順番を変えたい場合は、見出しの順番を変えます。 **mesh=reg** とした際に、粒子 fluence を求める場合は注意が必要です。 上の例題において、上から3番目に示した指定方法以外は、片方向の fluence に なります。 したがって、粒子 fluence をタリーする場合は、両方向の寄与を足し合わせる ために、 **r-from** と **r-to** の両方に横断面を挟む2つの領域番号を書い てください。 メッシュ型で、 **mesh=r-z** を選択した場合は、 :math:`r_i-r_{i+1}` で定義される領域の **nz+1** 個の :math:`z` 横断面と、 :math:`z_i-z_{i+1}` で定義される領域の **nr+1** 個の :math:`r` 横断面の 2種類の横断面が定義されます。 r-surface と外部ボイドの面が同じ場合は、この面での cross はタリーされま せんからご注意ください。 メッシュ型で、 **mesh=xyz** を選択した場合は、 :math:`x_i-x_{i+1}` 、 :math:`y_j-y_{j+1}` で定義される領域の **nz+1** 個の :math:`z` 横断面が定義されます。 このとき、 :math:`x` 、 :math:`y` 横断面は定義されません。 **mesh=r-z** 、 **mesh=xyz** の時は、面を横断する粒子の両方向が自動的に 入ります。 また、これらの時の **forward** は、 :math:`z` 面では正方向、 :math:`r` 面では中心から外方向を意味します。 バージョン3.05より、 **z-type=1** とした場合に **nz=0** とすることで、 タリー面を1面だけ設定できるようにしました。 .. [#old-rinout] バージョン2.96以前は、 **r-from** と **r-to** ではなく、それぞれ **r-in** と **r-out** を使用していました。 **r-in** と **r-out** は、バージョン2.97以降でも利用できますが、出て行く領域( **r-in** )と入ってくる領域( **r-out** )の in と out が逆になっていますのでご注意ください。