Free Optics Project
This page was created to share the codes I used to generate the figures in my PhD thesis
This page was created to host and distribute under a the series of Matlab codes developed to simulate non-linear propagation in optical fibers and used for the generation of the Figures in the PhD thesis by Andrés Rieznik, to be defended on April 2008 at the State Universuty of Campinas, Brazil, and available for download here (will be available soon).
Download and Installation
You must save the compressed folder called “Rieznik_Thesis_Generate_Figures.zip” in your computer. When you extract it, four folders will be created inside the folder Accurate_Short_Fiber_Simulations, namely:
(1) Figures: here are the Matlab files you need to run to generate the different figures.
(2) Solvers: Matlab functions applying the SSFM for solving the scalar and coupled NLSE.
(3) Visularizers: Matlab functions used to plot the results at the output of the propagations.
(4) Saved_Files: data files used to generate some of the graphs of the thesis. They are called from some of the files in the Figures folder, so the graph generated by the codes are the same as the associated one in the thesis.
Running the code
All the graphs generated in the thesis using the split-step Fourier method can be generated by simply opening and running the matlab code with the respective name in the folder Figures you just downloaded (the Figure_11_a.m file, for instance, automatically generates, when run, the gain spectra shown in Figure 11(a)).
Note that when running the codes corresponding to Figures 3, 4, and 5, these Figures are not automatically generated by matlab, as in the other cases. In these particular cases the program gives the number of Fast Fourier Transforms (FFT) performed during the simulation and the achieved global accuracy. These two parameters are shown at the matlab Command Window when the simulation ends.
To construct the graphs showing the number of FFTs performed as a function of the achieved accuracy, as those shown in Figures 3, 4 and 5, you must run the codes several times changing the tolerance parameter (called “tol” in the codes) and construct the graph manually by yourself (using Origin or Excel, for instance). The codes use by default the Uncertainty Principle Method (UPM) to choose the spatial-step size.
To change the spatial step-size criterion algorithm you must comment the line calling the UPM and uncomment one of the following lines, depending on what criterion you want to use. In Figure_3, for instance, you must comment line 32 an uncomment line 33 to use the Local Error Method instead of the UPM.
Note that the files inside folders Solvers and Visualizers are used only when running the files in the Figures folder, 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 results.
Note also that all folders you extracted from the compressed file you downloaded must be included in the Matlab path (Files -> Set Path -> Add with Sub-Folders).
One of the random process as the one used for the generation of Figures 15(a),(b), and (c) can be run by changing the variable “realizations” from 500 to 1 in the file Figure_15d.m.
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.
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.