計算効率を上げるためのvariance reduction(粒子のウェイト)の利用

Slides:



Advertisements
Similar presentations
P HI T S 陽子ビームで雪だるまを溶かそう Multi-Purpose Particle and Heavy Ion Transport code System title 年 3 月改訂.
Advertisements

宇宙線ミューオンの測定 久野研究室 4回生 卒業研究 荒木 慎也 宮本 紀之 室井 章. 目次 実験内容 測定方法・結果 ・検出装置とセットアップ 解析 ・バックグラウンド除去 ・検出効率 ・立体角 ・文献 値との比較 まとめ.
P HI T S α 線, β 線, γ 線,中性子線を止めるに は? Multi-Purpose Particle and Heavy Ion Transport code System title 年 5 月改訂.
P HI T S PSFC4PHITS の使い方 Multi-Purpose Particle and Heavy Ion Transport code System Title 年 2 月改訂.
●母集団と標本 母集団 標本 母数 母平均、母分散 無作為抽出 標本データの分析(記述統計学) 母集団における状態の推測(推測統計学)
PHITS 講習会 基礎実習(III): 計算条件の設定
Multi-Purpose Particle and Heavy Ion Transport code System
Multi-Purpose Particle and Heavy Ion Transport code System
PHITS講習会 基礎実習(II): Tally(タリー)の定義
平成20年度 核融合科学研究所共同研究 研究会 「負イオン生成および負イオンビーム加速とその応用」 プロセスプラズマのPIC計算のモデリング
強度変調回転放射線治療(VMAT)の シミュレーション
Multi-Purpose Particle and Heavy Ion Transport code System
Multi-Purpose Particle and Heavy Ion Transport code System
Multi-Purpose Particle and Heavy Ion Transport code System
物理化学(メニュー) 0-1. 有効数字 0-2. 物理量と単位 0-3. 原子と原子量 0-4. 元素の周期表 0-5.
Multi-Purpose Particle and Heavy Ion Transport code System
W e l c o m ! いい天気♪ W e l c o m ! 腹減った・・・ 暑い~ 夏だね Hey~!! 暇だ。 急げ~!!
PHITSによるX線治療シミュレーション 基本操作復習編
1次陽子ビームのエネルギーが ニュートリノ・フラックスおよび機器に 与える影響について
ParaViewを用いたPHITS 計算結果の3次元表示
Determination of the number of light neutrino species
相対論的重イオン衝突実験PHENIX におけるシミュレーションによる charm粒子測定の可能性を探る
放射線(エックス線、γ線)とは? 高エネルギー加速器研究機構 平山 英夫.
埼玉大学大学院理工学研究科 物理機能系専攻 物理学コース 06MP111 吉竹 利織
PHITS 講習会 基礎実習(III): 計算条件の設定
Multi-Purpose Particle and Heavy Ion Transport code System
α線,β線,γ線,中性子線を止めるには?
京都大学大学院医学研究科 画像応用治療学・放射線腫瘍学 石原 佳知
PHENIX実験における 陽子・陽子衝突トリガーカウンターのための Photon Conversion Rejector の設計
HLab meeting 6/03/08 K. Shirotori.
計算効率を上げるためのvariance reduction(粒子のウェイト)の利用 A
Multi-Purpose Particle and Heavy Ion Transport code System
For the PHENIX collaboration
応用実習用資料 Environmental radioactivity
鉄核媒質中の閾値近傍における 中性π中間子生成実験
Multi-Purpose Particle and Heavy Ion Transport code System
MeV internal meeting Oct. 2, 2015
計算効率を上げるためのvariance reduction(粒子のウェイト)の利用 A
論文講読 Measurement of Neutrino Oscillations with the MINOS Detectors in the NuMI Beam 2009/11/17 Zenmei Suzuki.
PHITS 講習会 基礎実習(III): 計算条件の設定
応用実習用資料 Neutron target
蓄積イオンビームのトラップからの引き出し
IAEA phase space fileを用いた X線治療シミュレーション
FPCCDバーテックス検出器における ペアバックグラウンドの評価 4年生発表 2010/03/10 素粒子実験グループ 釜井 大輔.
目的 イオントラップの特徴 イオントラップの改善と改良 イオンビームの蓄積とトラップ性能の評価
研究背景 電荷移行反応とは・・・ 核融合(重水素 + 三重水素→ヘリウム原子核+中性子) ・・・しかし、
アトラス実験で期待される物理 (具体例編) ① ② ③ ④ ① ② ③ 発見か? 実験の初日に確認 確認! 2011年5月9日 ④ 未発見
理研RIBFにおける 中性子過剰Ne同位体の核半径に関する研究
Multi-Purpose Particle and Heavy Ion Transport code System
Multi-Purpose Particle and Heavy Ion Transport code System
治療用フィルムによる線量分布測定の 基礎的検討Ⅱ
Multi-Purpose Particle and Heavy Ion Transport code System
K核に関連した動機による K中間子ヘリウム原子X線分光実験の現状 理化学研究所 板橋 健太 (KEK-PS E570 実験グループ)
Charmonium Production in Pb-Pb Interactions at 158 GeV/c per Nucleon
Multi-Purpose Particle and Heavy Ion Transport code System
B物理ゼミ Particle Detectors:Claus Grupen, Boris Shwartz (Particle id
黒澤君計算との違い 岸本 祐二.
電子後方散乱の モンテカルロ計算と実験の比較 総研大 桐原 陽一 KEK 波戸 芳仁、平山 英夫、岩瀬 広.
Multi-Purpose Particle and Heavy Ion Transport code System
Multi-Purpose Particle and Heavy Ion Transport code System
SciFi を用いたΣ+p散乱実験での (ほろ苦い)思い出
天体核実験用の窓無しガス標的と ガス循環系の開発
卒業論文発表 中性子ハロー核14Beの分解反応 物理学科4年 中村研究室所属   小原雅子.
α線,β線,γ線,中性子線を止めるには?
ガスの低圧化による ダークマター検出器の高感度化
Multi-Purpose Particle and Heavy Ion Transport code System
α decay of nucleus and Gamow penetration factor ~原子核のα崩壊とGamowの透過因子~
計算効率を上げるためのvariance reduction(粒子のウェイト)の利用 B
ILC衝突点ビームモニターのための 読み出し回路の開発
荷電粒子の物質中でのエネルギー損失と飛程
Presentation transcript:

計算効率を上げるためのvariance reduction(粒子のウェイト)の利用 PHITS Multi-Purpose Particle and Heavy Ion Transport code System 計算効率を上げるためのvariance reduction(粒子のウェイト)の利用 PHITS講習会 入門実習 2016年5月改訂 title

実習内容 1.はじめに 2.中性子深層透過計算 [importance]  Geometry splitting and Russian Roulette (セルインポータンス法) [weight window]  Weight windows (ウェイト・ウインドウ法) 3.薄膜からの生成粒子計算 [forced collisions]  強制衝突法

中性子深層透過計算 厚い遮蔽体の中性子輸送を計算し、深さ毎の実効線量率分布を計算 まずはimp.inpを走らせて,計算時間を計ってみよう [ P a r a m e t e r s ] icntl = 0 maxcas = 1500 maxbch = 1 ... [ T - T r a c k ] (3つ目) mesh = xyz … z-txt = (uSv/h)/(source/sec) file = imp-dose-xz.out part = neutron epsout = 1 multiplier = all emax = 1000.0 mat mset1 all ( 1.0 -102 ) ヒストリ数は1,500 計算時間はphits.outの最後の方(total CPU time)に出力される 半径50cm、深さ180cmのコンクリート円柱 空気 コンクリート 14MeV 中性子 実効線量は,[t-track]で計算した中性子フルエンスに内蔵線量換算係数を乗じて導出 詳細はマニュアル(4.25[multiplier]&6.1[t-track])もしくはlecture\exercise1を参照

中性子深層透過計算 シングルコア(1.50GHz AMD)の計算 効率良く計算したい。 分散低減法 ウェイトの概念を利用 ヒストリー数 1,500 imp-dose-xz.eps total cpu time = 19.53 sec imp-dose-xz.eps ヒストリー数 270,000 total cpu time = 660.05 sec 効率良く計算したい。 分散低減法 ウェイトの概念を利用

モンテカルロ計算におけるWeightの概念 例:track length タリー ウェイト: モンテカルロ計算における粒子の重要度、通常の計算は1*。 ウェイトを操作して、統計上発生しにくいイベントを人為的に発生させる。 ただし,ウェイトを操作した場合,ヒストリー毎の頻度分布([t-deposit], output = depositなど)の計算ができなくなるので注意が必要。 *ただし、核データを使用した中性子輸送計算では、ウェイトが変化する

実習内容 1.はじめに 2.中性子深層透過計算 [importance]  Geometry splitting and Russian Roulette (セルインポータンス法) [weight window]  Weight windows (ウェイト・ウインドウ法) 3.薄膜からの生成粒子計算 [forced collision]  強制衝突法

中性子がセル1とセル2を横切る時、I2/I1を設定 セルインポータンス法 領域(セル)にインポータンスIを設定 中性子がセル1とセル2を横切る時、I2/I1を設定 I2/I1 > 1: Particle Split (粒子の分割) 例 I2/I1 が整数の場合  I2/I1 = 3: 3つの粒子にsplit(分割) I2/I1 が非整数の場合 I1=1 I2=3 I2/I1 = 2.75: 75%の確率で3つの粒子に分割 25%の確率で2つの粒子に分割 W=1/3 W=1/3 W=1/3 W=1 I1=1 I2=1/3 W=3 I2/I1 < 1: Russian Roulette (消滅か生存) 1/3の確率 W=1 消滅 2/3の確率

1ヒストリーのときの中性子飛跡を確認 imp-hist.inpを走らせて,中性子の飛跡を確認してみよう 空気 コンクリート (半径20cm, 5MeV 中性子 I10=1.0 I1=1.0 I2=1.0 標準では、インポータンスは全て1 imp-trajectory.eps

インポータンスを大きくしたときの中性子挙動を確認 [importance] part = neutron reg imp 10 1 1 2 2 4 imp-hist.inp ここで反応が起きた I10=1 I1=2 I2=4 この時点で既に2つに分かれている imp-trajectory.eps

インポータンスを小さくしたときの中性子挙動を確認 [importance] part = neutron reg imp 10 1 1 1/2 2 1/4 imp-hist.inp 1/2の確率で生存 1/2の確率で消滅 I10=1 I1=1/2 I2=1/4 imp-trajectory.eps

インポータンスを極端に大きくしたときの中性子挙動を確認 [importance] part = neutron reg imp 10 1 1 2 2 100 粒子が分割しすぎて計算時間が無駄になってしまう (統計はあまり良くならない) imp-hist.inp I10=1 I1=2 I2=100 imp-trajectory.eps セル間のインポータンスの比は最大2~3程度が良い “A Sample Problem for Variance Reduction in MCNP” LA-10363-MS DE86 004380

インポータンスを使用した中性子深層透過計算例 Ii+1/Ii = 2.5 と設定 imp.inpの [importance]セクションを有効にして、実行してみよう [importance] part = neutron reg imp 1 2.5**0 2 2.5**1 3 2.5**2 4 2.5**3 5 2.5**4 6 2.5**5 7 2.5**6 8 2.5**7 9 2.5**8 10 2.5**9 11 2.5**10 12 2.5**11 半径50cm、深さ180cmのコンクリート円柱 セルの厚さは15cm 半径1cmの14MeV中性子をz=0からz軸に沿って入射 14MeV 中性子

インポータンスを使用した中性子深層透過計算例 1.50GHz, single ヒストリー数 1,500 [importance] 未使用 total cpu time = 19.53 sec 1 Relative error Dose imp-dose-xz.eps imp-dose-xz_err.eps [importance] 使用 total cpu time = 50.49 sec 1 相対誤差の確認重要(赤1.0、黄 約0.1、緑 約0.01 )

インポータンスを使用した中性子深層透過計算例 元データ:imp-dose-reg.out 領域(15cm厚)毎の線量変化 14

インポータンス利用の注意点 セル間の大きなインポータンスの比は良くない。多くの粒子分割を一度に引き起こす。 良い例 粒子 1 2 4 8 16 32 悪い例 粒子 1 1 8 8 8 32 セル間のインポータンスの比は最大2~3程度が良い 参考文献 “A Sample Problem for Variance Reduction in MCNP” LA-10363-MS DE86 004380

先ほどの結果と比較して相対誤差が非常に大きい インポータンスの誤った使用例 悪い例: Cell 5と6の間に急激なImportanceギャップ 大きなインポータンスのギャップを作って実行してみよう。 imp-dose-xz.eps [[importance] part = neutron reg imp 1 2.5**0 2 2.5**0 3 2.5**0 4 2.5**0 5 2.5**0 6 2.5**5 7 2.5**6 8 2.5**7 9 2.5**8 10 2.5**9 11 2.5**10 12 2.5**11 imp-dose-xz_err.eps 先ほどの結果と比較して相対誤差が非常に大きい

実習内容 1.はじめに 2.中性子深層透過計算 [importance]  Geometry splitting and Russian Roulette (セルインポータンス法) [weight window]  Weight windows (ウエイト・ウインドウ法) 3.薄膜からの生成粒子計算 [forced collisions]  強制衝突法

セルインポータンス法とウェイトウィンドウ法の違い セルインポータンス法は,領域ごとにウェイトが取りえる値を設定 ウェイトウィンドウ法は,領域かつエネルギー群ごとに粒子が取りえるウェイトの幅(ウィンドウ)を設定 重要となるエネルギー領域(例えば高速中性子など)に, より焦点を絞ったシミュレーションが可能 セルインポータンス法 ウェイトウィンドウ法 WU=2.5 WU=2.5 I1=1 I2=3 WU=1.25 W1=1 W=1 W1=1 ウェイト ウェイト ウェイト WU=0.83 WL=0.5 WL=0.5 W2=1/3 WL=0.25 W2=0.5 領域1 エネルギー群1 領域2 エネルギー群2 領域1 領域2 WL=0.17 粒子数 1  → I2/I1=3 粒子数 1 → 1 粒子数 1→ W1/W2=2

ウェイトウィンドウ法に関連するパラメータ wupn: ウェイトウィンドウの上限値の下限値の比(D=5.0) mxspln: 1回の粒子分割で分割する粒子の最大数(D=5.0) mwhere: ウェイトウィンドウが考慮されるタイミング(D=0)         -1:核反応時,0:両方,1:領域横断時 詳細はマニュアル「4.2.4 時間カット,ウェイトカット,ウェイトウィンドウ」を参照

1ヒストリーのときの中性子挙動を確認 weight-hist.inpを実行してみよう 水 空気 (半径10cm, 深さ5cm×2) 5MeV weight-trajectory.eps

ウェイトウィンドウを設定した場合の中性子挙動を確認 weight-hist.inpの1つ目の[weight window]を有効にして実行してみよう weight-hist.inp [weight window] part = neutron reg ww1 1 0.25 2 0.25 ウェイトの下限値WLを[weight window]セクションで設定する 上限値は,自動的にその5倍に設定される(wupnパラメータ) 領域毎の指定のみ (エネルギー毎に分割しない) WU=5 x WL =1.25 W1=1 ウェイト WL=0.25 WL=0.25 領域1 領域2 weight-trajectory.eps 中性子のウェイトがウェイトの幅の中にあるので、粒子分割や粒子消滅は起きない

ウェイトウィンドウを下げたときの中性子挙動を確認 weight-hist.inp [weight window] part = neutron reg ww1 1 0.25 2 0.125 領域2のウェイトウインドウの下限値を下げて実行してみよう WU=1.25 W1=1 WU=0.625 ウェイト WL=0.25 WL=0.125 領域1 領域2 粒子分割 weight-trajectory.eps 領域2で粒子ウェイトが領域ウェイトの上限値を上回るので2つに分裂した

ウェイトウィンドウを極端に下げたときの中性子挙動を確認 weight-hist.inp [weight window] part = neutron reg ww1 1 0.25 2 0.005 領域2のウェイトウインドウの下限値を極端に下げて実行してみよう WU=1.25 W1=1 ウェイト WL=0.25 WU=0.025 WL=0.005 領域1 領域2 weight-trajectory.eps 40個になるまで粒子分割(ただし1度に分割するのは最大5粒子まで) セル間のウェイトウィンドウの比も最大2~3程度が良い

エネルギー群毎にウェイトウィンドウを設定 weight-hist.inp [weight window] part = neutron eng = 2 0.01 1.0e5 reg ww1 ww2 1 0.25 0.25 2 0.125 0.125 1つ目の[weight window]を無効にして、 2つ目の[weight window]を有効にしよう 各エネルギー群の最大値 エネルギー毎に異なるウェイトウィンドウをかける ただし,今回は,別々に設定するが値は同じ WU=1.25 WU=1.25 W1=1 W1=1 WU=0.625 WU=0.625 ウェイト ウェイト WL=0.25 WL=0.25 WL=0.125 WL=0.125 領域1 領域2 領域1 領域2 粒子分割 粒子分割 E < 0.01 MeV 0.01 MeV < E < 105MeV weight-trajectory.eps 領域2で粒子ウェイトが領域ウェイトの上限値を上回るので2つに分裂した(2ページ前と同じ)

低エネルギー中性子のウェイトウィンドウを上げる weight-hist.inp [weight window] part = neutron eng = 2 0.01 1.0e5 reg ww1 ww2 1 0.25*10 0.25 2 0.125*10 0.125 0.01MeV以下の中性子のウェイトウインドウの下限値のみ10倍に上げてみよう WU=12.5 WU=6.25 WU=1.25 WL=2.5 低エネルギー中性子が消滅 WL=1.25 W1=1 W1=1 WU=0.625 ウェイト ウェイト WL=0.25 WL=0.125 領域1 領域2 領域1 領域2 粒子消滅 粒子分割 E < 0.01 MeV 0.01 MeV < E < 105MeV weight-trajectory.eps 低エネルギー中性子の発生を抑え,高エネルギー中性子を中心に解析する 浅い場所での統計が下がり,より深い場所での統計が溜まりやすくなる

ウェイトウィンドウを使用した中性子深層透過計算例 weight.inpを走らせて,計算時間を確認してみよう weight.inp 体系,ヒストリー数などはimp.inpと同じ [weight window] set: c10[1.0] part = neutron eng = 2 1.0e-3 1e5 reg ww1 ww2 1 c10*2.5**(-1) 2.5**(-1) 2 c10*2.5**(-2) 2.5**(-2) 3 c10*2.5**(-3) 2.5**(-3) ・・・ 半径50cm、深さ1.8mの コンクリート円柱 14MeV 中性子 セルの厚さは15cm total cpu time = 25.89 sec 領域毎にウェイトウィンドウを1/2.5に下げて粒子分割する 全エネルギーに同じウェイトウィンドウをかける(c10=1.0のため) weight-dose-xz.eps weight-dose-xz_err.eps

ウェイトウィンドウを使用した中性子深層透過計算例 weight.inpの低エネルギー中性子のウェイトウィンドウを10倍にして実行し,計算時間を計ってみよう weight.inp [weight window] set: c10[10.0] part = neutron eng = 2 1.0e-3 1e5 reg ww1 ww2 1 c10*2.5**(-1) 2.5**(-1) 2 c10*2.5**(-2) 2.5**(-2) 3 c10*2.5**(-3) 2.5**(-3) ・・・ 低エネルギー中性子は,生成された瞬間にウェイトウィンドウ幅から外れるので,ロシアンルーレットにかけられ,ほとんどが殺されてしまうため,計算時間が短縮される ただし,低エネルギー中性子は飛程が短いので,低エネルギー中性子をカットしても深部での統計誤差はそれほど変わらない total cpu time = 25.89 -> 14.53 sec weight-dose-xz.eps weight-dose-xz_err.eps

計算時間の比較 total cpu time = 19.53 sec total cpu time = 50.49 sec 普通の計算 total cpu time = 19.53 sec [importance] 使用 total cpu time = 50.49 sec [weight window] 領域毎に設定 total cpu time = 25.89 sec [weight window] 領域・エネルギー毎に設定 total cpu time = 14.53 sec

コンクリート中の線量率減衰 通常計算の深い場所を除いて良く一致 90 cm 180 cm 通常計算の深い場所を除いて良く一致 エネルギー群で異なるウェイトウィンドウを設定すれば,より効率的な粒子輸送の計算が可能となる

実習内容 1.はじめに 2.中性子深層透過計算 [importance]  Geometry splitting and Russian Roulette (セルインポータンス法) [weight window]  Weight windows (ウェイト・ウインドウ法) 3.薄膜からの生成粒子計算 [forced collisions]  強制衝突法

強制衝突とは? 放射線を衝突の確率の低いターゲット(薄膜)に強制的に衝突させる。 応用例: 薄膜を用いた断面積測定実験を模擬するときに利用 10μm厚さSi 10μm厚さSi 100MeV陽子 強制衝突なし 陽子は薄膜をそのまま通過。 強制衝突あり 陽子は薄膜と必ず衝突。 応用例: 薄膜を用いた断面積測定実験を模擬するときに利用

薄膜を用いた断面積測定実験を模擬しよう force.inpを実行してみよう [t-product]: ターゲット内で生成するα粒子とSiの生成エネルギー分布 → 真の断面積 [t-cross]:検出器に入射したα粒子とSiのエネルギー分布 → 測定上の断面積 force.inp 強制衝突無し:殆どの入射粒子は衝突しない force.inpを実行してみよう product.eps maxcas = 5000 maxbch = 5 半径0.5cm, 10μm厚さSi cross.eps 100MeV陽子 真空 検出器

強制衝突法 薄膜から生成する粒子を解析するときに利用 二つに分割 非衝突粒子 非衝突のウェイト:Wi×exp(-σl) l:セルを横切る長さ 強制衝突領域 σ: 巨視的断面積 衝突位置は断面積に従って確率的に決定 強制衝突法はヒストリー分散を減らすが、ヒストリー当たりの計算時間が増える。 セルでは一つ以上の衝突が起こる。 fcl:強制衝突コントロールパラメータ  (通常 fcl = -1 を使用) fcl = -1:強制衝突による生成粒子は通常の衝突をさせる(ウェイトカットオフは考慮しない) fcl = 1:強制衝突による生成粒子は,ウェイトカットオフになるまで強制衝突させる

強制衝突させてみよう 強制衝突の設定を行おう force.inp ターゲット内での粒子生成時点の情報をタリー product.eps [Forced Collisions] off part = proton reg fcl 1 -1.0 offを削除して実行 強制衝突による生成粒子のウェイトが、ウェイトカットオフwc2を下回る。 ⇒ Russian Rouletteが働くため、粒子輸送されにくい。 track-xz.eps cross.eps α

強制衝突で発生させた2次粒子を輸送するには? 強制衝突で生成する粒子を輸送させるため、 ウェイトカットオフwc2を極力低く設定してみよう。 force.inp [parameters] ………. wc2(1) = 1.0E-12 # weight cutoff of proton wc2(2) = 1.0E-12 # weight cutoff of neutron wc2(14) = 1.0E-12 # weight cutoff of photon wc2(15) = 1.0E-12 # weight cutoff of deuteron wc2(16) = 1.0E-12 # weight cutoff of triton wc2(17) = 1.0E-12 # weight cutoff of 3He wc2(18) = 1.0E-12 # weight cutoff of Alpha wc2(19) = 1.0E-12 # weight cutoff of Nucleus product.eps cross.eps track-xz.eps α Si 多くの生成Siがターゲット内で止まるため,この実験からは断面積が正しく測定できない

まとめ 深層透過計算の場合は、importance法やweight window法が有効 隣り合うセル間のインポータンスやウェイトウィンドウ値の比は、大きすぎないようにすること。 ファクター2~3以下が望ましい。 ウェイトウィンドウを活用することで、さらに効率的な中性子輸送の計算が可能。 薄膜における生成粒子情報を計算するには、forced collisionsが有効