mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-25 12:35:29 -04:00
97 lines
3.7 KiB
Python
97 lines
3.7 KiB
Python
import openmc
|
|
import pytest
|
|
from pathlib import Path
|
|
|
|
|
|
def test_bounding_box(request):
|
|
"""Checks that the DAGMCUniverse.bounding_box returns the correct values"""
|
|
|
|
u = openmc.DAGMCUniverse(Path(request.fspath).parent / "dagmc.h5m")
|
|
|
|
ll, ur = u.bounding_box
|
|
assert ll == pytest.approx((-25.0, -25.0, -25))
|
|
assert ur == pytest.approx((25.0, 25.0, 25))
|
|
|
|
|
|
def test_bounding_region(request):
|
|
"""Checks that the DAGMCUniverse.bounding_region() returns a region with
|
|
correct surfaces and boundary types"""
|
|
|
|
u = openmc.DAGMCUniverse(Path(request.fspath).parent / "dagmc.h5m")
|
|
|
|
region = u.bounding_region() # should default to bounded_type='box'
|
|
assert isinstance(region, openmc.Region)
|
|
assert len(region) == 6
|
|
assert region[0].surface.type == "x-plane"
|
|
assert region[0].surface.x0 == -25.
|
|
assert region[1].surface.type == "x-plane"
|
|
assert region[1].surface.x0 == 25.
|
|
assert region[2].surface.type == "y-plane"
|
|
assert region[2].surface.y0 == -25.
|
|
assert region[3].surface.type == "y-plane"
|
|
assert region[3].surface.y0 == 25.
|
|
assert region[4].surface.type == "z-plane"
|
|
assert region[4].surface.z0 == -25.
|
|
assert region[5].surface.type == "z-plane"
|
|
assert region[5].surface.z0 == 25.
|
|
assert region[0].surface.boundary_type == "vacuum"
|
|
assert region[1].surface.boundary_type == "vacuum"
|
|
assert region[2].surface.boundary_type == "vacuum"
|
|
assert region[3].surface.boundary_type == "vacuum"
|
|
assert region[4].surface.boundary_type == "vacuum"
|
|
assert region[5].surface.boundary_type == "vacuum"
|
|
region = u.bounding_region(padding_distance=5)
|
|
assert region[0].surface.x0 == -30.
|
|
assert region[1].surface.x0 == 30.
|
|
assert region[2].surface.y0 == -30.
|
|
assert region[3].surface.y0 == 30.
|
|
assert region[4].surface.z0 == -30.
|
|
assert region[5].surface.z0 == 30.
|
|
|
|
region = u.bounding_region(bounded_type="sphere", boundary_type="reflective")
|
|
assert isinstance(region, openmc.Region)
|
|
assert isinstance(region, openmc.Halfspace)
|
|
assert region.surface.type == "sphere"
|
|
assert region.surface.boundary_type == "reflective"
|
|
larger_region = u.bounding_region(bounded_type="sphere", padding_distance=10)
|
|
assert larger_region.surface.r > region.surface.r
|
|
|
|
|
|
def test_bounded_universe(request):
|
|
"""Checks that the DAGMCUniverse.bounded_universe() returns a
|
|
openmc.Universe with correct surface ids and cell ids"""
|
|
|
|
u = openmc.DAGMCUniverse(Path(request.fspath).parent / "dagmc.h5m")
|
|
|
|
# bounded with defaults
|
|
bu = u.bounded_universe()
|
|
|
|
cells = list(bu.get_all_cells().items())
|
|
assert isinstance(bu, openmc.Universe)
|
|
assert len(cells) == 1
|
|
assert cells[0][0] == 10000 # default bounding_cell_id is 10000
|
|
assert cells[0][1].id == 10000 # default bounding_cell_id is 10000
|
|
surfaces = list(cells[0][1].region.get_surfaces().items())
|
|
assert len(surfaces) == 6
|
|
assert surfaces[0][1].id == 10000
|
|
|
|
# bounded with non defaults
|
|
bu = u.bounded_universe(bounding_cell_id=42, bounded_type="sphere", starting_id=43)
|
|
|
|
cells = list(bu.get_all_cells().items())
|
|
assert isinstance(bu, openmc.Universe)
|
|
assert len(cells) == 1
|
|
assert cells[0][0] == 42 # default bounding_cell_id is 10000
|
|
assert cells[0][1].id == 42 # default bounding_cell_id is 10000
|
|
surfaces = list(cells[0][1].region.get_surfaces().items())
|
|
assert surfaces[0][1].type == "sphere"
|
|
assert surfaces[0][1].id == 43
|
|
|
|
|
|
def test_material_names(request):
|
|
"""Checks that the DAGMCUniverse.material_names() returns a list of the
|
|
name present in the dagmc.h5m file in the expected order"""
|
|
|
|
u = openmc.DAGMCUniverse(Path(request.fspath).parent / "dagmc.h5m")
|
|
|
|
assert u.material_names == ['41', 'Graveyard', 'no-void fuel']
|