@@ -908,21 +908,25 @@ def check_transient_heat(cls, values):
908
908
conductivities = []
909
909
structures = values .get ("structures" )
910
910
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
+ )
926
930
927
931
# check that we don't have too many time-steps
928
932
if analysis_type .unsteady_spec .total_time_steps > TRANSIENT_HEAT_MAX_STEPS :
0 commit comments