OpenMC/tests/unit_tests/test_no_visible_boundary.py
Paul Romano ac941f79e0
Add RectangularPrism and HexagonalPrism composite surfaces (#2739)
Co-authored-by: Patrick Shriwise <pshriwise@gmail.com>
2023-11-01 09:13:40 -05:00

30 lines
1.1 KiB
Python

import openmc
def test_no_visible_boundary(run_in_tmpdir):
copper = openmc.Material()
copper.add_nuclide('Cu63', 1.0)
copper.set_density('g/cm3', 0.3)
air = openmc.Material()
air.add_nuclide('N14', 1.0)
air.set_density('g/cm3', 0.0012)
# Create a simple model of a neutron source directly impinging on a thin
# disc of copper. Neutrons leaving the back of the disc see no surfaces in
# front of them.
disc = openmc.model.RightCircularCylinder((0., 0., 1.), 0.1, 1.2)
box = openmc.model.RectangularPrism(width=10, height=10, boundary_type='vacuum')
c1 = openmc.Cell(fill=copper, region=-disc)
c2 = openmc.Cell(fill=air, region=+disc & -box)
model = openmc.Model()
model.geometry = openmc.Geometry([c1, c2])
model.settings.run_mode = 'fixed source'
model.settings.particles = 1000
model.settings.batches = 5
model.settings.source = openmc.IndependentSource(
space=openmc.stats.Point(),
angle=openmc.stats.Monodirectional((0., 0., 1.))
)
# Run model to ensure it doesn't segfault
model.run()