2019b Release Notes

2019b-R1 Release Notes

New Features

Shared Features

Unified Product Launcher

The single, unified launcher for all products allows designers to browse the application gallery, download examples, and obtain trial licenses for all Lumerical’s offerings within seconds. With a broad range of photonics examples available, designers can go from design concept to physical simulation and optimization quickly and easily, even for complex devices and systems involving challenging multiphysics effects.

Unified Product Installation

Lumerical products are now installed together using a single unified installer, which simplifies the process of installation and software trial. By default, installation will remove previous versions; however, when installing a new major release of the software the option to keep the previous version is now available. Each major release (and its updates from minor releases) will be installed under a folder with the major release name (e.g. 2019b), which allows users to have multiple versions installed in separate folders (e.g. 2019b, 2020a, etc.). For more information please visit the Installation Manual in KB.

Directly define parameter value in Visualizer

Users can now directly define parameter values in the Visualizer in ‘slice’ mode without needing to use the scroll bar. If it is set in-between allowed values then the field will automatically snap to the nearest allowed value for that parameter. See the idea in IX.

Color bar labels and range in original scale

When using logarithmic or signed logarithmic scale, the color bar labels and color bar range are now specified in the original linear scale instead of the log scale units, which simplifies the plot interpretation.

Script command to calculate the convolution of matrices

The new script command conv2 calculates the convolution of two 2D matrices. For more information, see the KB documentation.


Import delta_n and delta_k vs. carrier concentration for index perturbation

The index perturbation material in FDTD and MODE now has a custom model to load index perturbation due to carrier concentration besides the existing Drude and Soref-Bennett model. The custom model allows users to load delta_n and delta_k values as a function of electron and hole density from files. This will allow modeling index perturbation due to carrier density variations that cannot be modeled using the existing models such as in III-V materials. See the idea in IX.

Preserve user view, avoid collapsing object tree

The user view CAD window and the state of the objects tree are now preserved in the Finite-Difference and Finite-Element IDEs, so that if the user saves the file and re-opens it or runs a simulation, the view in the CAD view port as well as the state of the objects tree do not change. This include editing the objects in the objects tree as well which no longer triggers a tree collapse when applying the edits. See the idea in IX.

Sorting of modes in the mode list of FDE

The mode list in FDE now allows users to sort the modes based of different values such as effective index, loss, or TE/TM polarization fractions making it extremely convenient to find the right mode(s) out of a long list of modes. See the idea in IX.

More mode information in FDTD ports and other mode injection/analysis objects

FDTD ports and monitors now report loss and TE polarization fraction as results so that they can be accessed from the Result view window as well as from the script environment. This feature is also available in mode sources and mode expansion monitors in FDTD and varFDTD. See the idea in IX.

Hybrid meshing in CHARGE and HEAT solvers

The new hybrid meshing option in the CHARGE and HEAT solvers allows users to mesh and simulate large geometries with thin features more easily. Besides the hybrid meshing option, the HEAT solver also offers a third meshing option that can be used for complex geometries that cannot be meshed (or are hard to mesh) with the existing meshing options.

Improved accuracy in importing large geometries from STEP files

Users can now import large (mm scale) geometries from STEP files with higher accuracy by changing the ‘length scale’ to appropriate unit (e.g. mm). The STEP import UI also offers a scaling option to the user when importing the geometries.


Simpler multi-source simulations with ONA

When running a multi-source simulation with the ONA and electrical sources (e.g. DC source) the user no longer needs to make the sample rate consistent between all the sources manually. In all ONA driven simulations, the ONA now sets the sample rate of the simulation and all sources connected to the same circuit during run-time. This means the user can now simply drag and drop their sources for a multi-source simulation and click Run without needing to update the sample rate of the sources manually. The sample rate of the other (electrical) sources always reset back to the user defined (or default) value after the simulation. See the idea in IX.

Bug Fixes

Shared Features

  • Corrected error messages when assigning variables to some script functions.
  • Pop-up windows do not steal focus from other applications.
  • Script commands feval and eval now stop execution upon error or break.
  • Script file editor now correctly saves commenting changes when running script.
  • Script command setplot now sets color bar limits properly.
  • Fixed script error when raising negative numbers to powers.
  • Fixed problem in Python API that increases memory usage when sending data.
  • Matrix data is now properly displayed with View data in the Visualizer.
  • Fixed installation failures caused by .Net Framework 2.0 dependency.
  • Fixed problem with object selection of surface and ring objects in viewport.
  • When visualizing datasets with multiple parameters and vector attributes, toggling between image and vector plots in the Visualizer now preserves the selection in the “Parameters” section.
  • Fixed option to Export to text file and clipboard in the Visualizer.


  • Fixed bug that prevented concatenation of nested sweep results.
  • The highlighting of the simulation object in the viewport of the Finite Element IDE now updates automatically as a different simulation object / domain is selected.
  • Simulation objects now get automatically re-drawn in the viewport of the Finite Element IDE following any updates to the properties of the object.
  • Fixed issues with the ‘kurtosis’ auto-reset in the implant doping object of the CHARGE solver.
  • Running system level script commands from the workflow management object in the Finite Element IDE no longer crashes the product.
  • Script command updateportmodes now remembers the user selected mode list when called a second time without arguments.
  • Removed confusing error message in FDTD when rerunning S-parameter matrix sweep with inactive ports that have saved data.
  • Frequency/wavelength value typed in the corresponding text field in the “Select frequency” window of FDTD and varFDTD farfield projection (and zbfexport in FDTD) is now used for searching and selecting the closest frequency/wavelength available in the data.
  • Fixed software crash in FDTD triggered by non-sensible injection axis or monitor type settings selected in ports, mode sources and mode expansion monitors.
  • Fixed issue that prevented running FDTD simulations over Infiniband on Linux.
  • Fixed software crash when superimposing structure contours on fields recorded by a monitor if symmetry/antisymmetry are enabled.
  • Fixed issues preventing data from S-parameter Matrix sweep in FDTD to be constructed and visualized correctly.
  • FDE solver is not affected by PML option selected in disabled boundary conditions.
  • Fixed software crash with eigensolver algorithm selection in EME.
  • Fixed problems with mode order when large number of modes are calculated in FDE.
  • Fixed issue that prevented setting ‘bent waveguide’ value in FDE through script command after a frequency sweep.
  • All properties of imported grid attributes can now be edited properly in the UI.
  • When creating a material via API with the addmaterial command, a string with the name of the new material is returned.
  • Fixed issue prompting user to “save as” a second time after clicking save during “save as”.


  • INTERCONNECT no longer throws an error during netlist import if the netlist has empty sub-circuit. It now warns the user and ignores the empty sub-sircuits.
  • Issues with correlation matrix not getting shown in the Result window of Monte-Carlo sweep object after reloading a project file has been fixed.
  • The ‘group delay’ option in the MODE waveguide in INTERCONNECT now works as desired.
  • Double clicking on installed libraries no longer allows users to edit the library name and prevents INTERCONNECT from crashing.
  • The TWLM now provides an appropriate error message if the simulation fails to converge due to low sample rate.
  • Right-clicking on the Design Kits in analysis mode now shows the proper behavior.

2019b-R2 Release Notes

New Features

Shared Features

Customized Line Plots

The visualizer now offers several new options to customize line plots. Users can change line color, type, and width, marker type and size, and even the location of the x-axis and y-axis for each line in the plot.

New ‘clearexcept’ Script Command

The new ‘clearexcept’ script command provides users with the option to clear the entire script workspace except for the variables specified by the user. Find more details about this script command here.


STACK Solver User Interface

The STACK solver in Lumerical’s DEVICE Suite now has its own user interface. Available in the Finite Difference IDE, the STACK solver object can now be added to the objects tree and be set up using the new editor. The editor allows the user to easily set up a multilayered stack and analyze using the full functionality of stackrt, stackfield, stackdipole, and stackpurcell. The editor also provides the option to export the entire STACK simulation setup to a script file for easy automation.

Mode Effective Area Calculation

The FDE solver in MODE now provides the effective area of the mode as a result. For more information about the effective area calculation refer to: FDE - Mode List and Deck.

Improvements to zbfexport and zbfimport

zbfexport’ script command now returns the position of the center of the data (same as the center of the monitor) in global coordinates. The ‘zbfload’ script command now allows for additional arguments to shift the origin of the data to be different from the center of the object where the data is loaded.


Installer for CML Compiler

CML Compiler now comes with its own installer for easy installation. The installer is available for both Windows and for Linux operating systems.

Traveling Wave Electrode in Electrical Phase Shifter Photonic Model

The photonic model for electrical phase shifter in CML Compiler now supports traveling wave electrodes. The model still supports lumped model for the electrical contacts as well.

Bug Fixes

Shared Features

  • Fixed option to Export to text file and clipboard in the Visualizer.
  • Matlab export option in visualizer is now working for matrix datasets.
  • Single valued numpy float data are now supported by Python API.


  • Problems with Boolean operations on polygons have been fixed.
  • Index monitor can now report surface conductivity as a result.
  • Issues with updating surface conductivity values in 2D materials have been resolved.
  • Setting the ‘mesh refinement’ from user interface now works in FDTD.
  • The issue with not being able to set number of cells in EME properly from the user interface has been resolved.
  • VarFDTD index monitor reporting 1.#IND values at material boundaries has been fixed.
  • SSAC results are now available in sweeps and in solver tasks in workflow management objects.
  • Intermittent crashes during wavelength sweep in FEEM have been resolved.
  • Job manager in Finite Element (FE) IDE now properly displays the running state and other details.


  • The issue with the ‘fit tolerance’ option in the digital filter settings of some primitive elements in INTERCONNECT has been resolved.

2019b-R3 Release Notes

New Features

Shared Features

Python API Method to Print to the Script Prompt

The new ‘print’ script command can be used to print a string to the script prompt. This also allows users to print to the script prompt through Python API using ‘api.print’ command. For more information about this script command visit this page.

New ‘clearexcept’ Script Command

The new ‘clearexcept’ script command provides users with the option to clear the entire script workspace except for the variables specified by the user. Find more details about this script command here.

Get and set Properties of Objects as Structs in Lumerical Script

Starting from the 2019B-R3 release, the ‘get’, ‘getnamed’ and ‘set’, ‘setnamed’ script commands can get values of multiple properties and save them in a struct as well as set values of multiple properties from a struct in a single command.

Improvements to the Script Editor

There have been two improvements to the script editor. The ‘new’ button now has a drop down option to either create a new .lsf file or a new .py file. The script editor now also has a ‘change working directory’ button to easily set the working directory to the directory of the script file.

Edit Properties while Adding Simulation Objects

The script commands to add simulation objects now accept a struct as an argument that can be used to set the object properties with the same call. For example, users can now use the following to add a rectangle and set its name and x center at the same time. This feature is available for all the solvers within the DEVICE and SYSTEM Suite.

rect_prop = struct;

rect_prop = setfield(rect_prop,‘name’,’test_rect’);

rect_prop = setfield(rect_prop,’x’,5e-6);



Mode Overlap with Geometry

The power and impedance integration tab in the Modal Analysis window now has the option to select a geometry from the objects for overlap calculation. This allows for easy calculation of the mode overlap with, for example, the waveguide cross-section. For more information about the effective area calculation refer to: FDE - Mode List and Deck.


Electrical Loads for Photonic Verilog-A Models (CML Compiler)

Photonic verilog-A models generated by CML Compiler now model electrical loading effects (active elements only).

Electrical Equivalent Circuit Support During Co-Simulation in PD Model (CML Compiler)

The ‘photodetector_simple’ photonic model now supports co-simulation with electrical equivalent circuit to model loading effects.

2019b-R4 Release Notes

New Features

Shared Features

Easier Notation to Create/Initialize Cell Arrays

Cell arrays can now be created and initialized in a single script line, for example:
myCell = {"a", "b", 1, 2.3};
Find more information about cell arrays here. See the original feature request in IX.

Easier Notation to Create/Initialize Structure Arrays

Structure arrays (structs) can now be created and initialized in a single script line, for example:
a = {"one" : "fish", "two" : "fish", "red" : "fish", "blue" : "fish"};
Find more information about structure arrays here. See the original feature request in IX.


Improved Performance of FDTD GUI when Adding Large Numbers of Objects

Previously, adding ~100.000 objects to the Object Tree in FDTD could take several hours. Now users can perform this operation within minutes. This improvement benefits users that work with complex structures, such as metalenses, composed of large number of sub-wavelength elements. For more information about this improvement see this SPARK video. See the original feature request in IX.

New “Apply” button in Edit windows

Previously, to apply a change to an object from the Edit window it was necessary to click on “OK”, which closes the window. The new “Apply” button allows users to see the changes in the object before confirming the changes with “OK”. See the original feature request in IX.

Doping-dependent Electrical Conductivity in HEAT Solver

This new feature allows users to include the effect of doping on electrical conductivity when performing “thermal and conductive” simulations in HEAT. A common application of this feature is the design of thermally-tuned components for photonic integrated circuits where resistive heaters are tuned with the amount of doping in the material. See the original feature request in IX.


Option to Enable/Disable Design Kits

Users can now easily enable/disable compact model libraries (CMLs) installed in Design Kits using the tick box in the “Enabled” column of the Models list. In addition, it is now possible to install different versions of the same CML and easily switch between them to compare the results of a circuit simulation. For more information about this feature see this SPARK video.

Simulation Status added to varFDTD Solver Object in MODE

The varFDTD solver object now returns the result “status”, which denotes the current simulation status: 0 for simulation in layout mode, 1 for run to full simulation time, 2 for run to autoshutoff, or 3 for diverged. This is identical to “status” result returned by the FDTD solver object.


Install CMLs by Simple Drag-and-drop

Once a CML file is downloaded users can drag onto any Lumerical product to install it. This operation will bring up the dialog window for confirming the library package name and the destination folder.


Foundry Gallery in Lumerical Launcher

The new section “Foundry Support” under “INTEROPERABILITY Products” in the Lumerical Launcher showcases the available compact model libraries (CMLs) offered as part of PDKs with our foundry partners. Information for accessing those libraries is also provided there.

Cadence Interoperability Installation and Documentation Improvements

The installation experience for co-simulation with Cadence Virtuoso Interoperability has been improved and the documentation for this feature has been made more accessible.

2019b-R5 Release Notes

Bug Fixes


  • Fixed bug that cause the software to crash when editing a structure group.

2019b-R6 Release Notes

New Features

Shared Features

In Product Link to Ideas Exchange (IX)

All products now have a link to take the user to Lumerical’s Ideas Exchange (main toolbar in FD IDE and MODE FD IDE, tabbed toolstrip in FE IDE, and Help menu in all products), where users can submit their ideas (feature requests) and also vote for ideas currently under consideration for quick implementation.

In Product Link to Online Support

All products now have a link to take the user to Lumerical’s online support page (main toolbar in FD IDE and MODE FD IDE, tabbed toolstrip in FE IDE, and Help menu in all products), where users can create a support ticket and access Lumerical’s technical support.

Flexible Cell-Array Operations

Users can now call elements of a cell array using the same notation for ranges of elements as in a matrix. For example, users can save the first five elements of an existing cell named cell_example by using
new_cell = cell_example{1:5};
Cell arrays can now also be compared against scalars and strings. For example,
index = find(cell_example,"test_string");
will return the index of all the elements that are a string equal to “test_string”.

‘getfield’ Script Command Reports All Existing Field Names in a Struct

The getfield script command provides a list of all the fields of a struct when the command is used without the second argument, i.e., without providing the name of a field.


Performance Improvements to MQW solver

For weakly-coupled multi-quantum well structure simulations, users can now partition the quantum wells into different segments and solve separately using the new built-in feature in the MQW solver. Decoupling the calculation results in a much faster, yet reasonably accurate simulation of stacks with large number of quantum wells. Check out this KX post for more details.

Surface Charge-Density Boundary Condition (CHARGE)

The new surface charge-density boundary condition in the CHARGE solver now allows users to model the effect of interface charge at semiconductor-insulator or semiconductor-semiconductor interfaces on electrostatics and carrier transport. For more information see the documentation Boundary Conditions in CHARGE.

Play Recorded Movie from FDTD GUI

The movie recorded by the movie monitor in FDTD can now be played from within the product by clicking the ‘play’ button in the context menu of the monitor. The operation calls the default media player for .mpg files to play the movie. See the original feature request in IX.

H-field calculation in exact far-field projection

Previously, only the E-field was returned by the script commands that perform exact far-field projections (farfieldexact, farfieldexact2d and farfieldexact3d). Now users can also access the H-field. For convenience both E- and H-fields are returned as datasets for easy visualization. See the original feature request in IX.


TDECQ Simulation and Analysis in INTERCONNECT

INTERCONNECT users can now calculate the Transmitter and Dispersion Eye Closure Quaternary (TDECQ) figure of merit for PAM-4 transmitters designed for several classes of 200GHz/400GHz fiber links with maximal reaches ranging from 100m to 10km. For more details please see this example. See the original feature request in IX.

New Scripted Element Photonic Model (CML Compiler)

CML Compiler now offers a new scripted_element photonic model that can be used to create custom compact models that cannot be generated using the current set of photonic models available in CML Compiler. This allows users to create unique compact models and still package them with other compact models in the same compact model library.

New Container Element Photonic Model (CML Compiler)

CML Compiler now offers a container_element photonic model that can be used to create a container compact model with multiple children compact models.