Home Screenshots Download Mailing List

LaserFOAM (Laser pulse propagation using a Fourier Adaptive Method) performs 1D simulations of laser pulses to solve the generalized nonlinear Schrödinger equation (sometimes called Nonlinear Envelope Equation - NEE), provinding a graphical environment to run and visualize the results. Its main goal is to simulate the propagation of ultrashort laser pulses (in the nonlinear regime) in photonic crystal fibers (PCFs). It's free open source software (FOSS), available under the GNU GPL license.
The application was made using the Python programming language, and the libraries numpy, scipy, pyGTK and matplotlib.

A detailed description of equations used in this program, as well as the split-step Fourier method (SSFM) can be found on the book "Nonlinear Fiber Optics" by G. P. Agrawal. A short description of the SSFM method can be found on wikipedia. The adaptive algorithm is from O. V. Sinkin et al., "Optimization of the split-step Fourier method in modeling optical-fiber communications systems," Journal of Lightwave Technology 21, 61 (2003).

As of version 1.2 the numerical method employed is the "Fourth-order Runge-Kutta in the interaction picture" (RK4IP) as presented in the paper by J. Hult, "A Fourth-order Runge-Kutta in the interaction picture method for simulation supercontinuum generation in optical fibers," J. Lightware Tech. 25, 3770 (2007). The adaptive method is the same. It may be helful to read the paper by A. M. Heidt, "Efficient adaptive step size method for the simulation of supercontinuum generation in optical fibers," J. Lightwave Tech. 27, 3984 (2009).

Author: João Luís Silva (for matters related to LaserFOAM use the mailing list or the sourceforge project page).


We kindly ask you to reference LaserFOAM in publications that use it. A citation to the following paper would be appreciated:


13-May-2010: Uploaded version 1.2.

- The numerical method is now "Fourth order Runge-Kutta in the interaction picture" (RK4IP) which has better numerical characteristics.
- Added Calculate Autocorrelation and Calculate Spectrogram to the Process menu.
- Changed the chirp parameters to GDD and TOD.
- Changed from python 2.5 to python 2.6.
- Added a log scale option to the pop up graphics windows.
- Some other small improvements.

17-Feb-2009: Uploaded version 1.1. Now supports delayed Raman response. The graphics of spectral data can now be shown either in terms of wavelength or frequency. Added a new menu Process, that calculates de FWHM pulse length.

24-Oct-2008: Uploaded version 1.0. It includes support for chirped pulses.

15-Oct-2008: Uploaded a source release, version 0.90. The status has now changed to beta, although some functionality is still missing.

8-May-2007: Uploaded the last development version. It has lots of improvements but it is not yet ready for general use, so it is only a source release. Comments welcome.

17-January-2007: An installer for Windows has been released. You can download it at the sourceforge project page.

13-January-2007: A test version has been released. You can download it at the sourceforge project page.

9-January-2007: A mailing list has now been created. You can now subscribe to laserfoam-users.

26-December-2006: This program is still alpha software. A release will be made when it reaches beta.

Hosted on 
SourceForge.net Logo