optimize_mmi

si_fab.components.mmi.optimization.opt_utils.optimize_mmi(mmi_class, width, taper_length, trace_template, initial_wg_spacing=2.0, initial_length=10.0, initial_taper_width=1.5, max_iter=50, wavelength=1.55, verbose=False, plot=True)

Optimizes the length and waveguide spacing of a 1x2 MMI at fixed wavelength, taper_length and width.

Parameters:
mmi_class

PCell class of the MMI to optimize

widthfloat

Width of the mmi [um]

initial_taper_widthfloat

Width of the taper in the mmi [um]

taper_lengthfloat

Length of the taper [um]

trace_template

Trace template of the MMI

initial_wg_spacingfloat, optional, default=2.0

Initial waveguide separation of the MMI at the first iteration [um]

initial_lengthfloat, optional, default=10.0

Initial length of the MMI at the first iteration [um]

max_iterint, optional, default=50

Max number of iterations for the optimization

wavelengthfloat, optional, default=1.55

Wavelength of the optimization [um]

verboseboolean, optional, default=False

Print statements if True

plotboolean, optional, default=True

Plot the optimized result

Returns:
optimized_length, optimized_waveguide_spacingfloat, float

Optimized length and waveguide spacing for the MMI