.. _dump-def: ************************************************** dumpファイルの処理 ************************************************** **[t-cross]**、**[t-time]**、**[t-product]** タリーで、粒子の情報をファイルにダンプすることができます。 このダンプファイルを線源として、新たな継続計算を行うこともできます。詳細は ``lecture/advanced/sourceB`` を参照してください。 また、ダンプファイルの情報を処理することにより、既存のタリーにはない物理量の集計を取ることもできます。 そのためには、ユーザーがダンプファイルを読み込んで処理するプログラムを書く必要があります。 そのプログラムの雛形として、バイナリーダンプファイルをアスキーへ、アスキーダンプファイルをバイナリーへ変換するプログラム ``dump-a.f`` が添付されています。 また、このプログラムを使えば、1 つのダンプファイルを複数に分割したり、複数のファイルを 1 つに統合したりすることもできます。 MPI 並列計算の場合、dump ファイルを並列数と一致するように分割する必要があるため、dump ファイルを作成する計算と線源として使用する計算で並列数が異なる際に有用です。以下、その使用方法を示します。 プログラムは、実行ファイル ``dump-a_win.exe``、``dump-a_mac.exe``、または ``dump-a_lin.exe`` をダブルクリック、もしくはターミナルから実行することで起動します。 起動すると、次のメッセージが表示されます。 .. code-block:: text ** input the file name of input dump file ** blank for direct input from console このとき、インプットファイル名を入力して Enter キーを押します。 コンソールから直接パラメータを指定したい場合は、何も入力せずに Enter キーを押してください。 インプットファイルには、以下の情報が必要です。括弧内はプログラム中のパラメータ名です。 - 1 行目 (**iasb**): 入力 dump ファイルのフォーマット。**0** はバイナリ、**1** はアスキーです。 - 2 行目 (**ipur**): 利用目的。**0** はフォーマット変換、**1** は分割/統合、**2** はユーザー定義プログラムです。 - 3 行目 (**chin**): 入力 dump ファイル名です。 - 4 行目 (**isdmp(0)**): 各粒子に対する情報数です。次の行で入力する ID の数に対応します。 - 5 行目 (**isdmp(1-isdmp(0))**): dump データの ID 番号です。dump データ ID の一覧は、関連する dump ID 表を参照してください。 - 6 行目 (**chot**): 出力 dump ファイル名です。 - 7 行目 (**irec**): 読み込む粒子数です。**0** の場合は全て読み込みます。 - 8 行目 (**ninp**): 入力 dump ファイルの分割数です。**ipur=1** の時のみ必要で、分割されていない場合は **0** を入力します。 - 9 行目 (**nout**): 出力 dump ファイルの分割数です。**ipur=1** の時のみ必要で、分割しない場合は **0** を入力します。 フォーマット変換用の ``dump-convert.inp`` と、ファイル分割/統合用の ``dump-divcom.inp`` のサンプル入力ファイルが ``phits/utility/dump-a`` フォルダにあります。 なお、ファイルを分割する際、同じヒストリーによって作られた粒子の情報は同じファイルに出力されます。 これは、生成された 2 次粒子の相関を残すためです。