SAD部屋 - Ticket-36 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! Lost Coordinateの精密化

:Priority:Normal
:Reporter:Akio Morita
:Status:New
:Assigned to:?
:Version:
:Milestone:?
:Created:2013-03-19

!! Description

現行コードでは、粒子のロス発生時には、パッキングが行なわれ失われた粒子は、以降の操作対象から外れる。

これ自身は、fork-waitモデル上での効率化のために行なわれているが、内部座標でロスが発生した場合、内部座標からの引き戻し変換が行なわれない、運動量(px,py,g)の内部表現と外部表現の変換の対象にならない等の問題が有る
(大域的な同期・排他制御を必要とするのでOpenMP等によるMulti Thread化の障害になる)

ロス発生時の座標情報を正確に取り扱うために、座標系変換等は、ロスした粒子にも行なわれるように改修すべきである。
実装としては、以下の2案があげられる。
* マークとスイープ処理に分割し、スイープ処理(パッキング)は全ての座標変換が完了した後に行なう
** スイープ処理が行なわれるまでは、マークビットを検査し粒子の時間発展を凍結する必要がある
** スイープ処理以外は、同期を必要としないので Threadベースの並列化と相性が良い
* 処理開始時の粒子数を覚えておき、引き戻し変換はロスした粒子を含めて処理する
** 内部座標が複数存在する場合や、処理を別コードへ移譲してる場合の管理が複雑化する

!! Attachement files
{{attach_map('Ticket-36')}}
{{attach_form('','')}}

!! Changelog

{{its_edit_ticket_form}}//{{its_edit_ticket_form}}