mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-25 20:45:35 -04:00
Fix: materials, plots, and tallies cannot be passed as lists (#3513)
Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
This commit is contained in:
parent
6b672f772f
commit
836bc487cf
2 changed files with 25 additions and 6 deletions
|
|
@ -70,7 +70,7 @@ class Model:
|
|||
def __init__(
|
||||
self,
|
||||
geometry: openmc.Geometry | None = None,
|
||||
materials: openmc.Materials = None,
|
||||
materials: openmc.Materials | None = None,
|
||||
settings: openmc.Settings | None = None,
|
||||
tallies: openmc.Tallies | None = None,
|
||||
plots: openmc.Plots | None = None,
|
||||
|
|
@ -82,7 +82,7 @@ class Model:
|
|||
self.plots = openmc.Plots() if plots is None else plots
|
||||
|
||||
@property
|
||||
def geometry(self) -> openmc.Geometry | None:
|
||||
def geometry(self) -> openmc.Geometry:
|
||||
return self._geometry
|
||||
|
||||
@geometry.setter
|
||||
|
|
@ -91,7 +91,7 @@ class Model:
|
|||
self._geometry = geometry
|
||||
|
||||
@property
|
||||
def materials(self) -> openmc.Materials | None:
|
||||
def materials(self) -> openmc.Materials:
|
||||
return self._materials
|
||||
|
||||
@materials.setter
|
||||
|
|
@ -100,12 +100,14 @@ class Model:
|
|||
if isinstance(materials, openmc.Materials):
|
||||
self._materials = materials
|
||||
else:
|
||||
if not hasattr(self, '_materials'):
|
||||
self._materials = openmc.Materials()
|
||||
del self._materials[:]
|
||||
for mat in materials:
|
||||
self._materials.append(mat)
|
||||
|
||||
@property
|
||||
def settings(self) -> openmc.Settings | None:
|
||||
def settings(self) -> openmc.Settings:
|
||||
return self._settings
|
||||
|
||||
@settings.setter
|
||||
|
|
@ -114,7 +116,7 @@ class Model:
|
|||
self._settings = settings
|
||||
|
||||
@property
|
||||
def tallies(self) -> openmc.Tallies | None:
|
||||
def tallies(self) -> openmc.Tallies:
|
||||
return self._tallies
|
||||
|
||||
@tallies.setter
|
||||
|
|
@ -123,12 +125,14 @@ class Model:
|
|||
if isinstance(tallies, openmc.Tallies):
|
||||
self._tallies = tallies
|
||||
else:
|
||||
if not hasattr(self, '_tallies'):
|
||||
self._tallies = openmc.Tallies()
|
||||
del self._tallies[:]
|
||||
for tally in tallies:
|
||||
self._tallies.append(tally)
|
||||
|
||||
@property
|
||||
def plots(self) -> openmc.Plots | None:
|
||||
def plots(self) -> openmc.Plots:
|
||||
return self._plots
|
||||
|
||||
@plots.setter
|
||||
|
|
@ -137,6 +141,8 @@ class Model:
|
|||
if isinstance(plots, openmc.Plots):
|
||||
self._plots = plots
|
||||
else:
|
||||
if not hasattr(self, '_plots'):
|
||||
self._plots = openmc.Plots()
|
||||
del self._plots[:]
|
||||
for plot in plots:
|
||||
self._plots.append(plot)
|
||||
|
|
|
|||
|
|
@ -892,3 +892,16 @@ def test_id_map_aligned_model():
|
|||
assert tr_cell == 20, f"Expected cell ID 20 at top-right corner, got {tr_cell}"
|
||||
assert tr_instance == 3, f"Expected cell instance 3 at top-right corner, got {tr_instance}"
|
||||
assert tr_material == 5, f"Expected material ID 5 at top-right corner, got {tr_material}"
|
||||
|
||||
def test_setter_from_list():
|
||||
mat = openmc.Material()
|
||||
model = openmc.Model(materials=[mat])
|
||||
assert isinstance(model.materials, openmc.Materials)
|
||||
|
||||
tally = openmc.Tally()
|
||||
model = openmc.Model(tallies=[tally])
|
||||
assert isinstance(model.tallies, openmc.Tallies)
|
||||
|
||||
plot = openmc.Plot()
|
||||
model = openmc.Model(plots=[plot])
|
||||
assert isinstance(model.plots, openmc.Plots)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue