Skip to content

flex_rf.tidy3d.PoleResidue

Type: class Base(s): DispersiveMedium

A dispersive medium described by the pole-residue pair model.

The frequency-dependence of the complex-valued permittivity is described by:

ϵ(ω)=ϵi[cijω+ai+cijω+ai]\epsilon(\omega) = \epsilon_\infty - \sum_i \left[\frac{c_i}{j \omega + a_i} + \frac{c_i^*}{j \omega + a_i^*}\right]
pole_res = PoleResidue(eps_inf=2.0, poles=[((-1+2j), (3+4j)), ((-5+6j), (7+8j))])
eps = pole_res.eps_model(200e12)
name [str | None] = None

Optional unique name for medium.

frequency_range [FreqBound | None] = None

Optional range of validity for the medium.

allow_gain [bool] = False

Allow the medium to be active. Caution: simulations with a gain medium are unstable, and are likely to diverge.Simulations where allow_gain is set to True will still be charged even if diverged. Monitor data up to the divergence point will still be returned and can be useful in some cases.

nonlinear_spec [NonlinearSpec | NonlinearSusceptibility | None] = None

Nonlinear spec applied on top of the base medium properties.

modulation_spec [ModulationSpec | None] = None

Modulation spec applied on top of the base medium properties.

viz_spec [VisualizationSpec | None] = None

Plotting specification for visualizing medium.

heat_spec [ThermalSpecType | None] = None

DEPRECATED: Use MultiPhysicsMedium. Specification of the medium heat properties. They are used for solving the heat equation via the HeatSimulation interface. Such simulations can beused for investigating the influence of heat propagation on the properties of optical systems. Once the temperature distribution in the system is found using HeatSimulation object, Simulation.perturbed_mediums_copy() can be used to convert mediums with perturbation models defined into spatially dependent custom mediums. Otherwise, the heat_spec does not directly affect the running of an optical Simulation.

eps_inf [TracedPositiveFloat] = 1.0

Relative permittivity at infinite frequency (ϵ\epsilon_\infty).

poles [TracedPolesAndResidues] = ()

Tuple of complex-valued (ai,cia_i, c_i) poles for the model.

eps_model(frequency: float)

Complex-valued permittivity as a function of frequency.

from_admittance_coeffs(a: ArrayFloat, b: ArrayFloat, eps_inf: PositiveFloat = 1, pole_tol: PositiveFloat = 0.01)

Construct a PoleResidue model from an admittance function defining the relationship between the electric field and the polarization current density in the Laplace domain.

from_lo_to(poles: tuple[tuple[float, float, float, float], ...], eps_inf: PositiveFloat = 1)

Construct a pole residue model from the LO-TO form (longitudinal and transverse optical modes). The LO-TO form is ϵi=1lωLO,i2ω2iωγLO,iωTO,i2ω2iωγTO,i\epsilon_\infty \prod_{i=1}^l \frac{\omega_{LO, i}^2 - \omega^2 - i \omega \gamma_{LO, i}}{\omega_{TO, i}^2 - \omega^2 - i \omega \gamma_{TO, i}} as given in the paper:

from_medium(medium: Medium)

Convert a Medium to a pole residue model.

imag_ep_extrema(poles: PolesAndResidues)

Extrema of Im[eps] in the same unit as poles.

lo_to_eps_model(poles: tuple[tuple[float, float, float, float], ...], eps_inf: PositiveFloat, frequency: float)

Complex permittivity as a function of frequency for a given set of LO-TO coefficients. See from_lo_to in PoleResidue for the detailed form of the model and a reference paper.

loss_upper_bound()

Upper bound of Im[eps] in frequency_range

to_medium()

Convert to a Medium. Requires the pole residue model to only have a pole at 0 frequency, corresponding to a constant conductivity term.