lumopt2.fom#
The figure of merit module defines the objective functions for optimization.
Figure of merit (FOM) module for inverse design optimization.
This module provides classes for defining and computing figures of merit based on simulation results from field and port monitors. The FOM determines what is being optimized in the inverse design problem.
Classes#
- Fom
Factory function that returns FieldFom or PortFom based on monitor types.
- BaseFom
Base class providing shared FOM infrastructure (advanced use).
- FieldFom
FOM calculator for field-based (DFT monitor) simulations.
- PortFom
FOM calculator for port-based (waveguide mode) simulations.
- FieldResults
Container for field monitor simulation results.
- PortResults
Container for port monitor simulation results.
Examples#
Port transmission optimization (using factory):
>>> from lumopt2.fom import Fom, PortResults
>>> port_out = PortResults('port_output')
>>> def fom_function(port):
... return port.transmission.values
>>> fom = Fom(port_out, fct=fom_function) # Returns PortFom instance
Field intensity optimization (using factory):
>>> from lumopt2.fom import Fom, FieldResults
>>> import autograd.numpy as anp
>>> field = FieldResults('focus_region')
>>> fom = Fom(field, fct=lambda f: anp.sum(anp.abs(f.values) ** 2)) # Returns FieldFom instance
Factory function to create the correct FoM subclass based on the simulation result.
FoM calculator for field region results.
FoM calculator for port results.
Base class providing shared FoM infrastructure.
Containers for simulation results from field region and ports.