PHITS Multi-Purpose Particle and Heavy Ion Transport code System 総合実習(I): 奨励設定及びツールを使った演習 2013年4月改訂 title 1 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 2 奨励設定とは? FAQ マニュアルを読んでも自分が必要とする計算でどのよう なパラメータを設定して良いかわからない Answer 典型的な例題に対して,その奨励設定インプットファイル を作成し,アウトプットファイルと共にWeb上で公開 http://phits.jaea.go.jp/examples.html Recommendation Settings 3 奨励設定の内容 DetectorResponse.inp 検出器の応答関数計算の例題。付与エネルギーのヒストリー間分散を計算 Shielding.inp 加速器遮へい設計の例題。フルエンスより実効線量を導出 ParticleTherapy.inp 粒子線治療計画の例題。水中の線量,線量当量,LET, y分布を計算 PhotonTherapy.inp 光子治療計画の例題。電子加速器から発生するX線や中性子の線量を計算 SemiConductor.inp 半導体ソフトエラー発生率評価の例題。ミクロ領域での吸収線量を計算 NuclearReaction.inp 核反応断面積を計算する例題。2次粒子のフルエンスを計算 H10multiplier.inp [multiplier]セクションを使ってH*(10) を計算 Counter.inp [Counter]を使う例題。1次粒子と2次粒子を識別して吸収線量を計算 Recommendation Settings 4 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 5 Carbon 200 MeV/u Water Phantom 10 cm ParticleTherapy.inp 10 cm Tally [t-deposit] (file=dose) 水中での吸収線量-深度分布 [t-deposit] (file=dose-equivalent.out) 水中での線量当量-深度分布 [t-LET] 水中でのLET分布(確率密度分布) [t-SED] 水中でのLineal-energy (y) 分布(確率密度分布) ParticleTherapy 6 吸収線量と線量当量の違い Dose.eps [ T - Deposit ] mesh = r-z r-type = 2 rmin = 0.000000 rmax = 1.000000 nr = 1 z-type = 2 zmin = 0.000000 zmax = 10.00000 nz = 100 dedxfnc = 0 Dose-equivalent.eps [ T - Deposit ] dedxfnc = 1 R 線量は,usrdfn1.fに書かれた関数 により重み付けして出力される Z r-z mesh Q(L) 関数が初期設定で組み込まれ ている 吸収線量が線量当量に変換され出力 ParticleTherapy 7 LET & y 分布 [T-LET] [T-SED] LET-distribution.eps (page 1: front surface) y-distribution.eps (page 1: front surface) LET of C(200 MeV/u) = 16 keV/mm yは単色でも確率密度分布を持つ Sharp peak Broad peak ParticleTherapy 8 入射粒子を変更 Z X (0,0,-20) Water Phantom Carbon Proton 200 MeV/u 10 cm Y 10 cm [Source] s-type = 1 proj = 12C Proton e0 = 200.00 r0 = 0.0000 x0 = 0.0000 y0 = 0.0000 z0 = -20.000 z1 = -20.000 dir = 1.0000 [ T - Deposit ] … [ T - Deposit ] off … Execute [ T – L E T ] off ... [ T – S E D ] off ... 200 MeV 陽子は10cmの水を透過!!! ParticleTherapy Dose.eps 9 体系を変更 X (0,0,-20) Water Phantom Carbon Proton 200 MeV/u 10 cm 10 cm Z 10 cm Y 30 cm [Cell] 1 1 -1.0000000E+00 1 -2 -3 2 0 #1 -999 3 -1 999 [Surface] 1 pz 0.0000000E+00 2 pz 1.0000000E+01 3.0000000E+01 3 cz 5.0000000E+00 999 so 1.0000000E+02 Execute タリー領域の変更忘れ!!! General description Dose.eps 10 タリー領域の変更 X (0,0,-20) Carbon Proton 200 MeV/u Water Phantom 10 cm Z 10 cm Y 30 cm [Cell] 1 1 -1.0000000E+00 1 -2 -3 2 0 #1 -999 3 -1 999 set: c1[30.0] [Surface] 1 pz 0.0000000E+00 c1 2 pz 2.0000000E+01 3 cz 5.0000000E+00 999 so 1.0000000E+02 [ T - Deposit ] title = depth-dose d mesh = r-z x0 = 0.000000 y0 = 0.000000 r-type = 2 rmin = 0.000000 rmax = 1.000000 nr = 1 z-type = 2 zmin = 0.000000 c1 zmax = 10.00000 nz = 100 ParticleTherapy 統計が 不十分!! Dose.eps 11 接続計算 X (0,0,-20) Carbon Proton 200 MeV/u Water Phantom 10 cm Z 10 cm Y 30 cm [Parameters] icntl = 0 maxcas = 100 maxbch = 102 istdev = -1 Execute 200MeV陽子入射に対する線量-深度分布 を十分な統計で導出することができた!! ParticleTherapy Dose.eps 12 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 13 Air 400 MeV Neutron Concrete 100 cm H10multiplier.inp 100 cm 「線量」を計算する3つの方法 [t-track] フルエンスに線量換算係数を乗じて導出する方法。この場合は [Multiplier]セクションで定義したH*(10)に対する換算係数を利用 [t-heat] 電子を除く荷電粒子の電離損失と,光子・中性子のKerma ファクターを用いて領域内の吸収線量を計算 [t-deposit] 電離損失より領域内の吸収線量を計算(中性子・光子の寄与なし) H10multiplier 14 タリー結果 [T-Track] [T-Heat] [T-Deposit] [t-track] フルエンスと線量換算係数を乗じてH*(10)を計算 * H (10) → コンクリートと空気の間にギャップがない 0 (E)d (E)dE [t-heat] 荷電粒子の電離損失と光子・中性子に対するKerma近似 →コンクリートと空気の間にギャップがある [t-deposit] 荷電粒子による電離損失のみ → コンクリートと空気の間にギャップがある。空気線量の統計誤差が大きい H10multiplier 15 H*(10)及び実効線量の計算 [t-track]で計算したフルエンスは,内蔵もしくは[multiplier] セクションで定義した複数の関数と掛け合わせることができる [ Multiplier ] number = -250 interpolation = log ne = 140 1.13000E-08 9.14000E+00*3600*1.0e-6 1.42000E-08 9.44000E+00*3600*1.0e-6 1.79000E-08 9.83000E+00*3600*1.0e-6 ... [T-Track] title = H*(10) in xyz mesh in uSv/h ... multiplier = all part = neutron emax = 1000.0 mat mset1 mset2 all ( 1.0 -250 ) (1.0 -102) multiplier = all part = photon emax = 1000.0 mat mset1 mset2 all ( 1.0 -251) (1.0 -114) H*(10) Effective Dose (Page 1) (Page 2) Track.eps ほとんど同じにしか見えない ! • 中性子 (-250) 及び光子 (-251)に対する [multiplier]セクションで定義したH*(10)換算係数 • 中性子 (-102) 及び光子 (-114)に対する 内蔵の実効線量換算係数 H10multiplier 16 Axisの変更 [T-Track] title = H*(10) in xy part = ( neutron photon ) mesh = xyz x-type = 2 xmin = -60.0 xmax = 60.0 Execute nx = 60 1 y-type = 2 ymin = -60.0 ymax = 60.0 ny = 1 z-type = 2 H*(10) Effective Dose たくさんグラフが zmin = 0.0 (Page 1) (Page 2) 出力されてしまう zmax = 120.0 のを防ぐため nz = 60 e-type = 1 両グラフの軸が一致していないので ne = 1 1.00000E-10 1.00000E+03 どちらが大きいかよく分からない unit = 1 material = all 2Dプロット(等高線図) から axis = xzz 1Dプロット(ヒストグラム)へ変更 file = track.out Track.eps H10multiplier 17 縦軸の調整 [T-Track] title = H*(10) in xy part = ( neutron photon ) mesh = xyz x-type = 2 xmin = -60.0 xmax = 60.0 Execute nx = 601 y-type = 2 ymin = -60.0 ymax = 60.0 ny = 1 z-type = 2 zmin = 0.0 zmax = 120.0 nz = 60 e-type = 1 ne = 1 1.00000E-10 1.00000E+03 unit = 1 material = all z axis = xz file = track.out angel = ymin(5.e-05) ymax(5.e-4) H*(10) Effective Dose (Page 1) (Page 2) Track.eps H*(10) < Effective dose ANGELパラメータを加える (縦軸の最小&最大値) H10multiplier 18 グラフを加工する(ANGELの実行) Track.outをTrack2.outとしてコピーして編集 #------------------------------------------------ 80行目 #newpage: # no. = 1 ie = 1 ix = 1 iy = 1 … x: z[cm] y: Flux [1/cm^2/source] p: xlin ylog afac(0.8) form(0.9) p: ymin(5.e-05) ymax(5.0e-4) h: n x y(p1-group),hh0l n H10 # z-lower z-upper flux r.err 0.0000E+00 1.0000E+00 1.2809E-04 0.0263 … #------------------------------------------------- 232行目 #newpage: # no. = 2 ie = 1 ix コメントアウト = 1 iy = 1 (PHITS入力 … ファイルと同じ形式) x: z[cm] y: Flux [1/cm^2/source] p: xlin ylog afac(0.8) form(0.9) p: ymin(5.e-05) ymax(5.0e-4) h: n x y(p1-group),hh0l rn Effective # z-lower z-upper flux r.err 0.0000E+00 1.0000E+00 1.9351E-04 0.0174 ... Track2.outを右クリック → 送る → ANGEL Track2.eps レジェンド変更 「(」や「)」は使わない 色を追加 (r:赤,b:青, g:緑 etc) hh0lとの間にスペースを空けない H10multiplier 19 どのエネルギー領域が支配的? [T-Track] title = H*(10) in xy part = ( neutron photon ) mesh = xyz x-type = 2 xmin = -60.0 xmax = 60.0 Execute nx = 1 y-type = 2 ymin = -60.0 ymax = 60.0 ny = 1 z-type = 2 zmin = 0.0 zmax = 120.0 nz = 60 e-type = 1 ne = 12 1.00000E-10 1.00000E+03 20.0 1.0E+03 unit = 1 material = all エネルギービン を2つに分割 axis = z file = track.out angel = ymin(1.e-05) ymax(2.e-4) Low Energy (page1) Low Energy (page3) ≅ High Energy (page2) High Energy (page4) < H*(10) H10multiplier Effective Dose 20 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 21 便利なツールの内容 Animation PHITSでシミュレーションした粒子飛跡の動画作成方法 Rotate3dshow [t-3dshow]で表示したジオメトリを回転させる動画作成方法 SimpleGEO SimpleGEOで作ったジオメトリをPHITSに組み込む方法 Autorun 少しずつ計算条件を変えてPHITSを連続的に実行する方法 Animation Rotate3dshow Utilities SimpleGEO 22 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 23 粒子飛跡のアニメーション化 必要ソフトウェア ImageMagick (http://www.imagemagick.org/script/binary-releases.php) 複数ページのEPSファイルを1つのGIFアニメーションにするためのソフト 手順 1. PHITSを実行する [t-track]や[t-deposit]タリーで時間メッシュ(t-type)を導入し, フラックスや発熱量の時間変化を出力する 2. EPSファイルを編集する ① 出力したEPSファイル(track.eps)をテキストエディタで開く ② 「PageBoundingBox」を2回検索する ③ 1つ目と2つ目の数字を0に変更して保存する %%PageBoundingBox: 27 36 571 803 %%PageBoundingBox: 0 0 571 803 3. EPSファイルをGIFアニメーションに変換する ① コマンドプロンプトを開いて,EPSファイルのあるフォルダに移動する ② ‘convert -dispose background -rotate 90 XXX.eps XXX.gif‘ Animation 24 動画時間分解能の向上 animation.inp [T-Track] C -- Contour figure Tally -mesh = xyz ... t-type = 2 nt = 2060 # Number of frame tmin = 0.00 # Initial time (nsec) tmax = 40 # Final time (nsec) ... angel = cmin(1.e-05) cmax(1.e+00) epsout = 1 20 frame フレーム数を増やす PHITSを実行 EPSを編集 EPSからGIFに変換 60 frame Animation 25 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 26 SimpleGEOを用いた体系作成方法 必要ソフトウェア SimpleGEO&プラグインパッケージ(Windows専用) Download site: http://theis.web.cern.ch/theis/simplegeo/ 手順 1. SimpleGEOを用いて体系を作成する 必ずVoid(空気)の部分も定義すること。詳細はSimpleGEOのマニュアル参照 2. SimpleGEOの体系をPHITS形式で出力(File → Export → PHITS) [cell] と [surface] セクションのみ出力される 3. [cell]と[surface]セクションを除いたPHITS入力ファイルを作成する ‘infl:’ コマンドを使って,手順2で作成したExportファイルをインクルードする 4. 作成した入力ファイルを使ってPHITSを実行する 5. PHITSのmesh=xyzを使ったタリーの結果をSimpleGEOで可視化する SimpleGEOでプラグインDaVis3Dを読み込む(Macros → Load Plugins → DaVis3D) xyz-meshタリー出力を選択して,可視化する SimpleGEO 27 SimpleGEOでの体系変更 doll.pht [Cell] c Body 00001 26 -1 -1 c Eyes 00002 11 -7.87 -6 : -3 c Head 00003 6 -1.9 -2 #2 c Void 00004 0 -4 +1 #2 #3 +7 +8 c Outervoid 00005 -1 -5 +4 c leg1 00006 26 -1 -7 c leg2 00007 26 -1 -8 [Surface] c Body 1 RCC 0.00 0.00 0.00 0.00 0.00 10.00 5.00 c Headball 2 SPH 0.00 0.00 15.00 5.00 c LeftEye 3 SPH -3.00 4.00 16.00 1.00 c OuterSphere 4 SPH 0.00 0.00 0.00 100.00 c Outmostsphere 5 SPH 0.00 0.00 0.00 100.00 c RightEye 6 SPH 3.00 4.00 16.00 1.00 c leg1 7 RCC -2.50 0.00 -10.00 0.00 0.00 10.00 2.00 c leg2 8 RCC 2.50 0.00 -10.00 0.00 0.00 10.00 2.00 Export to PHITS SimpleGEO 28 PHITS出力の3次元可視化 SimpleGEO.inp [ T - Deposit ] title = [t-deposit] in xyz mesh mesh = xyz # mesh type is xyz scoring mesh x-type = 2 # x-mesh is linear given by xmin, xmax and nx xmin = -5.000000 # minimum value of x-mesh points xmax = 5.000000 # maximum value of x-mesh points nx = 20 # number of x-mesh points y-type = 2 # y-mesh is linear given by ymin, ymax and ny ymin = -5.000000 # minimum value of y-mesh points ymax = 5.000000 # maximum value of y-mesh points ny = 20 # number of y-mesh points z-type = 2 # z-mesh is linear given by zmin, zmax and nz zmin = -10.00000 0.000000 # minimum value of z-mesh points zmax = 20.00000 # maximum value of z-mesh points nz = 40 # number of z-mesh points Execute タリー領域の拡張 SimpleGEO 1. ‘Macros -> Load Plugins -> DaVis3D’を選択 2. ‘DaVis3D‘ボタンを押す 3. ‘deposity-xy.out’を選択し,‘Load data’を押す SimpleGEO 29 実習内容 • 奨励設定 • ParticleTherapy • H10mupliplier • 便利なツール • 粒子飛跡のアニメーション化 • SimpleGEO • まとめと演習問題 Contents 30 まとめ • PHITSの入力ファイルを全て自分で作るのは大変 なので,奨励設定から近い例題を選んで,それを 編集して入力ファイルを作成する • 追加してほしい例題・ツールなどがありましたら, PHITS事務局までご連絡下さい 1GeV陽子をPHITS形状の水ファントムに入射したときの吸収線量分布 http://phits.jaea.go.jp 31 演習問題 1. 250MeV/uの11Bビームを水ファントムに入射したときの吸収線量の深さ分 布を,様々な半径方向に対して計算する 2. 計算した吸収線量の深さ分布を,寄与する粒子別(中性子,陽子,He, Li, Be, B)に出力する 3. ファントムを2つの領域に分割し,片方をアルミ製 (2.7 g/cm3) にする 4. 試行回数を増やす,もしくは接続計算して,統計誤差を小さくする ヒント • • • • • • 奨励設定「ParticleTherapy」にある1つ目の[t-deposit]タリーを使う [t-deposit]タリーの半径方向に対するメッシュ数(nr)を増やす 計算時間を短くするため,不要なタリーを「off」コマンドを用いてコメントアウト [source]セクションにて線源を変更 [t-deposit]タリーの粒子(part)を変更する 新しい物質,サーフェス,セルを定義して,アルミファントムを加える Summary 32 演習問題回答の例 r < 1 cm 1 cm < r < 2 cm 半径1cm以内及び1 cmから2 cmの範囲内における吸収線量の深さ分布 考えてみよう • ブラッグピークより後方では,どのような粒子が線量に寄与しているか? • なぜ深さ5cmのところで,吸収線量が急激に大きくなるのか? • なぜこの計算で中性子の寄与はまったくないのか? Summary 33
© Copyright 2025 ExpyDoc