Multi-Purpose Particle and Heavy Ion Transport code System PHITS Multi-Purpose Particle and Heavy Ion Transport code System X線のダンプデータを用いた2段階計算 2014年5月改訂 title 1
ダンプデータとして蓄えたX線を水ファントムの左右から照射して求めた吸収線量分布 本実習の目標 10MeV電子を線源とする1段階目の計算で発生したX線をダンプデータとして蓄え、これを線源とする2段階目の計算を実行し、X線を用いたシミュレーションが効率よく行えるようになる ダンプデータとして蓄えたX線を水ファントムの左右から照射して求めた吸収線量分布 Purpose 2
実習内容 体系の確認 X線のダンプデータの作成 ダンプデータを線源とした輸送計算 X線の多門照射 [transform]による照射方向の変更 複数のタリー結果の足しあわせ Table of contents 3
DumpDataSourceXray.inp 初期設定の体系 Input file 4 Water phantom Electron 10 MeV X-ray (photon) 30 cm 30 cm 約50 cm 10 cm Primary collimator Movable collimator Flattening filter x軸 W + Cu target 6 cm 1 cm 4 cm 10 cm 6 cm 1 cm y軸 0.1+1.0 cm 6 cm 5 cm 1辺10 cmの立方体×4 Input file 4
体系の確認 Icntl=8として、このインプットファイルで構築している3次元体系を描画機能を用いて把握しましょう。 Geometry 5 track_xz.eps Geometry 5
実習内容 体系の確認 X線のダンプデータの作成 ダンプデータを線源とした輸送計算 X線の多門照射 [transform]による照射方向の変更 複数のタリー結果の足しあわせ Table of contents 6
課題1 フラットニングフィルターの領域に入射する光子をダンプデータとして蓄えてみましょう(icntl=0として実行) Dump data 7 フラットニングフィルターの領域をouter regionとする dumpパラメーターを加えた[t-cross]セクションを有効に する(offをはずす) フラットニングフィルターの領域に入射する(セル番号 98から8に移動する)光子のエネルギー分布をタリーで きる[t-cross]セクションを有効にする(offをはずす) Electron 10 MeV X-ray (photon) Dump領域 Dump data 7
課題1の答え合わせ フラットニングフィルターの領域に入射する光子をダンプデータとして蓄えてみましょう(icntl=0として実行) 消す [ C e l l ] ・ ・ ・ ・ ・ ・ 6 5 -17.0 -33 7 5 -17.0 -34 $ 8 6 -8.94 -35 8 -1 -35 [ T - C r o s s ] off title = [t-cross] ・ ・ ・ mesh = reg reg = 1 non r-in r-out area 1 98 8 1.000000 e-type = 2 emin = 0.0 emax = 20.0 ne = 1 unit = 1 axis = eng file = cross_photon.out output = flux part = photon epsout = 1 dump = -9 1 2 3 4 5 6 7 8 9 [ T - C r o s s ] off title = Energy ・ ・ ・ mesh = reg reg = 1 non r-in r-out area 1 98 8 1.000000 e-type = 3 emin = 0.1 emax = 20.0 ne = 200 unit = 1 axis = eng file = cross_eng.out output = flux part = photon epsout = 1 消す Dump dataは、 cross_photon_dmp.out Dump data 8
エネルギースペクトル 得られたダンプデータが線源として十分かどうかを確認しましょう Dump data 9 cross_eng.eps 分布は隙間もなく線源として十分(相対誤差は10%程度) Dump data 9
もし統計量が十分でないと感じたら Istdevパラメーターを利用して、再開始計算を実行しましょう。 Dump data 10 [ P a r a m e t e r s ] ・ ・ ・ ・ ・ ・ istdev = -2 ただし、次の点に注意してください 2段階目の計算ではistdevをコメントアウトする 大規模なダンプデータが作成される cross_eng.eps 統計量を5倍 Dump data 10
実習内容 体系の確認 X線のダンプデータの作成 ダンプデータを線源とした輸送計算 X線の多門照射 [transform]による照射方向の変更 複数のタリー結果の足しあわせ Table of contents 11
課題2 ダンプデータとして蓄えた光子を線源として2段階目の輸送計算を実行してみましょう Dump data 12 フラットニングフィルターの領域を元に戻す dumpパラメーターを加えた[t-cross]セクションを無効に する(offを書き加える) dump dataを線源とする[source]セクションを設定する (規格化定数はcross_photon.outより読み取る) 吸収線量の空間分布をタリーできる[t-deposit]セクショ ンを有効にする(offをはずす) dumpデータを用いた[source]セクションの入力形式 Dump領域 X-ray (photon) [ S o u r c e ] totfact = *** s-type = 17 file = ******_dmp.out dump = -9 1 2 3 4 5 6 7 8 9 Dump data 12
課題2の答え合わせ ダンプデータとして蓄えた光子を線源として2段階目の輸送計算を実行してみましょう Dump data 13 消す [ S o u r c e ] off s-type = 1 proj = electron ・ ・ ・ ・ ・ ・ [ S o u r c e ] totfact = 1.5765E-01 s-type = 17 file = cross_photon_dmp.out dump = -9 1 2 3 4 5 6 7 8 9 [ T - C r o s s ] off ・ ・ ・ ・ ・ ・ dump = -9 1 2 3 4 5 6 7 8 9 [ T - Deposit ] off title = Dose in xyz mesh 消す deposit_xz.eps [ C e l l ] ・ ・ ・ ・ ・ ・ 6 5 -17.0 -33 7 5 -17.0 -34 8 6 -8.94 -35 $ 8 -1 -35 Dump data 13
課題3 コリメーターの間隔を変えて、水ファントム表面において10cm×10cm程度の照射野が作成されるようにしましょう Dump data track_xz.epsとtrack_xy.epsを見て確認する X-ray (photon) 10 cm 10 cm Dump data 14
課題3の答え合わせ コリメーターの間隔を変えて、水ファントム表面において10cm×10cm程度の照射野が作成されるようにしましょう [ S u r f a c e ] ・ ・ ・ ・ ・ ・ set:c1[1.0] 31 rpp -10-c1 -c1 -5 5 -100+17.1 -100+27.1 32 rpp c1 10+c1 -5 5 -100+17.1 -100+27.1 33 rpp -5 5 -10-c1 -c1 -100+32.1 -100+42.1 34 rpp -5 5 c1 10+c1 -100+32.1 -100+42.1 35 trc 0.0 0.0 -92.0 0.0 0.0 5.0 5.0 1e-10 track_xz.eps(2ページ目) track_yz.eps (2ページ目) Dump data 15
実習内容 体系の確認 X線のダンプデータの作成 ダンプデータを線源とした輸送計算 X線の多門照射 [transform]による照射方向の変更 複数のタリー結果の足しあわせ Table of contents 16
X線の照射方向の変更 X線の照射方向を変えるために、ダンプデータによる線源、フラットニングフィルター、可変コリメーターを水ファントムを中心にして回転させましょう。 Water phantom X-ray (photon) 水ファントムは固定 X線の線源部分をまとめて回転 [transform] 17
[transform]セクション ソース、surfaceやcellの定義、タリーのr-zやxyzメッシュ、磁場の定義等の際に、回転や平行移動を行うことが可能。 [ Transform ] $ Transform X-ray beam set: c81[0] $ angle of around Z (degree) set: c82[0] $ angle of around Y (degree) set: c83[0] $ angle of around X (degree) set: c84[0] $ displacement of Z (cm) set: c85[0] $ displacement of Y (cm) set: c86[0] $ displacement of X (cm) tr600 c86 c85 c84 cos(c81/180*pi)*cos(c82/180*pi) sin(c81/180*pi)*cos(c83/180*pi)+cos(c81/180*pi)*sin(c82/180*pi)*sin(c83/180*pi) sin(c81/180*pi)*sin(c83/180*pi)-cos(c81/180*pi)*sin(c82/180*pi)*cos(c83/180*pi) -sin(c81/180*pi)*cos(c82/180*pi) cos(c81/180*pi)*cos(c83/180*pi)-sin(c81/180*pi)*sin(c82/180*pi)*sin(c83/180*pi) cos(c81/180*pi)*sin(c83/180*pi)+sin(c81/180*pi)*sin(c82/180*pi)*cos(c83/180*pi) sin(c82/180*pi) -cos(c82/180*pi)*sin(c83/180*pi) cos(c82/180*pi)*cos(c83/180*pi) 1 Z軸, Y軸, X軸の周りに回転させる角度 平行移動のZ,Y,X成分 各セクションにtrcl=600を加えることで機能する [transform] 18
課題4 [transform]を使ってX線の線源部分を回転させ、水ファントムの反対側から照射してみましょう。 [transform] 19 ダンプデータを用いた[source]セク ションにtrcl=600を加える セル番号4,5,6,7,8にtrcl=600を加える Y軸周りに180度回転させる 回転後の線源部分が含まれるよう にtrack_xz.epsとdeposit_xz.epsの タリー領域を拡大する [ S o u r c e ] ・ ・ ・ ・ ・ ・ dump = -9 1 2 3 4 5 6 7 8 9 trcl = *** [ C e l l ] ・ ・ ・ ・ ・ ・ 4 5 -17.0 -31 trcl=*** 5 5 -17.0 -32 trcl=*** 6 5 -17.0 -33 trcl=*** 7 5 -17.0 -34 trcl=*** 8 6 -8.94 -35 trcl=*** $ 8 -1 -35 [ Transform ] $ Transform X-ray beam set: c81[0] $ angle of around Z (degree) set: c82[0] $ angle of around Y (degree) set: c83[0] $ angle of around X (degree) ・ ・ ・ ・ ・ ・ [transform] 19
課題4の答え合わせ [transform]を使ってX線の線源部分を回転させ、水ファントムの反対側から照射してみましょう。 [ S o u r c e ] ・ ・ ・ ・ ・ ・ dump = -9 1 2 3 4 5 6 7 8 9 trcl = 600 [ T - T r a c k ] ・ ・ ・ ・ ・ ・ z-type = 2 zmin = -110.0000 zmax = 110.0000 nz = 220 file = track_xz.out [ T - Deposit ] [ C e l l ] ・ ・ ・ ・ ・ ・ 4 5 -17.0 -31 trcl=600 5 5 -17.0 -32 trcl=600 6 5 -17.0 -33 trcl=600 7 5 -17.0 -34 trcl=600 8 6 -8.94 -35 trcl=600 $ 8 -1 -35 [ Transform ] $ Transform X-ray beam set: c81[0] $ angle of around Z (degree) set: c82[180] $ angle of around Y (degree) set: c83[0] $ angle of around X (degree) ・ ・ ・ ・ ・ ・ [transform] 20
照射方向を変更した場合 [transform] 21 track_xz.eps(2ページ目) deposit_xz.eps 水ファントムに対して、反対側からの照射を行った [transform] 21
実習内容 体系の確認 X線のダンプデータの作成 ダンプデータを線源とした輸送計算 X線の多門照射 [transform]による照射方向の変更 複数のタリー結果の足しあわせ Table of contents 22
+ = タリー結果の足しあわせ 外部プログラムsumtallyを用いて、照射角度を変えて得られた複数のタリー結果を足し合わせることが可能。 Sum of tally results 23
Sumtallyの使用方法 Sum of tally results 24 \lecture\therapy\programにあるsumtallyフォルダをコピーする sumtallyフォルダの中にresult1, result2といった複数のフォルダを作成し、照射角度を変えたインプットをコピーしてPHITSを実行 sumtallyの基本情報ファイル(sumtally.inp)を作成する sumtallyを実行 (Windows) sumtally_win.batにsumtally.inpをドラッグ&ドロップ (Mac) sumtally_mac.commnadをダブルクリックし、現れる窓にsumtally.inpと入力 ⇒ 足し合わせた結果を出力したdeposit_xz_sum.outが作成される deposit_xz_sum.outをインプットファイルとしてANGELを実行する ⇒ グラフ化したdeposit_xz_sum.epsが作成される 足し合わせた結果の出力ファイル名 “deposit_xz_sum.out” 1.5 2 1.0 "result1/deposit_xz.out" 1.0 "result2/deposit_xz.out" 全体の規格化定数 足し合わせるタリー結果の数 足し合わせる際のそれぞれの ウエイト値(重み付け)とタリーファイル名 Sum of tally results 24
Sumtallyの計算内容 足しあわせた結果 相対誤差 Sum of tally results 25
課題5 2つの方向からX線を水ファントムに照射した場合の吸収線量を求めてみましょう Sum of tally results 26 Sumtallyフォルダをコピーし、その中にresult1, result2の2つのフォルダを作成する Y軸周りの回転角度を0, 180度としたインプットファイルを作成し、それぞれresult1, 2のフォルダにコピーする(合わせてcross_photon_dmp.outもコピー) それぞれのインプットファイルを用いてPHITSを実行 Sumtallyを用いてdeposit_xz.outの結果を足しあわせる sumtally.inp “deposit_xz_sum.out” 1.5 2 1.0 "result1/deposit_xz.out" 1.0 "result2/deposit_xz.out" 全体の規格化定数は1.5とし、 2つのタリー結果のウエイト値は1:1とする Sum of tally results 26
課題5の答え合わせ 2つの方向からX線を水ファントムに照射した場合の吸収線量を求めてみましょう Sum of tally results \result1\DumpDataSourceXray.inp \result2\DumpDataSourceXray.inp [ Transform ] $ Transform X-ray beam set: c81[0] $ angle of around Z (degree) set: c82[0] $ angle of around Y (degree) set: c83[0] $ angle of around X (degree) ・ ・ ・ ・ ・ ・ [ Transform ] $ Transform X-ray beam set: c81[0] $ angle of around Z (degree) set: c82[180] $ angle of around Y (degree) set: c83[0] $ angle of around X (degree) ・ ・ ・ ・ ・ ・ deposit_xz_sum.eps 両方向からの照射による吸収線量(ただし統計量が十分ではない) Sum of tally results 27
+ = タリー結果の足し合わせ(補足) 十分に統計量を増やした場合の結果 一度、それぞれの照射角度での計算を行っておけば、sumtally.inpにおいてウエイト値を設定することで、様々な照射条件のシミュレーション結果を得ることが可能です。 Sum of tally results 28
まとめ 10MeV電子を1次線源とし、W+Cu標的に照射して発生するX線をダンプデータとして蓄えた [transform]を用いたX線源の回転を行い、任意の方向からの照射が可能となった Sumtallyプログラムを用いて、複数方向から照射した場合の結果を得られるようになった 《休憩はさむ》 まとめ Summary 29