Documentation Status

Welcome to Beampy’s documentation!

Beampy is a python module based on the Beam Propagation Method 1 used to compute light propagation into a varying refractive index. The light propagation is done by the bpm module. An user interface - done using Qt desginer - allows to control the parameters and display the results.

This project was done by Jonathan Peltier and Marcel Soubkovsky during a master university course from the PAIP master of the université de Lorraine, under the directive of Pr. Nicolas Fressengeas.

The bpm codes are mainly based on a compilation of MatLab codes initialy developed by Régis Grasser during his PhD thesis 2, and later modified at the FEMTO-ST institute of the Université de Franche-Comté and at the LMOPS laboratory 3 of the Université de Lorraine.



K. Okamoto, in Fundamentals of Optical Waveguides, 2nd ed., edited by K. Okamoto (Academic, Burlington, 2006), pp. 329–397.


“Generation et propagation de reseaux periodiques de solitons spatiaux dans un milieu de kerr massif” PhD thesis, université de Franche-Comté 1998.


H. Oukraou et. al., Broadband photonic transport between waveguides by adiabatic elimination Phys. Rev. A, 97 023811 (2018).


This package can be download in a python environment using pip install:

pip install beampy

Or by downloading the github folder and setting beampy as a PYTHONPATH. If so, make sure to download Qt5, matplotlib and numpy by using this command in the docs folder:

pip install -r requirements.txt

Starting the software

To start the Beampy interface, import beampy and start the open_app function:

import beampy

Or open direclty the file to launch the interface. Or even open the to have a non-based interface version.

For more informations, see the detailed user guide describing Beampy and explaining the choices made.


The three modules making Beampy, the interface explanations, results and examples are accessible bellow:

Indices and tables

Last edit: Jan 26, 2020 for the version