Useful Softwares

Stability boundary tracking for cnoidal wave solutions

MATLAB® code to find the stability boundaries for cnoidal wave solutions to the Lugiato-Lefever Equation using dynamical methods. This package can be used to reproduce Fig. 3 from the below paper.

Z. Qi, S. Wang, J. Jaramillo-Villegas, M. Qi, A. M. Weiner, G. D'Aguanno, T. F. Carruthers, and C. R. Menyuk, "Dissipative cnoidal waves (Turing Rolls) and the soliton limit in microring resonators," Optica 6, 1220-1232 (2019).

Dynamical-Method noise performance modeling

MATLAB® code that plots the power spectral density of the energy jitter, frequency jitter, and phase jitter using dynamical methods. This package reproduces Fig. 4(a-c) from the below paper.

S. Wang, T. F. Carruthers, and C. R. Menyuk, "Efficiently modeling the noise performance of short-pulse lasers with a computational implementation of dynamical methods," J. Opt. Soc. Am. B 35, 2521-2531 (2018).

Rigorous Coupled-Wave Algorithm (RCWA) for 3D metamaterials

MATLAB® code written by Rushin Contractor to simulate the reflection, transmission and field distribution caused due to the diffraction of light from 3D metamaterial grating structures. find the stability boundaries of two co-existing pulse solutions of the cubic-quintic modelocking equation.

M. G. Moharam and T. K. Gaylord, "Rigorous coupled-wave analysis of planar-grating diffraction," J. Opt. Soc. Am. 71, 811-818 (1981)[weblink]

Dynamical method to evaluate noise impact in short-pulse lasers

MATLAB® code calculating the power spectrum of the timing phase noise in a SESAM fiber comb laser using the dynamical method. This code package reproduces part of Fig.4(c) for the submitted paper to Journal of the Optical Society of America B.

Boundary Tracking Algorithms

MATLAB® code to find the stability boundaries of two co-existing pulse solutions of the cubic-quintic modelocking equation.

Shaokang Wang, Andrew Docherty, Brian S. Marks, and Curtis R. Menyuk, "Boundary tracking algorithms for determining the stability of mode-locked pulses," J. Opt. Soc. Am. B 31, 2914-2930 (2014) doi:10.1364/JOSAB.31.002914 [weblink]

Responsivity and harmonic powers in a PDA photodetector

MATLAB® code to model responsivity as a function of bias and the harmonic powers in a PDA photodetector.

Yue Hu, Thomas F. Carruthers, Curtis R. Menyuk, Meredith N. Hutchinson, Vincent J. Urick, and Keith J. Williams, "Simulation of a partially depleted absorber (PDA) photodetector," Opt. Express 23, 20402-20417 (2015) doi:10.1364/OE.23.020402 [weblink]

Modeling laser modelocking with saturable gain

MATLAB® code to generate the figures in the paper "A comparison of numerical methods for modeling laser modelocking with saturable gain"

Shaokang Wang, Andrew Docherty, Brian S. Marks, and Curtis R. Menyuk, "Comparison of numerical methods for modeling laser mode locking with saturable gain," J. Opt. Soc. Am. B 30, 3064-3074 (2013) doi:10.1364/JOSAB.30.003064 [weblink]

Transmitted noise induced by Brillouin scattering

This is a MATLAB® software package was written by Asaf David to model Brilluoin scattering and its impact on low frequency pump noise. This software is based on the following papers:

Asaf David and Moshe Horowitz, "Low-frequency transmitted intensity noise induced by stimulated Brillouin scattering in optical fibers," Opt. Express 19, 11792-11803 (2011) doi:10.1364/OE.19.011792 [weblink]

OEO Simulation Software in Simulink

This is MATLAB® Simulink® software written by Michael Fleyer. It contains a library of useful elements (flicker noise generator, Mach-Zehnder modulator, etc.) and an OEO as a system. A number of OEOs can be easily coupled, and the main model is an example of a dual OEO that is equivalent to the Dual-Loop OEO Simulation Software example below by Etgar C. Levy.

A brief operation manual for its usage is included here in Word format: [weblink]

This software is based on the following papers:

Etgar C. Levy, Moshe Horowitz, and Curtis R. Menyuk, “Modeling optoelectronic oscillators,” J. Opt. Soc. Am. B 26, 148–159 (2009) doi:10.1364/JOSAB.26.000148 [weblink]
Etgar C. Levy, Olukayode Okusaga, Moshe Horowitz, Curtis R. Menyuk, Weimin Zhou, and Gary M. Carter, “Comprehensive computational model of single-and dual-loop optoelectronic oscillators with experimental verification,” Opt. Express 18, 21461–21476 (2010) doi:10.1364/OE.18.021461 [weblink]

Dual-Loop OEO Simulation Software

This is MATLAB® software was written by Etgar C. Levy and extends the previous code to model the dual-loop injection locked oscillator. This software is based on the following papers:

Etgar C. Levy, Moshe Horowitz, and Curtis R. Menyuk, “Modeling optoelectronic oscillators,” J. Opt. Soc. Am. B 26, 148–159 (2009) doi:10.1364/JOSAB.26.000148 [weblink]
Etgar C. Levy, Olukayode Okusaga, Moshe Horowitz, Curtis R. Menyuk, Weimin Zhou, and Gary M. Carter, “Comprehensive computational model of single-and dual-loop optoelectronic oscillators with experimental verification,” Opt. Express 18, 21461–21476 (2010) doi:10.1364/OE.18.021461 [weblink]

Single Loop OEO Simulation Software

This is MATLAB® software was written by Etgar C. Levy and documented by Z. Toroker with customer input from J. Hu, M. Talukder, and C. Menyuk. It is the code used to generate the results in the paper:

Etgar C. Levy, Moshe Horowitz, and Curtis R. Menyuk, “Modeling optoelectronic oscillators,” J. Opt. Soc. Am. B 26, 148–159 (2009) doi:10.1364/JOSAB.26.000148 [weblink]

A Comprehensive Quantum Cascade Laser Model

This is library of software written for MATLAB® to simulate a quantum cascade laser structure and calculate the conduction band edge potential and wavefunctions.

This code was developed by Muhammad A. Talukder.

Downloads:

QCL simulation package source.

UndStdLeakyMode: Understanding leaky modes

UndStdLeakyMode is a MATLAB® code for generating the pictures and the animations that are included in the tutorial paper:

Jonathan Hu and Curtis R. Menyuk, “Understanding leaky modes: slab waveguide revisited,” Adv. Opt. Photon. 1, 58-106 (2009) [weblink]

The code was developed by Jonathan Hu

PhoSSiL

PhoSSiL is a library of C++ classes that can be used to simulate photonics systems including optical fiber communications systems and lasers. It was written by Dr. John Zweck, Dr. Curtis Menyuk and a team of graduate students and postdocs in the Computational Photonics Laboratory.

Work on PhoSSiL, which was originally called the Optical Communication Systems Simulator (OCS), was begun by Ivan Lima in 2000. Other contributors include Aurenice de Menezes Oliveira (formerly Aurenice Lima), Brian Marks, Oleg Sinkin, Ronald Holzloehner, Zhihang (Jonathan) Hu, Wenze Xi, Walter Pellegrini, Anshul Karla, Hai Xu, Hua Jiao, and Junping Wen.

PhoSSiL is currently maintained by Dr. John Zweck