Subject | : TrackParticles[]拡張について |
Date | : 2010/07/30(Fri) 14:50:38 |
Contributor | : Akio Morita |
以下の拡張機能を amorita branchで実験中です o LOSSMAP拡張(Revision 3150以降) LOSSMAPフラグがONの際に、粒子分布の第8要素にParticle Lost Position情報を出力する * 拡張された粒子分布は以下の通り beam := {{x1,...}, {px1,...}, {y1,...}, {py1,...}, {z1,...}, {dp1,...}, {flg1,...} ,{lost1,...}} lost#: #-th粒子のLost Position情報 1 =< lost# =< LINE["LENGTH"]: TrackParticles[]内で POSITION lost#で失われた -1 >= lost# >= -LINE["LENGTH"]: TrackParticles[]に渡された時点で、POSITION -lost#で失われていた 0: 消失位置不明 or 生存中(flg#に依存) * TrackParticles[]へ与えられた粒子分布が第8要素を含むとき、過去のParticle Lost Position情報を継承する o Multi-Turn拡張(Revision 3153以降) 第4引数を拡張し、TrackParticles[]内でMulti-Turn Trackingを行う * 新しい引数プロトタイプは以下の通り {dst1_Real, beam1_List} = TrackParticles[{src:(_Real_String), beam_List}, dst:(_Real|_String):"$$$", tBegin_Real:1, tEnd_Real:tBegin] tEnd > tBegin時に、Trackingは、tBegin-th turnの `src'から開始され、tEnd-th turnの `dst'で終了する。 turn numberは `src'通過時に加算される。 Multi-Turn拡張に関しては直感的な拡張になっていますが、LOSSMAP拡張に関しては * フラグを新設すべきか否か - TrackParticles[]へ option引数で指示する - TrackParticles[]へ渡す粒子分布のフォーマットの違いで暗黙のうちに指示する * 新設したフラグの名称 * 出力形式 - PHOTONSフラグのように、グローバル変数経由で出力する * ExternalMap[]のようなに、粒子消失時にコールバックを発生させる 等々、設計上の選択肢がありえますので、実際のユースケースを前提とした提案を募集します