Skip to content

Commit 73629f2

Browse files
committed
Warn if different media have the same name
1 parent 07ddba5 commit 73629f2

File tree

3 files changed

+32
-3
lines changed

3 files changed

+32
-3
lines changed

tests/test_components/test_scene.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_scene_init():
4747

4848

4949
def test_validate_components_none():
50-
assert SCENE._validate_num_mediums(val=None) is None
50+
assert SCENE._validate_mediums(val=None) is None
5151

5252

5353
def test_plot_eps():

tests/test_components/test_simulation.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,27 @@ def test_num_mediums(monkeypatch):
17151715
)
17161716

17171717

1718+
def test_unique_medium_names():
1719+
"""Warn if non-unique medium names supplied."""
1720+
1721+
with AssertLogLevel("WARNING", contains_str="unique names"):
1722+
_ = td.Simulation(
1723+
size=(5, 5, 5),
1724+
structures=[
1725+
td.Structure(
1726+
geometry=td.Box(size=(1, 1, 1)),
1727+
medium=td.Medium(permittivity=2, name="medium1"),
1728+
),
1729+
td.Structure(
1730+
geometry=td.Box(size=(1, 1, 1), center=(1, 0, 0)),
1731+
medium=td.Medium(permittivity=3, name="medium1"),
1732+
),
1733+
],
1734+
run_time=1e-12,
1735+
grid_spec=td.GridSpec.uniform(dl=0.02),
1736+
)
1737+
1738+
17181739
def test_num_sources():
17191740
"""Make sure we error if too many sources supplied."""
17201741

tidy3d/components/scene.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ class Scene(Tidy3dBaseModel):
142142
_unique_structure_names = assert_unique_names("structures")
143143

144144
@pd.validator("structures", always=True)
145-
def _validate_num_mediums(cls, val):
146-
"""Error if too many mediums present."""
145+
def _validate_mediums(cls, val):
146+
"""Error if too many mediums present. Warn if different mediums have the same name."""
147147

148148
if val is None:
149149
return val
@@ -155,6 +155,14 @@ def _validate_num_mediums(cls, val):
155155
f"{len(mediums)} were supplied."
156156
)
157157

158+
medium_names = [medium.name for medium in mediums if medium.name is not None]
159+
if len(medium_names) != len(set(medium_names)):
160+
log.warning(
161+
"Different mediums with the same name were detected. "
162+
"This may error in future Tidy3D versions, and using unique names for distinct "
163+
"media is recommended."
164+
)
165+
158166
return val
159167

160168
@pd.validator("structures", always=True)

0 commit comments

Comments
 (0)