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

Consider introducing new "Mask" object into Universe/Lattice/Cell hierarchy #106

Open
samuelshaner opened this issue Oct 19, 2014 · 0 comments

Comments

@samuelshaner
Copy link
Contributor

In many instances it is useful to break up a Universe or Cell using some structured mesh. There are several instances where we already do this by different means or where this could be useful:

  • Pin cell decomposition into rings and sectors: Currently this is achieved by creating new cells with bounding surfaces for each ring and sector division. When calling findCellContainingCoords for a point within a pin cell universe, each of these cells within the universe must be looped over until the one containing the coords is reached. The time to find the cell then scales with the number of sectors and rings. A radial and sector Mask (similar to the radial and sector meshes in OpenCSG) could be used for decomposing pin cells into rings and sectors with much faster segmentation across these cells.
  • CMFD mesh overlay: Currently this is achieved by effectively using a Lattice as a Mask during segmentation. The Lattice is overlaid on Universe 0 and used in segmentation to ensure that segments don't lie in more than one CMFD cell and used to add FSRs to CMFD cells.
  • Domain decomposition: Similar to the CMFD mesh overlay, a lattice is used to break up tracks by domain.
  • Breaking up reflector and baffle cells: Currently this is achieved by have the user create a lattice containing small cells filled with the reflector/baffle material. Instead, a mask could be overlaid on the CellBasic containing the reflector/baffle material. This would both simplify the input file and make it easier to apply non-cartesian meshes like logarithmic meshes to reflector regions.
  • Easy geometry discretization: Creating sectors and rings in pin cells, small lattices for reflector and baffle regions, and small regions for grid sleeves and water gaps surrounding assemblies can complicate an input file. With Masks, a user could just create a Mask with small cells (say 0.2 x 0.2 cm) and overlay it on Universe 0 to guarantee that the largest FSR size would be the size of cells in the mask.

In short, a Mask is like a Lattice except that it does not explicitly contain further Universes/Lattices/Cells within it. It is merely an overlay used to break up segments or tracks. The benefits of this are faster segmentation by replacing a list of cells with a mask, simplification of the input file, a more streamlined way to implement the CMFD and domain lattice, and perhaps the addition of exotic meshes (logarithmic rectilinear and logarithmic radial) that would be tedious to otherwise implement.

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