DOI: 10.11583/dtu.13622081.v1
title: Data underpinning: BPM-Matlab - An open-source optical propagation simulation tool in MATLAB

description: BPM-Matlab is an open-source optical propagation simulation tool we developed in MATLAB environment for computationally efficient simulation of electric field propagation through a wide variety of optical fiber geometries using Douglas-Gunn Alternating Direction Implicit finite difference method. The validations of BPM-Matlab numerical results are provided in the article by comparing them against published data and results from state-of-the-art commercial software. The simulation tool is gratis, open-source, fast, user-friendly, and supports optional CUDA acceleration. It can be downloaded from https://gitlab.gbar.dtu.dk/biophotonics/BPM-Matlab. The software is published under the terms of the GPLv3 License. <br><br><br> The data available here in DTU Data can be used to reproduce the figures 1-5 in the Optics Express manuscript titled 'BPM-Matlab - An open-source optical propagation simulation tool in MATLAB'. These data are generated using BPM-Matlab software except for Data_Fig1_d.mat. We suggest the user to use Matlab 2018a or newer to open and read the data. The data set is published under the terms of the Creative Commons Attribution 4.0 License.<br><br><br><b>Data_Fig1_a_b_c.mat</b>This file can be used to reproduce Fig. 1 (a-c) of the article where BPM-Matlab is used to simulate beam propagation through a multimode fiber. The x and y axes values are available in the variables P.x and P.y. The E-field intensity at the proximal end in Fig. 1(a) can be calculated as abs(P.Einitial.').^2. The corresponding phase in Fig. 1(b) is available as angle(P.Einitial.'). The E-field intensity at the multimode fiber distal end in Fig. 1(c) can be calculated as abs(P.E.field.').^2.<br><b>Data_Fig1_d.mat</b>The corresponding BeamLab simulation results of the same multimode fiber are available in this data file. This data file is generated using BeamLab software. Use the variables bpmData.SlicesXZ.XData, bpmData.SlicesYZ.YData, and abs(bpmData.OutputField.E.x.').^2 to obtain x, y, and distal E-field intensity respectively.<br><b>Data_Fig_2.mat</b>The data from this file will generate intensity profiles of the five lowest order fiber modes supported by a straight and a bent multimode fiber corresponding to Figure 2 of the article. The variables P_noBend and P_bend are struct variables that hold information about the spatial dimensions as well as E-field profiles of the straight and bent modes. For the straight fiber case, the mode field profile is stored in P_noBend.modes(modeNumber).field, where 1x = dx*(-(Nx-1)/2:(Nx-1)/2) and y = dy*(-(Ny-1)/2:(Ny-1)/2), where Nx = size(P_noBend.modes(modeNumber).field,1), Ny = size(P_noBend.modes(modeNumber).field,2), dx = P_noBend.modes(modeNumber).Lx/Nx, and dy = P_noBend.modes(modeNumber).Ly/Ny. In a similar manner, the mode field profiles of bent multimode fiber may also be accessed from P_bend. <b><br></b><b>Data_Fig3_a.mat</b>Use this data file to reproduce Figure 3(a) from the article, where numerical simulation results of different LP modes' normalized fractional power in a bent multimode fiber excited with LP01 mode are presented. The matlab command semilogy(P.z.*1e3,P.modeOverlaps,'linewidth',2)will plot the mode overlap of LP01 to all 30 guided modes in logarithmic scale. The following command legend(P.modes.label,'location','eastoutside','FontSize',6)could be used to label the modes. Set the y-limits of the plot using ylim([1e-4 2]) to visualize the contribution from only the six most excited modes. <br><b>Data_Fig3_b.mat</b>Load this data file and follow similar steps described above for Data_Fig3_a case in order to plot normalized fractional power in a bent multimode fiber excited with LP03 mode, as in Figure 3(b). <br><b>Data_Fig_4.mat</b>To reproduce Figure 4(a) from the article, use the commands imagesc(P.z,P.x,abs(P.xzSlice).^2);ylim([-1 1]*0.75e-5); to plot the intensity profile in the xz plane of a multimode fiber tapered down to be a single-mode fiber. For Figure 4(b), use plot(P.z,P.powers) that will plot the power within the simulation window against the length P.z of the fiber. <br><b>Data_Fig5_a.mat</b>This data file could be used to plot the intensity profile of the E-field at a distance of z = 5 mm after the non-twisted, straight multicore fiber distal end as given in Figure 5(a) in the article. The E-field data after propagation from the distal end is available as E_out_fft.field and the corresponding spatial dimensions are available as E_out_fft.x and E_out_fft.y. Use imagesc(x.*1e3,y.*1e3,E_abs(E_out_fft.field.').^2); axis image; to plot the field intensity profile. Similar to the above case, use the below .mat files to reproduce Figure 5 (b-d). <b>Data_Fig5_b.mat </b>- Twisted straight multicore fiber<b>Data_Fig5_c.mat </b>- Non-twisted bent multicore fiber<b>Data_Fig5_d.mat </b>- Twisted bent multicore fiber. <br>