PHITS

PHITS
Multi-Purpose Particle and Heavy Ion Transport code System
治療応用実習(V)
X線のダンプデータを用いた2段階計算
2014年5月改訂
title
1
本実習の目標
10MeV電子を線源とする1段階目の計算で発生
したX線をダンプデータとして蓄え、これを線源と
する2段階目の計算を実行し、X線を用いたシミュ
レーションが効率よく行えるようになる
ダンプデータとして蓄えたX線を水ファントム
の左右から照射して求めた吸収線量分布
Purpose
2
実習内容
1.
2.
3.
4.
体系の確認
X線のダンプデータの作成
ダンプデータを線源とした輸送計算
X線の多門照射
A) [transform]による照射方向の変更
B) 複数のタリー結果の足しあわせ
Table of contents
3
DumpDataSourceXray.inp
Water
phantom
初期設定の体系
30 cm
30 cm
X-ray
(photon)
Electron
10 MeV
約50 cm
10 cm
0.1+1.0 cm
6 cm
Movable collimator
Flattening filter
x軸
6 cm
10 cm
4 cm
1 cm
W + Cu target
1 cm
Primary collimator
6 cm
y軸
5 cm
Input file
1辺10 cmの立方体×4
4
体系の確認
Icntl=8として、このインプットファイルで構築している
3次元体系を描画機能を用いて把握しましょう。
track_xz.eps
Geometry
5
実習内容
1.
2.
3.
4.
体系の確認
X線のダンプデータの作成
ダンプデータを線源とした輸送計算
X線の多門照射
A) [transform]による照射方向の変更
B) 複数のタリー結果の足しあわせ
Table of contents
6
課題1
フラットニングフィルターの領域に入射する
光子をダンプデータとして蓄えてみましょう
(icntl=0として実行)
•
•
•
フラットニングフィルターの領域をouter regionとする
dumpパラメーターを加えた[t-cross]セクションを有効に
する(offをはずす)
フラットニングフィルターの領域に入射する(セル番号
98から8に移動する)光子のエネルギー分布をタリーで
きる[t-cross]セクションを有効にする(offをはずす)
Electron
10 MeV
X-ray
(photon)
Dump data
Dump領域
7
課題1の答え合わせ
フラットニングフィルターの領域に入射する
光子をダンプデータとして蓄えてみましょう
(icntl=0として実行)
[Cell]
・・・・・・
6
5 -17.0 -33
7
5 -17.0 -34
$8
6 -8.94 -35
8
-1 -35
消す
Dump dataは、
cross_photon_dmp.out
[ 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
Dump data
消す
[ 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
8
エネルギースペクトル
得られたダンプデータが線源として十分かどうかを
確認しましょう
cross_eng.eps
分布は隙間もなく線源として十分(相対誤差は10%程度)
Dump data
9
もし統計量が十分でないと感じたら
Istdevパラメーターを利用して、再開始計算を
実行しましょう。
[Parameters]
・・・・・・
・・・・・・
istdev = -2
ただし、次の点に注意してください
•
2段階目の計算ではistdevをコメントアウトする
•
大規模なダンプデータが作成される
cross_eng.eps
統計量を5倍
Dump data
10
実習内容
1.
2.
3.
4.
体系の確認
X線のダンプデータの作成
ダンプデータを線源とした輸送計算
X線の多門照射
A) [transform]による照射方向の変更
B) 複数のタリー結果の足しあわせ
Table of contents
11
課題2
ダンプデータとして蓄えた光子を線源として
2段階目の輸送計算を実行してみましょう
•
•
•
•
Dump領域
フラットニングフィルターの領域を元に戻す
dumpパラメーターを加えた[t-cross]セクションを無効に
する(offを書き加える)
dump dataを線源とする[source]セクションを設定する
(規格化定数はcross_photon.outより読み取る)
吸収線量の空間分布をタリーできる[t-deposit]セクショ
ンを有効にする(offをはずす)
X-ray
(photon)
Dump data
dumpデータを用いた[source]
セクションの入力形式
[Source]
totfact = ***
s-type = 17
file = ******_dmp.out
dump = -9
1 2 3 4 5 6 7 8 9
12
課題2の答え合わせ
ダンプデータとして蓄えた光子を線源として
2段階目の輸送計算を実行してみましょう
[ S o u r c e ] off
s-type = 1
proj = electron
・・・・・・
・・・・・・
[Source]
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
[Cell]
・・・・・・
6
5 -17.0 -33
7
5 -17.0 -34
8
6 -8.94 -35
$8
-1 -35
Dump data
13
課題3
コリメーターの間隔を変えて、水ファントム表面に
おいて10cm×10cm程度の照射野が作成される
ようにしましょう
X-ray
(photon)
Dump data
10 cm
• 変数c1の値を調整する
• track_xz.epsとtrack_xy.epsを見て確認する
10 cm
14
課題3の答え合わせ
コリメーターの間隔を変えて、水ファントム表面に
おいて10cm×10cm程度の照射野が作成される
ようにしましょう
[Surfac
・・・・・・
set:c1[1.0]
31
rpp
32
rpp
33
rpp
34
rpp
35
trc
e]
-10-c1 -c1
-5 5 -100+17.1 -100+27.1
c1
10+c1 -5 5 -100+17.1 -100+27.1
-5 5
-10-c1 -c1 -100+32.1 -100+42.1
-5 5
c1 10+c1
-100+32.1 -100+42.1
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
実習内容
1.
2.
3.
4.
体系の確認
X線のダンプデータの作成
ダンプデータを線源とした輸送計算
X線の多門照射
A) [transform]による照射方向の変更
B) 複数のタリー結果の足しあわせ
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)
Z軸, Y軸, X軸の周りに
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)
平行移動のZ,Y,X成分
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)
各セクションにtrcl=600を
cos(c82/180*pi)*cos(c83/180*pi)
加えることで機能する
1
[transform]
18
課題4
[transform]を使ってX線の線源部分を回転させ、水
ファントムの反対側から照射してみましょう。
•
•
•
ダンプデータを用いた[source]セク
ションにtrcl=600を加える
セル番号4,5,6,7,8にtrcl=600を加える
Y軸周りに180度回転させる
• 回転後の線源部分が含まれるよう
にtrack_xz.epsとdeposit_xz.epsの
タリー領域を拡大する
[Source]
・・・・・・
dump = -9
1 2 3 4 5 6 7 8 9
trcl = ***
[Cell]
・・・・・・
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線の線源部分を回転させ、水
ファントムの反対側から照射してみましょう。
[Source]
・・・・・・
dump = -9
1 2 3 4 5 6 7 8 9
trcl = 600
[T-Track]
・・・・・・
z-type = 2
zmin = -110.0000
zmax = 110.0000
nz = 220
・・・・・・
file = track_xz.out
・・・・・・
[Cell]
・・・・・・
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]
[ T - Deposit ]
・・・・・・
z-type = 2
zmin = -110.0000
zmax = 110.0000
nz = 220
・・・・・・
20
照射方向を変更した場合
track_xz.eps(2ページ目)
deposit_xz.eps
水ファントムに対して、反対側からの照射を行った
[transform]
21
実習内容
1.
2.
3.
4.
体系の確認
X線のダンプデータの作成
ダンプデータを線源とした輸送計算
X線の多門照射
A) [transform]による照射方向の変更
B) 複数のタリー結果の足しあわせ
Table of contents
22
タリー結果の足しあわせ
外部プログラムsumtallyを用いて、照射角度を変えて得られた
複数のタリー結果を足し合わせることが可能。
+
=
Sum of tally results
23
Sumtallyの使用方法
•
•
•
\lecture\therapy\programにあるsumtallyフォルダをコピーする
sumtallyフォルダの中にresult1, result2といった複数のフォルダを作成し、照
射角度を変えたインプットをコピーしてPHITSを実行
sumtallyの基本情報ファイル(sumtally.inp)を作成する
足し合わせた結果の出力ファイル名
“deposit_xz_sum.out”
1.5
2
1.0
"result1/deposit_xz.out"
1.0
"result2/deposit_xz.out"
•
全体の規格化定数
足し合わせるタリー結果の数
足し合わせる際のそれぞれの
ウエイト値(重み付け)とタリーファイル名
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が作成される
Sum of tally results
24
Sumtallyの計算内容
足しあわせた結果
相対誤差
Sum of tally results
25
課題5
2つの方向からX線を水ファントムに照射した場合
の吸収線量を求めてみましょう
• 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線を水ファントムに照射した場合
の吸収線量を求めてみましょう
\result1\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)
・・・・・・
\result2\DumpDataSourceXray.inp
[ 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線をダンプデータとして蓄えた
• X線のダンプデータを線源とする2段階目の計算を
行い、照射野の調整を行った
• [transform]を用いたX線源の回転を行い、任意の
方向からの照射が可能となった
• Sumtallyプログラムを用いて、複数方向から照射
した場合の結果を得られるようになった
Summary
29