This example demonstrates how Lumerical STACK and optiSLang can be combined to optimize the geometry of a planar OLED structure against multiple figures of merit (FOMs). The thicknesses of the OLED layers are optimized to maximize the optical efficiency, color coverage, and minimize the color shift with viewing angle.
This example is based on the simulation shown in the webinar “Optimize Your Display with Ansys optiSLang, Lumerical and Speos”, available for free on our website. Please see that webinar for more details on this simulation workflow.
The OLED design is from [1]. This OLED design is also used in the Planar OLED Microcavities - Color Shift and Extraction Efficiency example. A step-by-step walkthrough for setting up this optiSLang workflow from scratch can be found in the Ansys Learning Hub here: Tutorial: Optimization of a planar OLED using Ansys optiSLang and Ansys Lumerical .
Overview
Understand the simulation workflow and key results
In this example, Lumerical STACK is used for the simulation of the light emission from the OLED stack and optiSLang is used for the optimization of the structure. The STACK simulation results are also exported in a format that can be imported by Ansys SPEOS for device visualization and photometric analysis. For more information, please visit Appendix SPEOS export setting.
Step 1: Run STACK Simulation
To demonstrate the results of the STACK simulation, an individual simulation is run from Lumerical FDTD and the results are plotted. First, a STACK simulation is created that calculates the emission from an OLED stack over visible wavelengths and all emission angles. From the emission properties returned by STACK, the performance metrics are calculated as a function of the layer thickness parameters.
Step 2: Generate Metamodel in optiSLang
At this step OptiSLang runs many iterations of this scripted calculation while varying the parameters. Sensitivity analysis is performed to determine the most important parameters and a metamodel is created with a reduced number of input parameters. The Lumerical simulation model is integrated in optiSLang using the dedicated Lumerical node, while the Solver Wizard automatically identifies input parameters and responses. This enables a straightforward workflow setup without custom scripting and allows optiSLang to seamlessly automate and evaluate different design variants.
Using the Adaptive Metamodel of Optimal Prognosis (AMOP), optiSLang automatically performs an automated Design of Experiments (DoE), applying advanced sampling strategies to efficiently explore the design space. For each sampled design, the underlying simulation is executed and the corresponding response values are collected.
The generated simulation data is used to build AI/ML-based surrogate models that approximate the system behaviour. These models provide valuable design understanding by identifying the most influential input parameters, quantifying parameter sensitivities, and visualizing the relationship between inputs and performance metrics. This enables engineers to quickly explore the design space, understand design trade-offs, and identify best design regions for further optimization.
Step 3: Optimization in optiSLang
Finally, optiSLang runs an optimization to determine a range of optimum parameter sets. One-Click Optimizer is used to perform direct multi-objective optimization, balancing optical performance (MCS, CGC) against efficiency (EQE). Due to strong nonlinearities and localized response peaks, the optimization is carried out using the original Lumerical simulations instead of the surrogate models generated during the sensitivity analysis. The optimizer automatically explores the design space, identifies Pareto-optimal solutions, and provides clear visibility into the achievable trade-offs, helping engineers select the design that best meets their performance targets.
Run and Results
Instructions for running the model and discussion of key results
Step 1: Run STACK Simulation
- Open and run the file oled_simulation.fsp in Lumerical FDTD.
When the “oled_simulation.fsp” model is run, the FOMs are calculated for the specified design inputs and printed to the Result View. Analysis group tab includes a series of helper functions for running the STACK simulation, calculating the FOMs, and converting the rayset results into a format suitable for import into Ansys SPEOS.
The parameters and results used by optiSLang are defined with the listScriptParameters and the listScriptResults functions, respectively. In this optimization we have defined performance metrics for the extraction efficiency (EQE), color representation (CGC), and viewing angle color distortion (MCS). For more information on the definition of these FOMs please see the Appendix.
The CGC and MCS can be visualized in a CIE 1976 chromaticity diagram. The CGC is the gamut coverage or color span for these RGB pixels at normal incidence relative to a standard display gamut:
From this plot we can see that the color gamut of the initial OLED design has fairly poor overlap with the target D65-P3 gamut. The MCS is the shift in color coordinate of each pixel as the viewing angle is rotated up to 60 degrees:
In this plot, we can see a significant shift in the red and green pixels for this initial design.
Step 2: Generate Metamodel in optiSLang
- Open the file oled_optimization.opf in optiSLang.
- Double click the "AMOP" module to view its settings. This is the metamodel sampler which specifies settings such as optimization parameters, criteria, and the number of samples.
- Go back to Scenery, right-click on the "AMOP" module, and select Show Postprocessing . The file already contains the results for this metamodel.
In the postprocessing results of the AMOP module the model quality is reported in the CoP matrix:
We can see that the cav_B, cav_G and cav_R layer thickness (NPB material) are the most critical parameters for the three FOMs. Capping and polymer layers are represented as parameters cap_B, cap_R, cap_R, enc_2, and enc_4. They have a negligible effect on the FOMs and can be neglected in the optimization. For cavity labeling to the design structure layering of the OLED please go to Appendix section Layer thickness labeling.
Clicking on each of these values also updates the 3D surface plot, representing the dependency of the metamodel outputs on the specified inputs. For example, clicking on the EQE Total value in the middle row of the "Total" column displays this plot:
The linear correlation matrix of the various parameters and results is also shown in the postprocessing results:
We can see that there is a very high negative correlation of -0.75 between the MCS and CGC results. Due to this high correlation, these FOMs can be combined into a single FOM, equal to (MCS - CGC)/10. This new FOM will be minimized along with the EQE FOM in the optimization step.
Step 3: Run Optimization in optiSLang
- Double click on the " OneClickOptimization (OCO) " system. The settings for this system including the optimization method, maximum number of samples, and criteria are set up for this module.
- Go back to Scenery, right-click on the module, and select Show Postprocessing . The simulation file is already populated with the optimization results. The overview of all individual designs is shown in a Pareto plot (2D or 3D). The best designs with their input values can be selected here.
The optimization was performed using One-Click Optimization (OCO) in Ansys optiSLang. OCO automatically generates AI-based prediction models from the simulation results and uses them to efficiently explore the design space and identify promising solutions. Designs are continuously validated against the STACK simulations, combining the speed of AI-assisted optimization with the accuracy of physics-based simulations. Since MCS and CGC are combined into a single objective, the optimization considers two objectives: optical performance and extraction efficiency.
The FOM values for the designs are shown in the Pareto plot. You can click and drag to zoom in on the Pareto front representing the optimum designs:
As there are two FOMs there is no single best design, so a range best designs are returned as the Pareto front. The user can then select the best design from the Pareto front. Clicking on the points in the Pareto plot updates the other figures with the parameter and result values for that design:
Important Model Settings
Instructions for updating the model based on your device parameters
optiSLang Project Files
This section provides additional information about working with the OptiSLang project files, including some of the prompts when opening the project.
Updating the Launcher Directories
The directory for the Lumerical launcher can be different for each user for example depending on the installed version. For the Lumerical block in the "AMOP" module make sure the directory is selected correctly. For this go to the Settings tab and check the executable path.
Relocating the Files
When opening optiSLang you might get a prompt related to finding the associated files from other simulations. You might decide to use one of the three options (e.g. automatic or custom relocating) depending on your preferences.
Image export from Lumerical model designs
Once the AMOP sensitivity analysis in OptiSLang has finished, users can execute the “export_lumdesign_images.py” Python script. For each numbered design folder (DesignXXXX), the script exports the CIE 1976 Chromaticity and Color Gamut plots as PNG files.
Referenced Values
If the initial input values are different between the saved component level simulation and the one specified in optiSLang, you will get a prompt asking you to choose the value of interest. Choose either of the two options depending on which values you want to proceed with.
Newer Versions
You might receive a prompt stating the file has been created with a former version of optiSLang. This shouldn't pose any issues as long as you keep using the newer release of the software.
Taking the Model Further
Information and tips for users that want to further customize the model
Using New Input Parameters
The input parameters for optiSLang are defined in the script file oled_optislang.lsf in the function listScriptParameters . See the Scripting section of the optiSLang-Lumerical interoperability documentation for more information on how to use this function to define the optiSLang parameters.
Optimizing for Other Results
The results used by optiSLang are defined in the script file oled_optislang.lsf in the function listScriptResults . How the results are computed from the parameters is defined in the function computeScriptResults . See the Scripting section of the optiSLang-Lumerical interoperability documentation for more information on how to use these functions to define the optiSLang results. The optimization FOMs are defined from the simulation results in the Criteria tab of the evolutionary algorithm module.
Running the Project
Currently in optiSLang, the metamodel and optimization results for the given settings are stored in the project file. To apply any changes you make and obtain new optimization results, click on the run button located at top.
Additional Resources
Additional documentation, examples and training material
Related Publications
- Guanjun Tan, Jiun-Haw Lee, Sheng-Chieh Lin, Ruidong Zhu, Sang-Hun Choi, and Shin-Tson Wu, "Analysis and optimization on the angular color shift of RGB OLED displays," Opt. Express 25, 33629-33642 (2017)
See Also
- STACK GUI - OLED Device Introduction
- OLED Methodology
- Planar OLED Microcavities - Color Shift and Extraction Efficiency
- Optimizing Traveling Wave MZM - optiSLang Interoperability
- Optimizing Wire Grid Polarizer - optiSLang Interoperability
Appendix
Additional background information and theory
Using Scripted Parameters and FOMs
- Open the file oled_simulation.fsp in Lumerical FDTD.
- Run the script file oled_simulation_script.lsf.
When the script is run, the FOMs are calculated for the specified design inputs and printed to the Script Prompt. The script “oled_simulation_script.lsf” can be loaded to Optislang settings and get the input parameters and output responses as it is depicted in the image below:
SPEOS export setting
For SPEOS export file, users should activate the export option included in the function ListScriptResults. This can easily be done by setting the “SPEOS_write” parameter at script line 41 of “oled_simulation_script.lsf” to True. After running the script then a “.mat” format file will be exported for every design of the Optislang optimization, where it can be imported in SPEOS.
Layer thickness labeling
The image on the left depicts the layered design of the OLED consisting by a series of layers with distinctive red, green and blue subpixel structures. It can be seen the layer thickness that we use in the example to optimize with Optislang. The image on the right provides a mapping between the layer parameters used in the Lumerical model, such as t_cav, t_cap, and t_enc, and the corresponding physical layers labeled d1, d2, d3, etc. in the structure (left image).
Figure of Merit Definitions
The figures of merit used in the example are defined in this section.
External Quantum Efficiency
The External Quantum Efficiency (EQE) measure of the efficiency of the device and is defined as the ratio of injected charge carriers to output photons over all viewing angles. It is defined as:
$$EQE = \int_{400nm}^{800nm}\frac{\eta(\lambda)}{I_{AlQ_3}(\lambda)}d\lambda$$
where \(\eta\) is the extraction efficiency and \(I_{AlQ_3}\) is the emission spectrum of the emitting layer. Technically EQE would include the electrical efficiency; however, we have ignored this source of loss and assumed a 25% electro-optic conversion, due to other allowed transitions that are not radiative. This is reasonable as we have used bounds to enforce layers thicknesses that would not affect charge transport significantly.
Color Gamut Coverage
The Color Gamut Coverage (CGC) is a measure of the possible range of colors that can be emitted by the OLED. The gamut of the device is the area inside the triangle with corners located at the three pixel colors in RGB u' v' coordinates in the CIE 1976 color space. We want this gamut to match an industry standard gamut, DCI-P3, as closely as possible. The CGC is defined as:
$$CGC = \frac{A_{display} \cap A_{standard}}{A_{standard}}$$
Where \(A_{display}\) is the area of the gamut of the simulated device and \(A_{standard}\) is the industry standard reference gamut DCI-P3.
Maximum Color Shift
The maximum color shift (MCS) is a measure of how much the pixel colors change as a function of the viewing angle. It is defined as the maximum Euclidean distance between the pixel color coordinates in the CIE 1976 color space as the viewing angle changes from 0 to 60 degrees.