Free Optics Project

Investigation of the gain spectrum near the pumps of two-pump fiber OPAs

(SSF for C-NLSE)


This page was created to host and distribute under a   creative commons license   a series of MATLAB codes developed to simulate non-linear propagation in optical fibers and used to generate all the gain spectra shown in:

M.E. Marhic, A.A. Rieznik and, H.L. Fragnito, “Investigation of the gain spectrum near the pumps of two-pump fiber OPAs,” Journal of the Optical Society of America B, Vol. 25, 22-30 (2008).  Abstract

These codes solve the coupled generalized non-linear Schrödinger equations describing light propagation in optical fibers with two orthogonal polarization states, through a symmetrized Split-Step Fourier Method (SSFM) algorithm developed specifically for this purpose [1]. This SSFM does not neglect the ellipse-rotation terms (also called coherent-coupling terms) to simulate the non-linear propagation, in contrast to all commercially available software.

The full simulations giving all the spectral gain curves shown in our article use the same SSFM function to obtain the output gain spectra. What changes from simulation to simulation is the input field (see in the “Running the code” section below for more information on the specific algorithm used to generate the gain spectra).

Download and Installation

Click here to download the codes

You must save the compressed folder called in your computer. When you extract them, three folders will be created inside the folder IsotropicFiberSimuations, namely: Examples, Visualizers, and Solvers.

We used as the starting point for these codes the ssprop software developed by Thomas Murphy and collaborators and available   here . See the section Previous Works for more details on the relation and comparative performances between our software and the one by Thomas Murphy.

Running the code

The gain spectra shown in Figures 2-4 can be generated by simply opening and running the matlab code with the respective name in the folder Examples you just downloaded (the Fig2(a).m file, for instance, automatically generates, when run, the gain spectra shown in Figure 2(a)). Note that two gain curves are generated, one corresponding to the SSFM solution and the other to the four-wave model analytical solution presented in [2]. Note also that the files inside the Visualizers and Solvers folders are used only when running the Examples, and should not be run by themselves.

Of course, you can open the functions inside these folders to study their structure. In fact all the codes are well commented, so we hope you can follow their algorithm, and use them for educational or research purposes. You can also change the simulation parameters to investigate how they affect the gain spectra.

All the matlab files in Examples are similar: first, the input field is constructed and the input parameters values (fiber length, fiber coefficients, number of sample points, etc.) are set; second, the SSFM_for_CNLSE.m matlab function file is called to solve the coupled non-linear Schroedinger equations; then the analytical solution obtained by the four-wave model is calculate; finally, both gain spectra are used for the visualization process.

All these codes were saved using Matlab 7.0 and Windows XP, so we are not sure whether it will work properly when using earlier versions or others operational systems or hardware.
Note that the three folders you extracted from the compressed file you downloaded must be included in the Matlab path (Files -> Set Path -> Add with Sub-Folders).

Previous Works

The   ssprop software   developed by Thomas Murphy and his team at the Photonic Research Laboratory at the University of Maryland inspired this project and the matlab codes they developed to solve the scalar non-linear Schroedinger Equation were used as the original seed for the development of our codes for the coupled equations.

Since we submitted our article to JOSA B, more than a year ago, the ssprop software evolved and now it has SSFM solvers for both the scalar and coupled equations. In contrast to our code they developed both matlab and C++ codes.

We compared the simulations time of our matlab code for the coupled NLSE against the codes in matlab and in C++ by the Thomas Murphy’s group. We simulate the gain spectrum for the two-pump FOPA shown in Figura 2a in our JOSA B article using our program and the matlab and C++ version of the ssprop solvers. Our matlab code is between 5 and 6 times faster than the sspropv matlab code, and  between 2 and 3 times faster than the C++ code. All the tests were done using a Pentium IV processor with 1 Gbyte RAM, Windows XP and Matlab 7.0 on August 2007, so this result may change with new versions of the programs.

We attribute the faster speed of our matlab code to the fact that our algorithm is less general and do not accept other birefringence axis rather than linear. But further studies are being done to better clarify this point.


The author of these codes is  Andrés Anibal Rieznik . If you have inquiries about the codes, do not hesitate to send me an e-mail. It would be a pleasure to answer you and help to improve these codes according to your research or educational purposes.


[1] M. E. Marhic, A. A. Rieznik, H.L. Fragnito, and L. G. Kazovsky, “Accurate Modeling of Fiber OPAs with Nonlinear Ellipse Rotation Terms in the Split-Step Fourier Method,” Proceedings of the Optical Amplifiers and Applications Conference 2006, Whistler, Canada, June 25-28 (2006), paper JWB35 ( pdf ). See also: M.E. Marhic, A.A. Rieznik, G. Kalogerakis, C. Braimiotis and, H.L. Fragnito, “Accurate Numerical Simulation of Short Fiber Optical Parametric Amplifiers,” Optics Express, Vol. 16, No. 6, 3610-3622 (2008)

[2] M. E. Marhic, K. K. Y. Wong, and L. G. Kazovsky, "Fiber optical parametric amplifiers with linearly or circularly polarized waves," J. Opt. Soc. Am. B 20, 2425-2433 (2003). Abstract