BeamLab 2.1

Welcome to BeamLab 2.1! This time we significantly enhanced BeamLab’s material database and added a number of features to facilitate dispersion related evaluations.

The refractive index of an optical material depends in general on the wavelength. This phenomenon is commonly known as material dispersion. So far, BeamLab’s material database contained only materials whose material dispersion was described by the real part of the refractive index given by the Sellmeier formula in conjunction with a set of empirically derived coefficients. Starting with this release, BeamLab’s database can also handle refractive indices that are available in form of tabulated (e.g., experimentally measured) data containing both the real and imaginary part of the refractive index and thus can also account for wavelength dependent absorption. We are also aware that a predefined database could never fulfill the multitude of needs for optical materials used in optical design and waveguide analysis and therefore made also sure that every user can easily set up its own custom database and use it with the same flexibility as the built-in one.

In addition, we added a new function called plotindex that makes it easy to visualize the wavelength dependence of a real or complex refractive index and at the same time also allows one to compare in one and the same figure the dispersion characteristics of various optical materials defined in either BeamLab’s database or a separately set up custom database. The following example shows how plotindex can be used to plot simultaneously the real and imaginary part of the refractive index of silicon and germanium in the wavelength range from 0.6 to 1.2 µm with a resolution of 1 nm.


Real part (left) and imaginary part (right) of the refractive index of Si and Ge
(Si-2 refers to the tabulated data of Si in BeamLab’s material database)

Another type of dispersion relevant to waveguide design and analysis is the so-called waveguide dispersion which refers to the wavelength dependence of the propagation characteristics of the optical wave guided in a waveguide. Waveguide dispersion is an effect caused only by the geometric confinement imposed by the waveguide on the light. With Beamlab’s function dispersionsolver, a variety of waveguide dispersion related parameters such as the mode field diameter, effective mode area, modal group delay, differential group (mode) delay etc., can be evaluated either as a function of wavelength or normalized frequency, as has been already exemplified on this demo page. These parameters can be evaluated either with the material dispersion included or not. In a real waveguide, however, the total dispersion is of course always determined by a combination of both material and waveguide dispersion and therefore often collectively called chromatic dispersion.

For this release, the function dispersionsolverwas not only improved in terms of calculation accuracy but also enhanced to allow the evaluation of dispersion parameters at a single wavelength (or normalized frequency) without the need to scan through a range of wavelengths (or normalized frequencies).

Release notes

New features:

  • Add possibility to use materials that are described by a wavelength dependent complex refractive index in form of tabulated data.
  • Add new materials Ag, Al, Au, CaF2, Cu, Ge, H2O, LiNbO3, MgF2, and TiO2 to the material database.
  • Add possibility to evaluate dispersion data at a single wavelength (or normalized frequency).
  • Add mode field diameter calculation according to Petermann II equation and assign it the name MFD2. The effective mode diameter (derived from the effective mode area) has been renamed to Deff.
  • Add new parameter DispersionWaveguideParameters defined as structure array with fields CoreWidth, CoreIndex, and CladdingIndex to allow the definition of the corresponding values outside the waveguide function for more flexibility in deriving the normalized propagation constant and normalized frequency.
  • Add new function plotindex which displays the refractive index (either real or complex) of a specified material as a function of wavelength. Accordingly, the plot functionality in the function getmaterial was removed.
  • Add parabolic taper transition to singlecore and plc waveguide functions.
  • Add new parameter PhaseUnwrap which allows one to display the unwrapped phase (i.e., removing any discontinuities due to 2π phase jumps) in all slice plots displaying a phase profile.
  • Add possibility to use a nonlinear refractive index in waveguide functions singlecore and multicore.
  • Add new parameters BendRadiusEnd, BendRadiusTransition, and BendRadiusTransitionFunction to waveguide functions singlecore, multicore, plc, and rib which allows one to define a linear or custom bend radius transition between the begin and end of the waveguide section.
  • Add new parameter SectionTitleColor to be able to adjust the color of the section titles when displayed during monitor.


  • Improve performance of the index smoothing method in all waveguide functions especially for those cases where the product of SmoothingWidth and SmoothingLevel exceeds 10.
  • Improve demo scripts.
  • Improve documentation.

Parameter changes:

  • Rename parameter DispersionGraphType to DispersionEvaluationType in accordance with the possibility to evaluate dispersion data at a single wavelength or normalized frequency.
  • Rename parameter CustomDatabase to Database in getindex, getmaterial, and plotindex as this parameter may refer to both internal and external material databases.
  • Rename the fields EffectiveIndex and PropagationConstant of dispersionsolver output structure to Neff and B.
  • Change units of group delay and differential group delay to ns/m and ps/m to improve readability of dispersion data.
  • Include zero in the value range of the PhaseDisplayThreshold parameter.

Bug fixes:

  • Fix bug in modesolver when using x-polarization in conjunction with a bent waveguide.
  • Fix bug in plc, rib, and multicore waveguide functions.
  • Fix bug when displaying quiver arrows in field plots using the parameter Quiver.
  • Fix bug with respect to parameter caching in input field functions.
  • Various minor bug fixes.