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