BeamLab 2.3

BeamLab 2.3 is out now with great new features and lots of improvements! This time we significantly enhanced BeamLab’s capability to work with externally generated 3D refractive index distributions. Read on to learn more about this feature or directly jump to the release notes.

Creating a waveguide’s refractive index distribution by importing 3D arrays

In our previous release we introduced the possibility to create waveguides based on externally generated and imported two-dimensional images. This time, we complemented this functionality by adding a new waveguide function dubbed importedwaveguide3d that allows one to import a three-dimensional (3D) refractive index distribution in form of a 3D array. In addition, we also enhanced BeamLab’s indexplot function to allow one to export any three-dimensional refractive index distribution generated by BeamLab in form of a 3D array and save it in a MAT file. In other words, one can now not only import an arbitrary 3D refractive index distribution that has been generated independently of BeamLab and is represented by a numeric 3D array, but also create much more complex waveguide structures with BeamLab (not available through any single built-in waveguide function) by concatenating multiple structures generated by BeamLab’s built-in waveguide functions. In the following example, we use this feature to generate a waveguide structure that demonstrates the coupling of light from a standard silica fiber core with a diameter of about 9 µm to a silicon-nitride (SiN) planar waveguide with a refractive index of ~1.9, a width of 1.5 µm and a thickness of 0.5 µm. To do so, we first generate a fiber tip by using BeamLab’s singlecore function. The fiber tip consists of a tapered fiber core suspended in air. In a second step, we then generate the planar waveguide by using BeamLab’s rib function where the SiN waveguide is placed on top of a silica substrate. The refractive index distributions of both waveguide structures are separately exported in form of 3D arrays to MAT files and then externally loaded and concatenated to form a new waveguide structure that represents the fiber-to-rib coupler consisting of both the fiber tip and the planar waveguide. Finally, we import this newly generated 3D array to perform the calculation for the beam propagation.

3D refractive index contour plot of the waveguide structure consisting of both the silica fiber tip and the SiN planar waveguide

Two-dimensional refractive index distribution in the y-z plane

Two-dimensional intensity distribution in the y-z plane demonstrating how the light in the fiber core is efficiently coupled to the planar waveguide

Exciting new demos

In this release we also expanded our demo library. Besides the fiber_to_rib demo discussed above, we added a demo dubbed photonic_crystal_fiber_twisted that shows how to calculate beam propagation in a twisted photonic crystal fiber. Photonic crystal fibers (PCFs) come in various forms and types. In contrast to standard fibers, where light is guided by means of total internal reflections at the interface between the core and cladding due to different refractive indices, PCFs are made from a single material (usually silica) and the guiding mechanism is due to an interference or a photonic band gap effect emerging in a regular two-dimensional array of air holes (which structure-wise is reminiscent of photonic crystals) that surrounds a light-guiding core, e.g., a solid core formed by removing one air hole from the center of the air hole array.

The following movie shows light propagation in a PCF when illuminated with a Laguerre-Gaussian beam of azimuthal order 1 at the wavelength of 1 µm. The PCF consists of a solid silica core surrounded by 90 air holes with a diameter of 3.6 µm arranged in a triangular lattice with a lattice constant of 8 µm.

The next movie shows what happens when the solid core is removed by placing an air hole also in the PCF’s center. As expected, light in such a coreless PCF cannot be guided anymore and quickly scatters in lateral direction with increasing propagation distance.

For the final movie, a twist of 180 degree per mm was added to this coreless PCF, which brings us to the subject of the new demo photonic_crystal_fiber_twisted. When the PCF is twisted, it can be seen that the light tends to gather near the center of the PCF enabling a guiding effect although no core is present. This guiding effect depends on the twist rate but in general seems to be not as pronounced as it is case when a core is present.

Release notes

New features:

  • Add new function importedwaveguide3d that allows one to create a waveguide whose 3D refractive index distribution is externally generated and imported via a MAT file or 3D array.
  • Add new function farfieldplot that allows one to calculate and plot the far field of a given near field distribution.
  • Add new function pcolorgridconverter that allows one to adapt the data stored in the output structure of bpmsolver or modesolver to reproduce the intensity or field plots of x-y, x-z, or y-z slices by using the pcolor function of MATLAB®.
  • Add new parameters Index3DOutput and Index3DOutputFilename to indexplot that allows one to export the whole propagation structure in form of a 3D array.
  • Add new parameter Index3DPlotXYStep to indexplot that allows one to adjust the resolution in x- and y-direction of 3D refractive index contour plots.
  • Add new parameters DispersionOutput and DispersionOutputFilename that allows one to save the output of a dispersionsolver calculation to a MAT file.
  • Add new parameters ReferenceCoreWidth, ReferenceCoreIndex, and ReferenceCladdingIndex to waveguide functions customwaveguide2d and customwaveguide3d that allow one to define a reference profile as index function that is internally adjusted according to these parameters.
  • Add new parameter Figure to function plotindex that allows one to add the graphs generated by plotindex to a user-specified figure.
  • Add new parameter Name to function plotindex that allows one to display a user-specified material name in the figure legend.
  • Add new parameters DopantMaterial and DopantPercentage to functions getindex, getmaterial, and plotindex that allow one to define a doped material with a specified dopant fraction according to the mixed Sellmeier model.
  • Add new parameters CalculationPause and CalculationStop that allow one to pause or stop a bpmsolver calculation at any arbitrary location on the z-axis.
  • Add possibility to evaluate the group index Ngroup in dispersionsolver.
  • Add possibility to display the magnitude, real part and/or imaginary part of the refractive index when generating refractive index slices with indexplot.
  • Add new materials GeO2 and SiN to the material database.

New demos:

  • Add demo axicon which shows how a Gaussian beam is transformed into a Bessel-like beam when propagating through an axicon.
  • Add demo photonic_crystal_fiber_twisted which shows how light is guided in a twisted coreless photonic crystal fiber.
  • Add demo fiber_to_rib which shows the coupling of a fiber tip to a high-index planar waveguide.

Modified functions:

  • Rename function importedwaveguide to importedwaveguide2d.
  • Simplify input argument list of function resizefield.


  • Set the default value of the parameter MonitorStep such that the x-y distributions are displayed a minimum of 1 times and a maximum of 20 times per propagation section during a bpmsolver calculation.
  • Improve dispersionsolver in terms of tracking the correct order of the eigenmodes during a frequency or wavelength scan.
  • Improve performance when determining the refractive index contour overlays for a bpmsolver calculation.
  • Improve documentation.

Bug fixes:

  • Fix bug in dispersionsolver with respect to warning messages.
  • Fix bug in waveguide function rib.
  • Fix bug in function resizefield.
  • Fix bug in input function gaussinput.
  • Fix bug in indexplot.
  • Various minor bug fixes.