@@ -27,19 +27,25 @@ class NonlinearModel(ABC, Tidy3dBaseModel):
2727
2828 def _validate_medium_type (self , medium : AbstractMedium ) -> None :
2929 """Check that the model is compatible with the medium."""
30- from .medium import AbstractCustomMedium , DispersiveMedium , Medium
30+ from .medium import (
31+ AbstractCustomMedium ,
32+ CustomDispersiveMedium ,
33+ CustomMedium ,
34+ DispersiveMedium ,
35+ Medium ,
36+ )
3137
32- if isinstance ( medium , AbstractCustomMedium ) :
38+ if medium . is_time_modulated :
3339 raise ValidationError (
3440 f"'NonlinearModel' of class '{ type (self ).__name__ } ' is not currently supported "
35- f"for medium class '{ type (medium ).__name__ } '."
41+ f"for time-modulated medium class '{ type (medium ).__name__ } '."
3642 )
37- if medium . is_time_modulated :
43+ if isinstance ( medium , AbstractCustomMedium ) and not medium . is_isotropic :
3844 raise ValidationError (
3945 f"'NonlinearModel' of class '{ type (self ).__name__ } ' is not currently supported "
40- f"for time-modulated medium class '{ type (medium ).__name__ } '."
46+ f"for anisotropic medium class '{ type (medium ).__name__ } '."
4147 )
42- if not isinstance (medium , (Medium , DispersiveMedium )):
48+ if not isinstance (medium , (Medium , DispersiveMedium , CustomMedium , CustomDispersiveMedium )):
4349 raise ValidationError (
4450 f"'NonlinearModel' of class '{ type (self ).__name__ } ' is not currently supported "
4551 f"for medium class '{ type (medium ).__name__ } '."
0 commit comments