Anything that can be filled by a cell can be passed to
openmc.model.pin, including Universes and lattices.
Checks are included for the volume division, as not
all supported items, like Lattice instances, have volume
attributes.
A test was added to check this capability, where a universe
is used as one of the interior elements for the pin.
Various cosmetic changes to address reviewer comments.
Function openmc.model.funcs.pin has replaced the class-based
openmc.model.pin.Pin
Subdivision functionality is maintained by passing a dictionary
of integer ring indexes -> number of divisions to the function
Tests have been updated accordingly and are parametrized
against surface type: X, Y, and Z cylinders
Designed to facilitate building universe that represent
pins, or concentric cylinders of materials. Can be built
by passing surfaces and materials, or radii and materials.
Places last material spanning region out to infinity from
the last surface.
Supports subdividing rings into equal volume slices of
unique [cloned] materials, useful for depletion.
Unit tests added for failure modes as well as basic operation