You can display a list of all demo scripts by executing the command beamlabdemos in the MATLAB command-line interface.

You can open the BeamLab documentation by executing the command beamlabdoc in the MATLAB command-line interface. If you want to directly open the documentation of a certain function, use the command beamlabdoc <functionname>, e.g., beamlabdoc beamset. You can also view the documentation of a specific parameter by executing beamlabdoc <parametername>, e.g., beamlabdoc PowerTrace.

Each license file is locked to a specific computer and user. If you wish to use BeamLab on another PC, please contact us at

bpmsolver generates an output structure that contains all relevant information with regard to your simulation. In our demos this output structure usually has the name bpmData or modeData , while in the documentation it is simply dubbed outputData.

Using this output structure in conjunction with the function bpmplot, e.g., by typing bpmplot(bpmData) in the MATLAB command-line interface, you can easily recreate all output plots of the previous simulation associated with bpmData.

bpmsolver does not display the field distribution in x-z or y-z slices in sections that make use of the function fasthomogeneous because the field is not calculated in those homogeneous areas to speed up the calculation.

BeamLab’s bpmsolver currently calculates only forward propagating waves. That said, we are also working on additional solvers that will allow the calculations of reflections and backward propagating waves. These solvers will be included in a future version of BeamLab.

BeamLab currently supports the simulation of only monochromatic light beams, i.e., at a single wavelength.

bpmsolver currently can take into account only the nonlinear change in refractive index as a function of optical intensity due to the Kerr effect.

The output field of one simulation can be handed over as input field to another simulation by using the input function custominput with the output field as input parameter.

For example, if the output structure of your previous simulation has the name bpmData, then the following command will hand over all E-field components of the output field as input field to the next simulation.

inputField = @(beamProblem) custominput(beamProblem,bpmData.OutputField.E);

bpmsolver generates an output structure that contains all relevant information with regard to your simulation. For more details, please check out the bpmsolver documentation page by typing beamlabdoc bpmsolver in the MATLAB command-line interface.

This usually happens if you try to run the BeamLab installation without administrative rights. Administrative rights are required in order to extend the MATLAB path to include the BeamLab installation. Changing the MATLAB path requires write permissions to the directory of your MATLAB installation.

It can happen that BeamLab functions cannot be found if the MATLAB path is not set correctly. Please check your MATLAB path (command pathtool) if it contains the directory with the function you are looking for. In case of BeamLab this usually is the folder containing your BeamLab installation.

Yes, you can but for reasons of usability we do not recommend it. In this case you cannot use the installer but need to use the zip archive for installation. When doing so unzip the archive into your user directory or any directory where you have write permissions. Furthermore, as the installation path cannot be registered globally as it would be case if you had administrative rights, you need to have a custom pathdef.m file in your MATLAB startup folder that includes the correct path definitions so that MATLAB can find all BeamLab functions. See MATLAB documentation (doc savepath) for details.