It is not clear which module a weight-window mesh feature should be added to. My initial thought is to add it to 1. the geometry module and to 2. the event module.
Geometry Module: We will have to now ask the ray-tracer to detect intersections with mesh elements in addition to cells. There could be a sub-package within the geometry package that allows us to detect mesh collision sites (with the associated distance to collision). Ideally, this sub-package will only use MOAB to calculate the collision sites and distance to collision. Either a new method will have to be added to the GeometryModuleInterface or "fireRay" method will have to be modified.
We will now conceivably have "ParticleEnteringMeshElementEvent" events, which our weight-window mesh variance reduction feature will handle by possibly splitting/rouletting/ignoring the particle depending on its weight. We could also make the weight-window variance reduction feature derive from the "ParticleCollidingInCellEvent" (or a new "ParticleCollidingInMeshElementEvent") so that we can split/roulette/ignore after a collision. If these event types are added, modifications to the EventHandler, EventModuleInterface, and the simulateParticle method (ParticleSimulationManager) will have to be made.
An appropriate xml user interface will likely become clearer as this feature is developed.
NOTE: As will all MOAB based functionality, we will have to be careful about thread-safety.
@makeclean has expressed interest in taking the lead on this feature. I will also be contributing to the development of this feature and will take the lead if necessary.
It is not clear which module a weight-window mesh feature should be added to. My initial thought is to add it to 1. the geometry module and to 2. the event module.
An appropriate xml user interface will likely become clearer as this feature is developed.
NOTE: As will all MOAB based functionality, we will have to be careful about thread-safety.
@makeclean has expressed interest in taking the lead on this feature. I will also be contributing to the development of this feature and will take the lead if necessary.