Skip to content

Lost particles with redundant surfaces #260

Open
@wbinventor

Description

@wbinventor

Particles are lost during transport when two separate surfaces with the exact same properties are used as an interface between cells. For example, consider the case where a simple pin cell is modeled with two z-cylinder surface definitions. Each z-cylinder is defined with the same coefficients. The fuel cell is defined to use the negative halfspace of one of the z-cylinders, while the moderator cell is defined to use the positive halfspace of the other z-cylinder. This should be exactly the same as simply defining a single z-cylinder and using its positive/negative halfspaces, but for some reason particles are lost if the surface is defined redundantly.

This arose while I was writing a Python API to auto-generate XML inputs for OpenMC from OpenMOC geometries. In particular, in OpenMOC it is common to create unstructured mesh within each pin cell consisting of "rings" and "sectors" to subdivide the fuel and moderator. In my case, I want to create tally regions for OpenMC in the same way.

OpenMOC automatically generates the CSG primitives needed to discretize pin cells in this way, and my API uses this to easily export the cells and surfaces needed to discretize an OpenMC geometry as an XML file. In the process of generating the primitives in OpenMOC, a few redundant surfaces were carelessly kept around and ended up in the XML file which revealed this issue.

Although this issue is at least temporarily fixed within my API, I believe that this should not be an issue since it will likely arise again in the future for anyone generating XML input rather than writing it by hand for complicated geometries.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions