Skip to content

Commit 64455ff

Browse files
marc-flexyaugenst-flex
authored andcommitted
Fix unsteady heat test
1 parent 2e5acc2 commit 64455ff

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

tests/test_components/test_heat_charge.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def mediums():
101101
charge=td.ChargeConductorMedium(
102102
conductivity=1,
103103
),
104+
heat=td.SolidMedium(conductivity=1.1, capacity=1.2, density=2.3),
104105
name="solid_medium",
105106
)
106107

tidy3d/components/tcad/simulation/heat_charge.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -908,21 +908,25 @@ def check_transient_heat(cls, values):
908908
conductivities = []
909909
structures = values.get("structures")
910910
for structure in structures:
911-
if isinstance(structure.medium.heat, SolidMedium):
912-
if structure.medium.heat_spec.capacity is None:
913-
raise SetupError(
914-
f"Unsteady simulations require the medium '{structure.medium.name}' to have capacity defined."
915-
)
916-
else:
917-
capacities.append(structure.medium.heat_spec.capacity)
918-
if structure.medium.heat_spec.density is None:
919-
raise SetupError(
920-
f"Unsteady simulations require the medium '{structure.medium.name}' to have density defined."
921-
)
922-
else:
923-
densities.append(structure.medium.heat_spec.density)
924-
925-
conductivities.append(structure.medium.heat_spec.conductivity)
911+
heat_properties = None
912+
if isinstance(structure.medium, MultiPhysicsMedium):
913+
heat_properties = structure.medium.heat
914+
# now check legacy Medium too
915+
elif isinstance(structure.medium, Medium):
916+
heat_properties = structure.medium.heat_spec
917+
918+
if isinstance(heat_properties, SolidMedium):
919+
if heat_properties.capacity is not None:
920+
capacities.append(heat_properties.capacity)
921+
if heat_properties.density is not None:
922+
densities.append(heat_properties.density)
923+
conductivities.append(heat_properties.conductivity)
924+
925+
if len(capacities) == 0 or len(densities) == 0 or len(conductivities) == 0:
926+
raise SetupError(
927+
"Unsteady simulations require the SolidSpec to have 'capacity', 'density', and 'conductivity' "
928+
"defined. Please check the definition of the SolidSpec in the Medium or MultiPhysicsMedium."
929+
)
926930

927931
# check that we don't have too many time-steps
928932
if analysis_type.unsteady_spec.total_time_steps > TRANSIENT_HEAT_MAX_STEPS:

0 commit comments

Comments
 (0)