Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redundant surfaces #226

Open
wbinventor opened this issue Nov 25, 2015 · 1 comment
Open

Redundant surfaces #226

wbinventor opened this issue Nov 25, 2015 · 1 comment

Comments

@wbinventor
Copy link
Member

During the process of implementing cell rotations and translations in PR #225 I realized that the Cells in OpenMOC will contain extra redundant ZCylinders when rings are used to spatially discretize fuel pin cells. Basically, the Cell::ringify() will retain the original Surface(s) in a Cell and simply add new ZCylinders to spatially refine the Cell. This is not a bug for ray tracing per se, but does mean that more Surfaces than necessary must be queried for intersection points which will hurt performance.

I don't see this is a critical issue, however, since at most there will only be two redundant Surfaces per Cell (i.e., when ringifying clad or gap zones which are treated as between two ZCylinders in the original non-discretized Cell). But if anyone n the future is looking for low hanging fruit performance optimizations, this could be one.

@wbinventor
Copy link
Member Author

I should also point out that I ran against the same issue when implementing the spatial discretization module in OpenCG many months ago. In this case I wasn't so lucky and had to figure out a way to remove redundant surfaces since OpenMC isn't as forgiving as OpenMOC in this regard. The algorithm to remove redundant surfaces in OpenCG uses bounding boxes and takes advantage of OpenCG's Pythonic design, but could serve as a starting point for anyone who sets out to fix this issue in OpenMOC in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant