Welcome to BeamLab 2.2! We are pleased to announce our latest release which is packed with exciting new features as well as performance and stability improvements. Read on to learn more about some of the highlights or directly jump to the release notes.
Creating a waveguide’s refractive index distribution via an image file
One of BeamLab’s strengths is a simple user-interface that does not require the user to learn how to use a proprietary CAD tool to set up the simulation model. As such, BeamLab comes with a large number of pre-defined waveguide functions to enable a quick and easy setup of basic waveguide structures such as tapers, splitters, couplers, etc. Although these functions and their combinations cover a wide range of applications, it is also clear that they could never fulfill the design needs with respect to all thinkable waveguide structures. To break through a potential design limitation based on pre-defined functions and thus provide our users with greater flexibility in designing and simulating the waveguides of their choice, we added this time a new waveguide function dubbed importedwaveguide
that allows one to import and create waveguides based on a two-dimensional image representing the refractive index distribution of the waveguide’s cross-section in either the x-y, x-z, or y-z plane. In the following example, we show the refractive index contour and respective field propagation through a planar waveguide representing the input star coupler of an arrayed waveguide grating that was created by means of a black & white PNG image drawn with a third-party CAD software and imported into BeamLab. In this specific example the image represents the waveguide’s cross-section in the x-z plane. The waveguide’s thickness was separately defined by the optional parameter Width
of the function importedwaveguide
to be 2 µm.
PNG image (left) and two-dimensional intensity distribution (right)
Three-dimensional intensity distribution displayed with black mesh lines (illustrating BeamLab’s extensive plot capabilities)
Cascading simulations with different grid sizes and resolutions
A simulation model in which the lateral extension of the propagation beam varies by a large factor, e.g., hundred or more, can be computationally very expensive as the resolution for the whole model needs to be set according to the smallest extension or feature. In this release we added a function dubbed resizefield
that allows one to easily adjust the size and resolution of the output field of the previous calculation to the size and resolution of the next one and thus optimize calculation speed without sacrificing accuracy. In the following example, we illustrate this by focussing a collimated Gaussian input beam with a beam width of 1 mm into a waveguide core with a width of 5 µm by using a thin lens with a focal length of 2.5 mm. By splitting the simulation model into multiple sections, the grid size is gradually reduced from 2 mm to 60 µm and thus optimized to cover just the area where the beam’s field strength is mostly concentrated and significant enough to affect the propagation characteristics.
Intensity distribution of 1st section (lateral size: 2 mm, length: 1.05 mm) including a thin lens at z = 0.05 mm
Intensity distribution of 2nd section (lateral size: 1.5 mm, length: 1.2 mm)
Intensity distribution of 3rd section (lateral size: 0.4 mm, length: 0.25 mm)
Intensity distribution of 4th section (lateral size: 0.06 mm, length: 1.05 mm) including the waveguide
Calculating the electric and magnetic field simultaneously
Algorithms based on the beam propagation method mostly focus on the calculation of the electric field. However, for an accurate evaluation of the power flow throughout the simulation model it is essential to have also knowledge on the real part of the Poynting vector which in turn requires also knowledge of the magnetic field. Starting with this release, BeamLab offers the possibility to calculate the electric and magnetic field simultaneously and thus provides a means for the accurate evaluation of the Poynting vector. If the parameter FieldType
is set to 'EH'
, any intensity related calculation will be automatically based by default on the real part of the Poynting vector.
Exciting new demos
In this release we also expanded significantly our demo library. One of the new demos is dubbed nanf
and gives an example on how to calculate the eigenmodes of a nested antiresonant nodeless hollow core fiber (NANF). Among the various types of photonic crystal fibers developed so far, NANFs have attracted considerable attention in recent years for their potential to achieve for the first time a lower propagation loss over a broader wavelength range than conventional solid core fibers. The following figures depict the NANF’s cross-sectional refractive index and fundamental mode’s intensity distribution, respectively.
Refractive index distribution (left) and intensity distribution of the fundamental mode (right)
Another demo dubbed metal_slit
illustrates how BeamLab works with media that exhibit a complex refractive index such as metals. In this demo a metal slit made from Aluminium is illuminated with a Gaussian beam in width twice that of the slit. The following figures show the intensity distribution in the x-z plane for the cases where the input beam exhibits y (or TE) polarization and x (or TM) polarization, respectively.
Intensity distribution of TE-polarized (left) and TM-polarized (right) light propagating through a metal slit
Finally, a third demo that we would like to introduce here is the demo dubbed ronchi_grating_thick
which depicts the field changes in close vicinity of a “thick” (in contrast to thin elements of zero thickness) Ronchi grating. The refractive index of the substrate is 1.5 and the grating’s groove depth is chosen to generate a phase delay of π . The following figure shows the field distribution of the electric field’s real part in the x-z plane. At the grating’s output plane the beam’s phase alternates between 0 and π . The generation of such thick gratings whose thickness, surface profile and refractive index of the unit cell can be freely defined by the user is now enabled by the new function grating
.
Field distribution in close vicinity of a Ronchi grating illuminated by a Gaussian beam from the substrate side
Release notes
New features:
- Add new function
importedwaveguide
. This function allows one to create a waveguide whose x-y, x-z, or y-z refractive index distribution is externally generated and imported by means of a matrix or an image file. - Add new function
grating
which emulates a grating whose thickness, surface profile and unit cell refractive index distribution is defined by the user. - Add possibility to calculate simultaneously the electric and magnetic field by specifying the new value
'EH'
inFieldType
. - Add possibility to use the parameter
UseParallel
in conjunction withmodesolver
to speed up mode calculations when the refractive index distribution is symmetric with respect to the x- and/or y-axis. - Add possibility to set
QuiverPeriod
in x- and y-direction independently. - Add possibility to define the parameter
WideAngleOrder
individually in each section. - Add new function
resizefield
. This function adapts the resolution of a field distribution from one bpmsolver calculation to the next. - Add new parameter
SlicesXYPlotXYStep
that allows one to adjust the plot resolution in the x-y plane of all field and monitor x-y plots. - Add new parameters
IndexSlicesXZ
,IndexSlicesXZGraphType
,IndexSlicesYZ
andIndexSlicesYZGraphType
toindexplot
that allow one to generate x-z and y-z plots of the refractive index distribution. - Add new parameters
CoreRotation
andCoreRotationEnd
to waveguide functionmulticore
to allow one to rotate the cores of each core ring independently of the total waveguide rotation. - Add new parameter
AnisotropyRotationTransition
to waveguide functionssinglecore
andmulticore
to define the way the orientation of the anisotropy changes fromAnisotropyRotation
toAnisotropyRotationEnd
. - Add new parameter
RotationTransition
to waveguide functionsinglecore
to define the way the core rotation angle changes fromRotation
toRotationEnd
. - Add new parameters
Angle
,Polarization
, andPower
toimageinput
in accordance with the other input field functions.
New or modified demos:
- Add demo
awg
which shows the beam propagation through the input star coupler of a simplified arrayed waveguide grating. - Add demo
waveguide_coupler
which shows an example on how to use the new functionresizefield
to simulate the coupling of a Gaussian beam with a beam width of 1 mm to a waveguide with a core width of 5 um. - Add demo
nanf
which calculates the field distributions and effective refractive indices of the eigenmodes of a nested antiresonant nodeless fiber. - Add demo
metal_slit
which shows the beam propagation through a metal slit for both TE and TM polarization. - Add demo
photonic_lantern_modeselective
which shows the beam propagation through two mode-selective photonic lanterns in a back-to-back configuration. - Add demo
fiber_anglepolished
which shows the beam propagation through a single-mode fiber that is terminated with an 8 degree angle-polished (slanted) end face. - Add demo
fiber_loop_adiabatic
which shows the beam propagation through a fiber loop with an adiabatic bend radius transition. - Add demo
ronchi_grating_thick
which shows the beam propagation through a thick Ronchi phase grating. - Add demo
blazed_grating
which shows deflection of a Gaussian beam when propagating through a blazed phase grating. - Rename demo
ronchi_grating
toronchi_grating_thin
. - Rename demo
fiber_loop
tofiber_loop_abrupt
.
Enhancements:
- Improve the performance of
modesolver
calculations. - Improve warning and error messages.
- Improve documentation.
Parameter changes:
- Rename parameter
CalculationCenter
toOrigin
. In addition to defining the calculation origin in the x-y plane, this parameter now allows one to define also the z-coordinate of the calculation origin. In other words, the calculation origin does not necessarily need to be[0,0,0]
but can be set to any location in the three-dimensional space. - Rename parameter
RingAngleOffset
toRingAngle
inmulticore
. - Rename parameter
RingAngleTransition
toRotationTransition
inmulticore
.RotationTransition
defines the transition of the rotation angle fromRotation
toRotationEnd
,RingAngle
toRingAngleEnd
andCoreRotation
toCoreRotationEnd
.
Bug fixes:
- Fix bug in input functions
uniforminput
,imageinput
, andgaussinput
. - Fix bug in
thinaperture
andthinlens
. - Fix bug when displaying quiver arrows in field plots using the parameter
Quiver
. - Fix bug with respect to parameter
SlicesXZYZPlotXYStep
. - Various minor bug fixes.