photonic
¤
Photonic components for optical circuit simulation.
All wavelength parameters are in nanometres and power in watts.
Functions:
| Name | Description |
|---|---|
Grating |
Grating coupler with Gaussian wavelength-dependent insertion loss. |
OpticalSource |
Ideal CW optical source for DC and small-signal AC analysis. |
OpticalSourcePulse |
Time-dependent optical source with a sigmoid turn-on profile. |
OpticalWaveguide |
Single-mode waveguide with first-order dispersion and propagation loss. |
Splitter |
Lossless asymmetric optical splitter (Y-junction) with a configurable power split ratio. |
Grating
¤
Grating(
signals: Signals,
s: States,
center_wavelength_nm: float = 1310.0,
peak_loss_dB: float = 0.0,
bandwidth_1dB: float = 20.0,
wavelength_nm: float = 1310.0,
) -> PhysicsReturn
Grating coupler with Gaussian wavelength-dependent insertion loss.
Loss increases quadratically with detuning from center_wavelength_nm,
approximating the Gaussian spectral response of a typical grating coupler.
Transmission is clipped to 0.9999 to keep the Y-matrix well-conditioned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signals
|
Signals
|
Field amplitudes at the grating ( |
required |
s
|
States
|
Unused. |
required |
center_wavelength_nm
|
float
|
Peak transmission wavelength in nm. Defaults to |
1310.0
|
peak_loss_dB
|
float
|
Insertion loss at peak wavelength in dB. Defaults to |
0.0
|
bandwidth_1dB
|
float
|
Full 1 dB bandwidth in nm. Defaults to |
20.0
|
wavelength_nm
|
float
|
Operating wavelength in nm. Defaults to |
1310.0
|
Source code in circulax/components/photonic.py
OpticalSource
¤
OpticalSource(
signals: Signals, s: States, power: float = 1.0, phase: float = 0.0
) -> PhysicsReturn
Ideal CW optical source for DC and small-signal AC analysis.
Enforces a fixed complex field amplitude sqrt(power) * exp(j * phase)
across its ports, analogous to an ideal voltage source in electrical circuits.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signals
|
Signals
|
Field amplitudes at the positive ( |
required |
s
|
States
|
Source current state variable |
required |
power
|
float
|
Output optical power in watts. Defaults to |
1.0
|
phase
|
float
|
Output field phase in radians. Defaults to |
0.0
|
Source code in circulax/components/photonic.py
OpticalSourcePulse
¤
OpticalSourcePulse(
signals: Signals,
s: States,
t: float,
power: float = 1.0,
phase: float = 0.0,
delay: float = 2e-10,
rise: float = 5e-11,
) -> PhysicsReturn
Time-dependent optical source with a sigmoid turn-on profile.
Field amplitude ramps smoothly from zero to sqrt(power) around
delay, with the steepness of the transition controlled by rise.
Suitable for transient simulations of optical pulse propagation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signals
|
Signals
|
Field amplitudes at the positive ( |
required |
s
|
States
|
Source current state variable |
required |
t
|
float
|
Current simulation time in seconds. |
required |
power
|
float
|
Peak output optical power in watts. Defaults to |
1.0
|
phase
|
float
|
Output field phase in radians. Defaults to |
0.0
|
delay
|
float
|
Turn-on delay in seconds. Defaults to |
2e-10
|
rise
|
float
|
Sigmoid rise time constant in seconds. Defaults to |
5e-11
|
Source code in circulax/components/photonic.py
OpticalWaveguide
¤
OpticalWaveguide(
signals: Signals,
s: States,
length_um: float = 100.0,
loss_dB_cm: float = 1.0,
neff: float = 2.4,
n_group: float = 4.0,
center_wavelength_nm: float = 1310.0,
wavelength_nm: float = 1310.0,
) -> PhysicsReturn
Single-mode waveguide with first-order dispersion and propagation loss.
The effective index is linearised around center_wavelength_nm using the
group index to approximate dispersion. Phase and loss are combined into a
complex transmission coefficient T, from which the 2×2 S-matrix and
corresponding Y-matrix are derived.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signals
|
Signals
|
Field amplitudes at input ( |
required |
s
|
States
|
Unused. |
required |
length_um
|
float
|
Waveguide length in micrometres. Defaults to |
100.0
|
loss_dB_cm
|
float
|
Propagation loss in dB/cm. Defaults to |
1.0
|
neff
|
float
|
Effective refractive index at |
2.4
|
n_group
|
float
|
Group refractive index, used to compute the dispersion slope. Defaults to |
4.0
|
center_wavelength_nm
|
float
|
Reference wavelength for dispersion expansion in nm. Defaults to |
1310.0
|
wavelength_nm
|
float
|
Operating wavelength in nm. Defaults to |
1310.0
|
Source code in circulax/components/photonic.py
Splitter
¤
Lossless asymmetric optical splitter (Y-junction) with a configurable power split ratio.
The S-matrix is constructed to be unitary, with the cross-port coupling
carrying a j phase shift to satisfy energy conservation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signals
|
Signals
|
Field amplitudes at the input ( |
required |
s
|
States
|
Unused. |
required |
split_ratio
|
float
|
Fraction of input power routed to |
0.5
|