|
3 | 3 |
|
4 | 4 | from __future__ import annotations |
5 | 5 |
|
6 | | -from typing import Union |
7 | | - |
8 | 6 | from .nonlinear import ( |
9 | 7 | KerrNonlinearity, |
10 | 8 | NonlinearModel, |
11 | 9 | NonlinearSpec, |
12 | 10 | NonlinearSusceptibility, |
13 | 11 | TwoPhotonAbsorption, |
14 | 12 | ) |
15 | | -from .base import AbstractMedium |
16 | | -from .dispersionless import Medium, PECMedium, CustomMedium, CustomIsotropicMedium |
| 13 | +from .base import AbstractMedium, AbstractCustomMedium |
| 14 | +from .dispersionless import Medium, PECMedium, CustomMedium, PEC |
17 | 15 | from .anisotropic import ( |
18 | 16 | AnisotropicMedium, |
19 | 17 | CustomAnisotropicMedium, |
|
39 | 37 | LossyMetalMedium, |
40 | 38 | SurfaceImpedanceFitterParam, |
41 | 39 | ) |
42 | | -from .medium_2d import Medium2D |
43 | | -from .perturbation import PerturbationMedium, PerturbationPoleResidue |
44 | | - |
45 | | - |
46 | | -NonlinearModelType = Union[NonlinearSusceptibility, TwoPhotonAbsorption, KerrNonlinearity] |
47 | | -IsotropicUniformMediumType = Union[ |
48 | | - Medium, LossyMetalMedium, PoleResidue, Sellmeier, Lorentz, Debye, Drude, PECMedium |
49 | | -] |
50 | | -IsotropicCustomMediumType = Union[ |
51 | | - CustomPoleResidue, |
52 | | - CustomSellmeier, |
53 | | - CustomLorentz, |
54 | | - CustomDebye, |
55 | | - CustomDrude, |
56 | | -] |
57 | | -IsotropicCustomMediumInternalType = Union[IsotropicCustomMediumType, CustomIsotropicMedium] |
58 | | -IsotropicMediumType = Union[IsotropicCustomMediumType, IsotropicUniformMediumType] |
59 | | -MediumType3D = Union[ |
60 | | - Medium, |
61 | | - AnisotropicMedium, |
62 | | - PECMedium, |
63 | | - PoleResidue, |
64 | | - Sellmeier, |
65 | | - Lorentz, |
66 | | - Debye, |
67 | | - Drude, |
68 | | - FullyAnisotropicMedium, |
69 | | - CustomMedium, |
70 | | - CustomPoleResidue, |
71 | | - CustomSellmeier, |
72 | | - CustomLorentz, |
73 | | - CustomDebye, |
74 | | - CustomDrude, |
75 | | - CustomAnisotropicMedium, |
76 | | - PerturbationMedium, |
77 | | - PerturbationPoleResidue, |
78 | | - LossyMetalMedium, |
79 | | -] |
80 | | -MediumType = Union[MediumType3D, Medium2D, AnisotropicMediumFromMedium2D] |
81 | | - |
82 | | -PEC = PECMedium(name="PEC") |
83 | | -PEC2D = Medium2D(ss=PEC, tt=PEC) |
| 40 | +from .medium_2d import Medium2D, MediumType, MediumType3D, PEC2D |
| 41 | +from .perturbation import PerturbationMedium, PerturbationPoleResidue, AbstractPerturbationMedium |
84 | 42 |
|
| 43 | +AnisotropicMedium.update_forward_refs() |
85 | 44 |
|
86 | 45 | __all__ = [ |
87 | 46 | "PEC", |
88 | 47 | "PEC2D", |
89 | 48 | "AbstractMedium", |
| 49 | + "AbstractCustomMedium", |
| 50 | + "AbstractPerturbationMedium", |
90 | 51 | "AnisotropicMedium", |
91 | 52 | "AnisotropicMediumFromMedium2D", |
92 | 53 | "CustomAnisotropicMedium", |
|
106 | 67 | "LossyMetalMedium", |
107 | 68 | "Medium", |
108 | 69 | "Medium2D", |
| 70 | + "MediumType", |
| 71 | + "MediumType3D", |
109 | 72 | "NonlinearModel", |
110 | 73 | "NonlinearSpec", |
111 | 74 | "NonlinearSusceptibility", |
|
0 commit comments