lumopt2#
The Lumerical photonic inverse design module lumopt2 provides a framework for the inverse design of photonic devices using Ansys Lumerical FDTD™. The following pages contains API documentation for the lumopt2 module.
Note
lumopt2 is only available in Ansys Lumerical FDTD™ version 2026 R1.2 and later.
Common lumopt2 API#
These classes are commonly used in the lumopt2 workflow, and you can directly initialize them from the top-level lumopt2 module.
Classes and functions for setting up the optimization project.
Classes
Coordinates the optimization workflow for photonic inverse design. |
|
Immutable result object returned from an optimization run. |
|
Main project class that coordinates parametrization, FOM, and solver. |
|
A class used to modify the base simulation in the Project. |
|
A class to manage the FDTD simulation session. |
|
FDTD simulation status codes. |
|
Exception raised when a simulation fails. |
Classes and functions for handling simulation results and figures of merit.
Classes
Container for port monitor simulation results. |
|
Container for field monitor simulation results. |
Functions
Classes and functions for parametrizing the simulation geometry.
Classes
Parametrized geometry using a user-defined function to map parameters. |
|
A Beziergon - a polygon where edges can be linear or cubic Bezier curves. |
|
A linear segment connecting two vertices |
|
A cubic Bezier curve segment. |
|
Combine multiple parametrizations into a single parametrization. |
|
Specification for a segment in Composite Bezier path.gy. |
|
Specification for splitting a segment into a parametric segment |
|
Specification for making a segment parametric |
|
Specification for a parametric vertex adjustment. |
|
A 3D rectangular box defined by spans and centers or min/max coordinates. |
Classes and functions for setting tools to calculate the gradient.
Classes
Wrapper for scipy.optimize.minimize optimizers, particularly L-BFGS-B. |
|
Scales parameters between physical and normalized spaces. |
Functions
Validate parameter bounds and return lower/upper arrays. |
|
Extract FOM value from objective function result. |
|
Extract FOM and gradient from objective function result. |
|
Compute the gradient of the figure of merit using finite difference. |
|
Validate the adjoint gradient by comparing it to a finite difference gradient for specified parameter indices. |
|
Finite difference convergence test: compute the finite difference gradient for a range of perturbation values and plot the results. |
Classes and functions for managing computational resources to run optimization.
Classes
Class to manage simulation jobs locally. |
|
Class representing a single job. |
Classes and functions for visualizing optimization results.
Classes
Base class for optimization callbacks. |
|
Container for managing multiple callbacks. |
|
Record the numerical history of one optimization run to a text file. |
|
Callback that visualizes optimization progress with live matplotlib plots. |
|
Abstract base class for a single subplot in a |
|
Immutable per-update snapshot handed to every panel's |
|
Live plot of the figure of merit vs. |
|
Live plot of the current geometry on top of the initial baseline. |
|
Live plot of the gradient L2 norm vs. |
|
Live plot of an FDTD monitor result (field component, S-parameter, ...). |
Classes and functions for logging, profiling, and other utilities.
Classes
Aggregate wall-clock time per named category. |
Functions
|
Configure the |
All lumopt2 modules#
Modules for project configuration, optimization configuration, and FDTD session management.
Modules to capture simulation results and define figures of merit from them for optimization.
Modules to parametrize the simulation.
Modules to set up and perform the optimization algorithm.
Utility modules.