Skip to content

generate openmc reactor geom

The generate_geometry step happens in 3 main steps: create surfaces __make_surfaces(), create assemblies __make_assemblies(), and then put it all together in a reactor __create_reactor(). Each assembly is an openmc.Universe filled with different openmc.Cells that represent the subassemblies in the input. There is a __generate_lattice() method that is used for the reactor level assembly lattice as well as the pin lattices in the subassemblies. This MR is comprehensive to include the handling of both 2D and 3D geometries, hexagonal or square lattice, and the handling of wire wraps on pins (currently only supported for hex geometries in PyARC).

Included in the tests are 4 reactor geometries: 2D hexagonal reactor, 3D hexagonal reactor, 2D square reactor, and 3D square reactor (all geometries are pretty much the same except for the removal of axial surfaces in 2D and being square vs hex). There is no single comprehensive test that checks the full reactor geometry, but instead smaller tests to check various components of the process. However, because all 4 test geometries are used and the code does have to run the creation process for each script, all 4 configurations are confirmed to be working if the tests pass. There are also tests for the majority of the helper functions.

Merge request reports