Zemax - Lumerical RCWA dynamic linking updates & known bugs

  • 7 February 2023
  • 0 replies

Userlevel 6
Badge +2

Japanese version: Zemax OpticStudio - Lumerical RCWA 動的連携 DLL の アップデートと既知のバグ情報 | Zemax Community

1. Overview

 This post provides the following two contents:

  1. Maintaining a list of improvements & bugfixes history. Users can easily check when and what problems are solved and what improvements were made.
  2. Gathering feedbacks or a place for users to discuss.:)

For details of how to use this feature, see the following knowledge base article:
Dynamic workflow between Lumerical RCWA and Zemax OpticStudio

For downloading the plugin for legacy versions, see the following community post:


2. Useful Resources

  1. Dynamic workflow between Lumerical RCWA and Zemax OpticStudio
  2. Exit Pupil Expander with 1D-2D Gratings
  3. RCWA Solver - Simulation Object
  4. RCWA Solver Introduction


3. Beta version download

DLL: Dynamic Link RCWA | Zemax Community


4. Bugfixes and improvements

Memory Leak

In some rare cases, when running the dynamic link, the memory usage of Lumerical can increase unusually soon and then cause crashes. This will be fixed in lumerical-sub-wavelength-dynamic-link-2024R2.dll.


Lumerical window keeps reopening: residual issue

This is some residual issue from the previous bug. If there are multiple gratings, loading same fsp file, with different Link Lumerical parameter value, Lumerical window will keep reopening, which leaves many black windows. This will be fixed in lumerical-sub-wavelength-dynamic-link-2024R1-2.dll.


Lumerical window keeps reopening when parameters are changed

There was a bug that the DLL keeps resetting the link to Lumerical whenever there is a parameter change. The result is the calculation is very slow and/or there are many redundant empty Lumerical window. This will be fixed in lumerical-sub-wavelength-dynamic-link-2024R1-2.dll.


Curved surface is supported

Now the grating can be defined on a curved surface. This will be added in lumerical-sub-wavelength-dynamic-link-2024R1-2.dll.


Lattice vector angle = 90 not updated in .fsp

A bug is fixed where the lattice vector angle value is not updated from OpticStudio UI to Lumerical when it’s set to 90. This will be fixed in lumerical-sub-wavelength-dynamic-link-2024R1.dll.


Lattice vector angle

Following the new feature in Lumerical RCWA about non-orthogonal lattice, dynamic link will also have a parameter to support. This will be added in lumerical-sub-wavelength-dynamic-link-2024R1.dll.


Show/Hide Lumerical window without reopening OpticStudio

Previously, if users switch Link Lumerical between 1 and 99, the status of hiding or showing Lumerical window cannot be changed. Users needed to restart OpticStudio to get the change. Now this is not needed. Note when switching from 99 to 1, make sure you don’t close the Lumerical Window. The window is still needed when you switch back to 99. This will be added in lumerical-sub-wavelength-dynamic-link-2024R1.dll.


Save Lumerical systems in .fsp files for every call from OpticStudio

Now if a string property “saveas” is added with a filename, every time when OpticStudio calls Lumerical for calculating RCWA, a .fsp file will be saved so users can check if there is any issue. This will be added in lumerical-sub-wavelength-dynamic-link-2024R1.dll.


New parameter “has metal”

For now, if the Luemrical grating includes metal, the dynamic link will not work because the input and output power don’t conserve in RCWA. This is solved by adding a new parameter so that users can tell the dynamic link the gratings are supposed to have metal and no need to check power conservation. This will be added in lumerical-sub-wavelength-dynamic-link-2024R1.dll.


Improved stability

Currently, if users read a bad fsp file or set bad parameters for the dynamic link, the dynamic link will keep calling Lumerical because the calculation fails. This can cause the simulation hangs. This is now fixed by letting the DLL to only calculate once for bad fsp file or parameters. This will be implemented in lumerical-sub-wavelength-dynamic-link-2023R2.dll.


Grating layout update in real time

So far, when the grating parameters are edited in OpticStudio, the geometry layout in Lumerical UI won’t update immediately. Now as soon as the parameters have been changed in OpticStudio, the grating geometry in Lumerical UI will update immediately. This will be added in lumerical-sub-wavelength-dynamic-link-2023R2.dll.


Max Order X/Y cannot be negative

Currently if the Max Order X/Y are negative, the k vector domain in Lumerical RCWA is not correctly set by the dynamic link. This will be fixed in lumerical-sub-wavelength-dynamic-link-2023R2.dll.


Version of Ansys Common License

This is not a bug of dynamic link but will affect dynamic link users. There is a workaround as described below.

A rule of thumb is, when using the dynamic link, Lumerical must be opened earlier than OpticStudio. If OpticStudio is opened first, it will trigger a older version of Ansys Common Licensing 2022 R2, as shown below. Lumerical 2023 R1.2 will not be able to be opened when this old Ansys Common Licensing is running. Consequently, the dynamic link will not work either.

If this happens, users must close OpticStudio and the Ansys Common Licensing 2022 R2, then open the Lumerical, which will trigger the new Ansys Common Licensing 2023 R1 as below. Then it’s safe to open Lumerical and dynamic link. This will be fixed in next OpticStudio release 2023 R2.


 Two interfaces overlap cause crash

This is not a bug of dynamic link but will affect dynamic link users. As title, if we define two interfaces at exactly same position, Lumerical will crash. This is fixed in next Lumerical 2023 R1.3.


Phase of diffracted ray

The phase of diffracted rays were not correct. This mainly affects when you calculate coehrent result, such like Huygens PSF. This is fixed in lumerical-sub-wavelength-dynamic-link-2023R1-2.dll.


Grating structure in Lumerical window updates immediately

Previously, when users set up parameters in the OpticStudio UI, the grating geometry in Lumerical is not updated immediately. The new parameter value will only be set to Luemrical and update the structure when a ray is traced through the grating object in OpticStudio. Now the DLL is improved to reflect the geometry change in Lumerical UI as soon as users change the value in OpticStudio UI. This will be added in lumerical-sub-wavelength-dynamic-link-2023R2.dll.


Staircase + tangential vector field causes crash

As title, the two options cannot exist together, otherwise Lumerical will crash. This is fixed now in Lumerical 2023 R1.2.



0 replies

Be the first to reply!