Limit DAGMC ray fire distance to collision point for BVH pruning#3961
Limit DAGMC ray fire distance to collision point for BVH pruning#3961eckertben wants to merge 2 commits into
Conversation
pshriwise
left a comment
There was a problem hiding this comment.
Thanks @eckertben! With some more testing this may unlock some additional performance boosts for well-formed DAGMC models.
Would you mind exposing this as an optional behavior that's marked on the DAGMCUniverse object itself? We'll want to maintain the option for users to run with the current behavior in the case they don't have confidence that the DAGMC surface mesh is well-formed (i.e. successfully imprinted & merged and watertight)
|
FWIW, I think the early MCNP implementation of DAGMC did just this. There are problems, however, as @pshriwise notes when there are imperfections in the DAGMC model. |
Indeed! I thought we'd try it out here as well and see what it gets us. |
|
I tried this out tonight and I think we're missing the final piece where we pass the distance limit into the DAGMC |
Description
Please include a summary of the change and which issue is fixed if applicable. Please also include relevant motivation and context.
Limit the ray fire distance in DAGMC geometry to the sampled collision distance. When a collision distance is sampled before boundary finding, there is no need to search for boundaries beyond that distance since the collision event will be selected regardless. Passing this distance as a cap to the DAGMC ray fire allows the BVH traversal to prune nodes beyond the collision point, resulting in more efficient particle tracking.
Local Tests:
-All pass
Tests on ATR benchmark model provided by Dr. Shriwise (100 batches, 10k particles per batch):
Checklist