nonlinear_ring¶
- photonforge.abstract.nonlinear_ring(*, kappa1=0.3, kappa2=None, n_eff=2.4, length=60, propagation_loss=0.0, n_group=None, reference_frequency=None, dn_dT=0.0, dL_dT=0.0, temperature=293.0, reference_temperature=293.0, effective_area=one, kerr_index=, tpa_coefficient=.0, fca_cross_section=.0, fcd_coefficient=0, confinement=1.0, carrier_lifetime=None, thermal_time_constant=None, thermal_capacity=None, absorbed_fraction=1.0, heater_resistance=None, carrier_samples=401, z0=None, f_3dB=0)[source]¶
Abstract nonlinear microring resonator.
Based on
photonforge.RingTimeStepper.- Parameters:
kappa1 (complex) – Complex cross-coupling coefficient of the first bus coupler.
kappa2 (complex | None) – Cross-coupling coefficient of the second bus coupler. If
None, models a single-bus ring.n_eff (complex) – Effective refractive index (loss can be included here by using complex values).
length (Annotated[float, minimum=0, units='μm']) – Round-trip length of the ring.
propagation_loss (Annotated[float, minimum=0, units='dB/μm']) – Propagation loss.
n_group (float | None) – Group index. If
None, the real part ofn_effis used.reference_frequency (Annotated[float, minimum=0, units='Hz'] | None) – Reference frequency the indices are quoted at. If
None, the carrier frequency is used.dn_dT (Annotated[complex, units='1/K']) – Temperature sensitivity of
n_eff, which is also the coefficient self-heating acts through.dL_dT (Annotated[float, units='dB/μm/K']) – Temperature sensitivity of
propagation_loss.temperature (Annotated[float, minimum=0, units='K']) – Operating temperature.
reference_temperature (Annotated[float, minimum=0, units='K']) – Reference temperature.
effective_area (Annotated[float, exclusiveMinimum=0, units='m²'] | None) – Nonlinear effective area. Required by any of the intensity terms below.
kerr_index (Annotated[float, units='m²/W']) – Kerr coefficient n₂. Positive values red-shift the resonance.
tpa_coefficient (Annotated[float, minimum=0, units='m/W']) – Two-photon absorption coefficient.
fca_cross_section (Annotated[float, minimum=0, units='m²']) – Free-carrier absorption cross-section.
fcd_coefficient (Annotated[float, units='m³']) – Free-carrier index change per unit density. Negative for silicon.
confinement (Annotated[float, maximum=1, minimum=0]) – Fraction of the optical mode overlapping the two-photon material. It scales the TPA loss and the carriers it generates.
carrier_lifetime (Annotated[float, exclusiveMinimum=0, units='s'] | Interpolator | None) – Free-carrier lifetime, a constant in s or an
photonforge.Interpolatorover carrier density. Required by the free-carrier terms.thermal_time_constant (Annotated[float, exclusiveMinimum=0, units='s'] | None) – Thermal relaxation time. Set together with
thermal_capacityto enable self-heating.thermal_capacity (Annotated[float, exclusiveMinimum=0, units='J/K'] | None) – Heat capacity of the heated volume. The steady-state thermal impedance is the ratio of the two.
absorbed_fraction (Annotated[float, maximum=1, minimum=0]) – Fraction of the linear loss that is absorption rather than scattering, and so heats the ring.
heater_resistance (Annotated[float, exclusiveMinimum=0, units='Ω'] | None) – If set, an electrical heater port is added, contributing V²/R to the thermal source.
carrier_samples (Annotated[int, minimum=2]) – Points used to resample an interpolator lifetime at setup.
z0 (Annotated[complex, units='Ω'] | None) – Reference impedance of the electrical port.
f_3dB (Annotated[float, minimum=0, units='Hz']) – -3 dB cutoff of the electrical drive. Only active for positive values.
- Return type: