このセクションでは、PHITSの動作を決定するパラメータを指定します。書式は次の様なものです。
[ P a r a m e t e r s ] para1 = number | file.name para2 = number | file.name ...
パラメータの順番は自由、省略すれば、デフォルト値が読み込まれます。
以下に各々のパラメータの意味と値を説明します。(D= )は、デフォルト値です。
4.2.1 計算モード
表6:パラメータ1 パラメータ 値 説明
icntl (D=0) 基本動作オプション
= 0 normal PHITS計算
= 1 nuclear reaction計算、 未完成
= 3 input echoだけの書き出し
メモリー空間、ライブラリー、ファイルのチェック
= 5 no reaction, no ionization,全てをvoidにする。
geometry check,体積、面積計算に使う
= 6 ソースのチェック。[t-product]でソース粒子をタリーできます
= 7 [t-gshow]タリーの実行
= 8 xyzメッシュタリーのgshowオプションのあるものの幾何形状表示
= 9 [t-rshow]タリーの実行
= 10 regメッシュタリーのrshowオプションのあるものの幾何形状表示
= 11 [t-3dshow] 3次元幾何形状表示タリーの実行
= 12 dumpallファイルから読み込んで再計算。file(15)でファイルを指定
= 13 タリー結果の統合機能(Sumtally機能)の利用
= 14 体積自動計算機能の利用
= 15 [t-wwbg]タリーの実行
icntl=1のnuclear reaction計算は、開発が取り残されているため、現在、まだ工事中と考えてください。
icntl=12を指定すると、dumpall=1で計算した時にダンプしたデータを基に再計算します。輸送に関し ては、最初に計算した全ての情報を再現します。再計算の時には、最初に計算したインプットファイルが必 要になります。タリーを除いて同じものを使わないと矛盾が生じます。maxcas, maxbchは、ダンプファイ ルに指定されているものを使いますので変更できません。最初に計算したときと異なるタリーを入れて再 計算したいときなど有効です。ただし、dumpall=1で計算するときは、巨大なデータファイルが作成される ことがありますから注意してください。このdumpallオプションは、GGのときのみ有効です。dumpall=1 でダンプする情報は、4.2.22のところで解説します。
icntl=13を指定することにより、Sumtally機能を利用することができます。この機能の詳細は5.8をご 覧ください。
能の利用方法は7をご覧ください。
icntl=15を指定することで、[ww bias]のパラメータを自動生成する[t-wwbg]が機能します。この機 能の利用方法は6.16をご覧ください。
4.2.2 ヒストリー数、バンク配列の大きさ
表7:パラメータ2 パラメータ 値 説明
irskip (D=0) 乱数のコントロール
irskip>0 irskip回ヒストリーをスキップして計算を開始(デバッグ用) irskip<0 irskip回ヒストリーの乱数をスキップして計算を開始(手動並列用)
rseed (D=0.0) 初期乱数オプション
rseed<0 計算開始時間情報より初期乱数を設定 rseed=0 6647299061401.デフォルトの初期乱数 rseed>0 rseedを初期乱数とする
maxcas (D=10) 1バッチのヒストリー数。上限は2147483647。
maxbch (D=10) バッチ数。上限は2147483647。
maxbnk (D=10000) バンク配列の大きさ
timeout (D=-1.0) PHITS計算の打ち切り時間(sec)。
istdev (D=0) 新規/再開始計算及び統計誤差導出方法のコントロール。
=-2 再開始計算(ただし、過去のタリー結果が全くない場合は、istdev=2 として新規計算を開始。
=-1 再開始計算(ただし、過去のタリー結果が全くない場合は、istdev=1 として新規計算を開始。
=0 新規計算。統計誤差は、メモリ共有型並列の場合はバッチ分散を、
それ以外はヒストリー分散を自動的に選択します。
=1 新規計算。統計誤差は、各バッチ間の分散により導出。
=2 新規計算。統計誤差は、各ヒストリー間の分散より導出。
ireschk (D=0) 再開始計算時のタリーパラメータ一致性確認の有無。
=0 読み込むタリー出力の設定が現在のタリー設定と一致しているか確認 する。
=1 上記確認を行わない。極めて長いタリー設定をした場合、タリー出力 に全ての設定が書き込まれずに、新旧ファイル一致性の確認でエラー が出てしまう場合があります。その場合、ireschk=1とし、一致性を 確認しないモードで再開始計算を実行してください。
メモリ分散型並列計算では、バッチ単位で並列化しています。このため、入力のバッチ数maxbchがNPE−1 の整数倍となるように指定してください。ここで、NPEは並列計算で使用する実行PE(Processing Element) 数です。上記の−1は、並列計算のコントロールのために1PE使うためです。もし整数倍でないときは、
maxbchが整数倍になるように変更し、加えて全ヒストリー数が入力した数と同程度となるようにmaxcas
を自動で調整します。この自動調整が実行された場合は、出力のインプットエコーの最後にコメントが書き 出されます。
します。バッチ終了時のCPU時間がtimeoutを超えた場合に、そのバッチで計算を終了します。バッチの
途中でtimeoutを超えた場合は、そのバッチが終了するまで計算が継続します。メモリ分散型並列の場合
は、全てのCPU時間の和で判定します。ただし、ご使用の計算機によってはCPU時間が正しく取得でき ず、timeoutを適切に使用できない場合がありますのでご注意ください。
バージョン2.50より、タリー出力の統計誤差が正しく計算できるようになりました。また、統計が十分 でなかった場合などに対応するため、古い計算結果から次の初期乱数とタリー出力を読み込んで再開始計 算を行う機能を実装しました。
統計誤差計算は、各バッチ間のタリー量の分散より標準偏差を導出するバッチ分散モードと、各ヒスト リー間のタリー量の分散より標準偏差を導出するヒストリー分散モードがあります。どちらも、次式で標準 偏差σを計算し、その値とタリー量の平均値X¯の比を相対誤差として出力します。
σ=
vu
uu
uu
ut∑N
i=1
(xiwi/w)¯ 2−N ¯X2
N(N−1) (1)
ここでNは標本数(istdev=1のときは全バッチ数、istdev=2のときは全ヒストリー数)であり、xi,wiは 各標本のタリー量及びソースウェイト、w¯ はソースウェイトの平均値です。メモリ共有型並列計算の場合 は、原理的に各ヒストリーの分散を計算することが不可能ですので、バッチ分散モードのみ選択可能です。
バッチ分散の場合は、同じ全ヒストリー数でも、maxcasとmaxbchの組み合わせによって標準偏差が変化 しますのでご注意ください。基本的には、maxbchを大きくした方が計算の信頼性は高くなりますので、正 確に統計誤差を計算したい場合は、maxbchを少なくとも10以上としてください。ただし、PHITSは、各 バッチ終了時にいろいろな処理をしますので、maxbchを大きくしすぎると計算時間が長くなりますのでご 注意ください。一方、ヒストリー分散モードの場合は、標準偏差は全ヒストリー数のみに依存し、maxcasと
maxbchの組み合わせには依存しません。したがって、メモリ共有型並列を行わない場合は、ヒストリー分
散モードを選択することをお薦めします。しかしながら、xyzメッシュタリーを細かく設定する等、メモリ を多く使用するタリーを設定している場合には、ヒストリー分散モードでの計算時間が莫大となることがあ りますのでご注意ください。なお、各ヒストリーの分散を導出するタリー([t-deposit]タリーのoutput
= depositや[t-deposit2]など)の場合は、統計誤差として標準誤差を出力しており、istdevの値に関 係なく、寄与したヒストリー数の平方根から計算します。すなわち、寄与したヒストリー数がKの場合、そ の相対誤差は1/√
Kとなります。
相対誤差は、通常、タリー量の右側のr.errカラムに出力されます。ただし、axis = xy, rzなど2次 元プロットの場合は、各タリーで指定したfile名の拡張子の手前にerrと付けた別ファイルに出力します。
例えば、file=tally.outと指定した場合、相対誤差ファイルはtally err.outとなります。誤差ファイ ルの書式は通常のタリー出力と同じですので、ANGELで処理することにより誤差の2次元プロットを作成 することができます。
PHITSで評価しているのは標準偏差や標準誤差なので、必ずしも真値がこの範囲内に収まるわけではな
いのでご注意ください。平均値を中心として±1σの範囲は約68%の信頼区間を表しており、この範囲に約 68%の確率で計算結果が含まれることを意味します。また、核反応モデルに起因する系統的な不定性は含ま れていません。
istdev < 0とした場合は、再開始計算となります。その場合、統計誤差計算モードは、過去のタリー結
果を踏襲します。再開始計算は、各タリー別に行いますので、過去のインプットファイルに新たにタリーを 加えた再開始計算も可能です。再開始計算の流れは、以下のようになります。
(1) 各タリーのresfile(デフォルトはfileで指定した出力ファイル名と同じ)で指定したファイルの有 無をチェックする。
(2) ファイルが存在しない場合は、そのタリーは新規タリーとして扱う。全てのファイルが存在しない場
算を開始する。
(3) ファイルが存在する場合は、そのファイルから統計誤差計算モード(istdev)、これまでの全ウェイト
数(resc2)や全ヒストリー数(resc3)、バッチ当たりのヒストリー数(maxcas、バッチ分散モードの
み必要)、次の初期乱数シード(rijklst)、タリーパラメータ、結果及び相対誤差などを読み込む。
(4) 過去のタリーと入力ファイルで指定したタリーの一致性の確認する(一致しない場合はエラーメッセー ジを出力して実行停止。ただし、全てのパラメータをチェックするわけではないので注意)。
(5) 過去のタリーが複数ある場合、それらの間での統計誤差モードやmaxcas(バッチ分散モードのみ)の 一致性を確認する。一致した場合は、その値を再開始計算で利用する。一致しない場合は、エラーメッ セージを出力して実行停止する。
(6) 初期乱数シードを一番目に読み込んだ過去タリーのrijklstに変更。(rijklstが過去タリー間で異 なる場合は、警告を出力するが計算は可能)
(7) 再開始計算を実行し、その結果を過去のタリー結果に加えてfileで指定したファイルに出力する。
resfileを指定しない場合、出力ファイル(file)と過去タリーファイル(resfile)が同じであるた め、過去の結果に新しい結果を上書きして出力する。
再開始計算を行う際の注意点としては、[1]統計誤差計算モードの違うタリー同士で再開始計算をしないこ と、[2]バッチ分散の場合は必ずmaxcasを統一すること、[3]ジオメトリや入射粒子に関しては新旧ファイ ルの一致性を確認しないので、ユーザーの責任で必ず一致させること、などがあります。