Replica同士のboundary上で、stepが隣り合ったReplica同士を行き来してしまい、Stepが進まなくなるbugについて、4.3.2でbug
fixが行われたとの開発者側からのアナウンスがあった。(ReplicaNavigationのDistanceToOutPhi関数の変更)
しかし、残念ながら我々の場合、この変更によって問題は解決せず、加えてその変更後のlogicがおかしいと思われるため、この変更をもとに戻すpatchを作った。
logicがおかしいと思われる理由は、下図の通り。
4.3.2のG4ReplicaNavigationのDistanceToOutPhi関数は、次の場合を想定して書かれていると思われる。
問題の場所は、localpointが図のA点のように、S点側のboundaryよりわずか外側にあるときである。本来は扇形の中にいるというのが条件であるから、この場合はboundaryまでの距離を0とし、すみやかにその扇形を出たとみなすべきであると思われる。
4.3.2の変更では、ここでcompEの判定を行っており、compEが正ならboundaryまでの距離に無限大を返すが、上図からSのboundaryから外に出ていく場合にcompEが正になる(扇の中に入ってきてしまう)場合があることが明らかであり、この条件判定は間違っていると思われる。
この場所でのEのboundaryに対する判定は必要ないと考え、変更を元に戻した。