3.6 粒子の表式
4.6.5 繰り返し幾何形状
4.6.5.2 Latticeを用いた階層構造
4.6.4節で見た四角柱や六角柱のlatticeをより複雑なものにするために、universeを用いて階層構造を構築
することができます。考え方はuniverse構造に基づいており、universe 1の一部をuniverse 2で満たし、更 にuniverse 2の一部をuniverse 3で満たし、といった手続きで各階層を定義していくことが可能です。PH ITS
では基本的に最大10 (param.inc中のmxlvで変更できます)の階層構造をつくることができます。
List 4.18
•
[cell]セクションの例題(9)1: [ M a t e r i a l ] 2: mat[1] 1H 2 16O 1 3: mat[2] Fe 1 4: [ C e l l ]
5: 1 0 11 -12 13 -14 15 -16 FILL=1
6: 101 0 -26 25 -22 21 LAT=1 U=1
7: FILL=-1:1 -1:1 0:0
8: 2 2 3 2 3 2 3 2 2
9: 201 1 1.0 -90 U=2 10: 301 2 10.0 -10 U=3
11: 302 0 10 U=3
12: 2 -1 #1
13: [ S u r f a c e ] 14: 10 CY 1.5 15: 11 PX -6
16: 12 PX 6
17: 13 PY -6
18: 14 PY 6
19: 15 PZ -6
20: 16 PZ 6
21: 21 PX -2
22: 22 PX 2
23: 25 PZ -2
24: 26 PZ 2
25: 90 BOX -10 -10 -10 20 0 0 0 20 0 0 0 20
−10 −5 0 5 10
−10
−5 0 5 10
z [cm]
x [cm]
water void iron (-1,-1,0) (0,-1,0)
(1,-1,0) (1,-1,0) (-1,0,0)
(0,0,0) (1,0,0) (0,0,0) (-1,1,0)
(0,1,0) (1,1,0) (-1,1,0)
図27: 例題(9)の空間をxz平面で切り取った断面図。
9つの四角柱の内、3つが鉄柱を中心に配した内部構 造をもっている。
まず5, 6行目にある、四角柱のlattice構造とそれを 引用するセル番号1の定義は例題(6)と同じです。
ただし、7, 8行目におけるセルパラメータFILLの 使い方が違っており、ここでは各格子の状態を個別 に指定しています。7行目では取り扱う範囲を決め ており、各格子に割り振られたlattice座標(s,t,u) を参照してFILL=の後ろで決定しています。本例 題では、sに関して−1 から1まで(3つ)、tに関 して−1から1まで(3つ)、uに関して0から0ま で(実質は1つ)をセル番号101のlattice構造と定 義しています。合計3×3×1 = 9 の格子が対象 となり、それぞれを満たす宇宙は8行目で指定し ています。この順番はlattice座標(s,t,u)で表現し て、(−1,−1,0),(0,−1,0),(1,−1,0),(−1,0,0),· · ·の様 になっており、2であればuniverse 2で、3であれ
ばuniverse 3でその格子を満たすことを意味します。
Universe 2を水が入った一辺20cmの立方体を原点付近に配置した宇宙として、universe 3を原点に半径1.5cm の鉄柱を置いた宇宙として定義しており、9つの四角柱の内3つが特別な構造をもつことになります。結果 を示したのが図27で、xz平面に関する断面図です。この図から(s,t,u)=(1,−1,0),(0,0,0),(−1,1,0)の格子 が内部構造をもっていることがわかります。各タリーにおいてmesh=regにより領域指定する場合は、(302
< 101[0 0 0] < 1)の書式を用います。これは“セル番号1を満たしたセル番号101のlattice座標(0,0,0)
に含まれているセル番号302の領域”という意味で、図27では中心の四角柱にある鉄柱周辺のボイドの領 域を指します。この様な書式については5.1.2節を参照してください。
次は、階層構造をより複雑にした例です。
List 4.19
•
[cell]セクションの例題(10)1: [ M a t e r i a l ] 2: mat[1] 1H 2 16O 1 3: mat[2] Fe 1 4: [ C e l l ]
5: 1 0 11 -12 13 -14 15 -16 FILL=1
6: 101 0 -26 25 -22 21 LAT=1 U=1
7: FILL=-1:1 -1:1 0:0
8: 2 2 3(1 0 1) 2 3(1 0 1) 2 3(1 0 1) 2 2 9: 201 1 1.0 -90 U=2
10: 301 0 -36 35 -32 31 LAT=1 U=3
11: FILL=-1:0 -1:0 0:0
12: 4 2 2 4
13: 401 2 10.0 -10 U=4
14: 402 0 10 U=4
15: 2 -1 #1
16: [ S u r f a c e ] 17: 10 CY 0.5 18: 11 PX -6
19: 12 PX 6
20: 13 PY -6
21: 14 PY 6
22: 15 PZ -6
23: 16 PZ 6
24: 21 PX -2
25: 22 PX 2
26: 25 PZ -2
27: 26 PZ 2
28: 31 PX -1
29: 32 PX 1
30: 35 PZ -1
31: 36 PZ 1
32: 90 BOX -10 -10 -10 20 0 0 0 20 0 0 0 20
−10 −5 0 5 10
−10
−5 0 5 10
z [cm]
x [cm]
water void iron
図28: 例題(10)の空間を xz平面で切り取った断面 図。9つの四角柱の内3つが構造をもち、更に4つの 四角柱で構成されている。
この例題でつくられる仮想空間は、図28の様にな ります。ただし、xz平面で切った断面を示してい ます。まず、一辺12cmの立方体を9つの四角柱に 分け、その内の3つに内部構造をもたせた点は例題 (9)と同じです。違うのはuniverse 3として定義した 宇宙を更に内部構造をもった格子で埋めたことで、
9∼11行目でその状態を指定しています。ここでは 2×2×1=4の四角柱を定義しており、その内の2 つが鉄柱をもつ格子となっています。また、8行目 の(1 0 1)は座標変換を表しており、引用する際 にuniverse 3をx軸方向に1cm、z軸方向に1cm平 行移動しなさい、という意味となります。セル番号
301は、原点(0,0,0)を中心にもつ四角柱を基本単位
としているため、図の様な配置にする場合は少しず らす必要があります。また、latticeを用いて階層構 造を作成した場合のmesh=regによる領域指定は、
階層構造を増やした書式により行います。例えば図28においてx=−1,z=−1を中心とする微小四角柱の ボイド部分は、(402 < 301[-1 -1 0] < 101[0 0 0] < 1)と記述します。もし対象とする階層が更に深 くなった場合は、<とlattice座標を用いて階層を増やすことで各領域を指定できます。この書式の詳細につ
いては5.1.2節をご覧ください。
4.6.5.3 ボクセルファントム(voxel phantom)の利用
PH ITS ではlattice構造を利用してボクセルファントム(voxel phantom)を仮想空間として設定できます。
ボクセルファントムとは微小立方体を積み重ねて生物などの複雑な構造物を表現したものです。CT等の画 像データを元にして作成するボクセルデータを使用します。本節では、非常に簡単なボクセルデータを用意 し、これを用いた設定方法について説明します。
基本的な考え方として、まず粒子輸送を行うためのある一定の大きさをもつ立方体(直方体)を用意し、そ の中に微小立方体(ボクセル)を並べます。その際、lattice構造のLAT=1を利用し、各ボクセルの座標が指 定できる様にセルパラメータFILLを使います。FILLを使用した場合、各ボクセルがどの状態か、すなわ
ちどのuniverseで満たされているか、が指定できるため、水や鉄(あるいはボイド)で満たされたuniverse
を引用することで、様々な構造物をつくることができます。したがって、ボクセルデータは各ボクセルの位 置座標と構成物質の情報をもっている必要があり、ここではL000L100L200 · · · Lstu · · · の順番で並べたデー タ群を想定しています。ここで、Lstuはlattice座標(s,t,u)にあるボクセルの構成物質(universe番号)です。
以下では、一辺が10cmの立方体の中に一辺2cmのボクセルを合計5×5×5=125並べた場合を考えて います。
List 4.20
•
[cell]セクションの例題(11)1: [ M a t e r i a l ] 2: mat[1] 1H 2 16O 1 3: mat[2] Fe 1 4: [ C e l l ]
5: 1 0 11 -12 13 -14 15 -16 FILL=1 6: 101 0 -20 LAT=1 U=1
7: FILL=-2:2 -2:2 -2:2
8: 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 9: 2 2 2 2 2 2 3 3 2 2 2 3 4 3 2 2 3 3 2 2 2 2 2 2 2 10: 2 2 2 2 2 2 3 3 3 2 3 4 4 4 3 2 3 3 3 2 2 2 2 2 2 11: 2 2 2 2 2 2 2 3 3 2 2 3 4 3 2 2 2 3 3 2 2 2 2 2 2 12: 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2
13: 201 0 -90 U=2
14: 301 2 10.0 -90 U=3 15: 401 1 1.0 -90 U=4
16: 2 -1 #1
17: [ S u r f a c e ] 18: 11 PX -5
19: 12 PX 5
20: 13 PY -5
21: 14 PY 5
22: 15 PZ -5
23: 16 PZ 5
24: 20 BOX -1 -1 -1 2 0 0 0 2 0 0 0 2 25: 90 BOX -10 -10 -10 20 0 0 0 20 0 0 0 20
5行目でセル番号1の領域を一辺が10cmの立方体として定義しています。これが次の行のセル番号101の
latticeで満たされており、基本単位は面番号20で定義した一辺2cmの立方体です。ここでは面記号BOX
を用いて微小立方体(ボクセル)を定義しています。7行目でボクセルをlattice座標(s,t,u) のそれぞれに 5つずつ並べるとしており、8∼12行目で各ボクセルを満たすuniverse番号を指定しています。ボクセルは (−2,−2,−2),(−1,−2,−2),· · ·,(2,2,2)の順番で並んでおり、ボイドの場合は2、鉄は3、水は4の数字が対応 しています。ボイドや鉄、水が入った空間の定義は13∼15行目で行っており、それぞれが一辺20cmの立方 体に入った宇宙をuniverse 2, 3, 4としています。本例題のボクセルで表現しているのは多少いびつな形状の 鉄の箱に水が入っている構造物です。結果を図29に示しました。左図が立体的にそのまま見た結果、右図 が表面の一部を透明にして見た結果です。少しずれていますが、図の左から右がs軸、下から上がt軸、奥
から手前がu軸の方向に対応します。見てわかる様に、でこぼこした鉄の箱の中には水が入っており、こ の構造物を対象に粒子輸送計算を行うことができます。各タリーにおいてmesh=regにより領域指定する 場合は、(401 < 101[0 0 0] < 1)の書式を用います。あるいは、セル番号1中の水の部分全てを指定し たい場合は、(401< 1)とすることができます。これらの書式については5.1.2節をご覧ください。ただし、
(301 < 101[-2:2 -2:2 -2:2] < 1)の様な指定方法はできません。セル番号101[-2:2 -2:2 -2:2]の 全てにセル番号301の領域が含まれているわけではないためです。
0 5 10 15 20
0 5 10 15 20
0 5 10 15 20
0 5 10 15 20
図29: 例題(11)の構造物を立体的に見た図(左)と表面の一部を取り除き内部を見た図(右)。
PH ITS では、最初に読み取ったインプットデータを一時的にバイナリ形式で書き出し、それを再度読み込 んで粒子輸送計算を行います。例題(11)で扱ったのは簡単なボクセルですが、一般的にボクセルデータは 大規模なものとなり、それをPH ITS の実行の度に読み書きするのは非常に時間がかかります。これを緩和す るために、[parameters]セクションのivoxelパラメータを使う方法があります。ivoxelは、ボクセル
データ(実質的には例題(11)の8から12行目)をバイナリとして出力させて保存し、2度目からはそのバイ
ナリを読んで計算するという機能をもちます。PH ITS 実行時にivoxel=2とするとfile(18)にデータを書 き出してそのまま終了します(ただし、バージョン2.30以前では、終了せずに引き続き輸送計算を行いま す)ので、以降ivoxel=1と設定することで該当ファイルからバイナリデータを読み込んで計算できます。
また、大量のボクセルデータをPH ITS のインプットファイルとは別のファイルに保存して計算するときは、
inflを使用します。この場合のivoxelの使い方も同じです。
4.6.5.4 連続四面体形状の利用
本節では、連続四面体形状の仕組みと定義の仕方、および基本的な利用方法について説明します。連続四 面体形状はポリゴンの一種で、様々な大きさの四面体を組み合わせることで、複雑な形状をもつ物体を表現 できるようになります。
連続四面体形状は、
• Nodeファイル:各四面体の各々の頂点のxyz座標
• Elementファイル:各四面体要素を構成する4つの頂点
の2つのファイルで表現されます。NodeファイルおよびElementファイルは、共通のファイル名に.nodeお よび.eleという拡張子が付いた形を想定しています。PHITSのインプットファイルでは、この共通ファイル 名を指定することになります。この機能の具体的な利用方法については、\phits\utility\TetraGEOMフォ ルダにある資料やサンプルインプットをご参照ください。
次に、NodeファイルおよびElementファイルの例を示します。
List 4.21
•
Nodeファイルの例1: # Simple two elements
2: 5 3 0 0
3: # pointID x y z 4: 1 0.0 -2.5 -4.0 5: 2 -4.0 -2.5 0.0 6: 3 4.0 -2.5 0.0 7: 4 0.0 -2.5 4.0
8: 5 0.0 2.5 0.0
Nodeファイルでは、まず始めにこのファイルに含まれる全ての頂点の数と扱っている次元数を設定します (2行目)。PHITSで扱える次元は3次元のみです。2行目の最後の2つの0はPHITSでは使われずに無視さ れます。その下に(4行目以下)、
[頂点番号] [x] [y] [z]
の順で頂点番号とその頂点のxyz座標を指定します。
List 4.22
•
Elementファイルの例1: # Simple two elements 2: 2 4 1
3: # elementID point(1:4) universe
4: 1 1 2 3 5 5001
5: 2 5 2 3 4 5002
Elementファイルでは、まず始めにこのファイルに含まれる全要素数と1つの要素を構成する頂点の数(PHITS
では、1次要素の四面体しか扱えないので、4となります)と要素に付加する情報の数(PHITSでは1)を 設定します(2行目)。その下に(4行目以下)、
[要素番号] [頂点番号1] [頂点番号2] [頂点番号3] [頂点番号4] [要素ユニバース番号]
の順で各要素の情報を指定します。要素番号は各四面体のID番号、頂点番号1∼4はその四面体を構成する 頂点の番号でNodeファイル内で定義した番号です。最後の要素ユニバース番号で、各四面体をどのuniverse 番号の空間で満たすかを指定します。各universeの定義はPHITSのインプットファイルで行います(List 4.23の17,18行目参照)。なお、NodeファイルおよびElementファイル内では、任意の行で#から始まるコ メント行を挿入することができます。
NodeファイルおよびElementファイルは四面体メッシュ分割ソフトウェアTetGenを使って作成すること ができます。多少技術が必要ですが、一般的なポリゴンデータもこのソフトウェアを使って連続四面体に変 換することが可能です。TetGenは以下のウェブサイト
http://wias-berlin.de/software/tetgen/
から無料でダウンロード可能です。TetGenの使い方については、TetGenのマニュアルをご参照ください。
次に、PHITSのインプットファイルにおける指定の仕方について説明します。
List 4.23
•
[cell]セクションの例題(12)1: [Material]
2: mat[1] 14N 78.1 16O 20.9 40Ar 0.93 3: mat[2] 1H 2 16O 1
4: mat[3] 56Fe 1 5: [Surface]
6: 10 rpp -5.0 5.0 -3.0 3.0 -5.0 5.0 7: 20 rpp -7.0 7.0 -5.0 5.0 -7.0 7.0 8: 90 so 500.0
9: [Cell]
10: 101 1 -0.001205 -20 U=1 LAT=3 tfile=Tetra TSFAC=1.0
11: 1 0 -10 FILL=1
12: 2 -1 10
13: 201 2 -1.0 -90 U=5000 14: 202 3 -7.874 -90 U=5001
せ⣲䠍
せ⣲䠎
㡬Ⅼ䠍
㡬Ⅼ䠎 㡬Ⅼ䠏
㡬Ⅼ䠐
㡬Ⅼ䠑
図30: 例題(12)で作られる連続四面体形状。
PHITSで連続四面体形状を取り扱うためには、直方体(面記
号RPP)で指定する領域を定義し、その中に四面体連続形状
を展開します。全ての四面体の頂点はこの直方体の中に含ま れる必要があります。ただし、直方体の大きさを連続四面体 形状の大きさからかけ離れて大きく取り過ぎると計算の都合 で問題が生じるので、連続四面体形状が全て収まる適当な大 きさの直方体としてください。10行目では、セル番号101の 領域として、面番号20で定義される14cm×10cm×14cmの直 方体の中にファイル名Tetraで指定される連続四面体形状を展 開しています。LAT=3は連続四面体形状を使用するオプショ ンの指定で、TFILEに与えられるファイル名に対応するNode ファイルおよびElementファイルが読み込まれることになり ます。Windows以外のOSでは、ファイル名に大文字小文字 の区別があるので、ここでのファイル名の指定も大文字小文
字を正しく入力してください。TSFACの指定により、Nodeファイルで与えられる四面体頂点の座標に対す る規格化定数を与えることができます。ここでは、TSFAC=1.0なので、Nodeファイルで与えられる座標を そのまま使用します。セル番号101の領域に対するマテリアルの指定は領域101内で連続四面体を除く領 域で使用されることになります。11行目でセル番号1の領域を10cm×6cm×10cmの直方体として定義して います。Fillの指定により、この領域が10行目のセル番号101で定義される連続四面体を含む領域によっ て満たされることになります。このように連続四面体形状(LAT=3)を使用する場合も、Lattice構造の指定 と同じように、UniverseとFillを利用した入れ子構造を定義してください。Elementファイルで指定される 各四面体の要素ユニバースに対応する領域の指定はLattice構造での指定と同様で13,14行目で行っていま す。この例題では、四面体要素1には物質番号2の水(H2O)が、四面体要素2には物質番号3の鉄(Fe)が 含まれることになります。