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
fom.fom

Factory function to create the correct FoM subclass based on the simulation result.

lumopt2.fom.fom
fom.field_fom

FoM calculator for field region results.

lumopt2.fom.field_fom
fom.port_fom

FoM calculator for port results.

lumopt2.fom.port_fom
fom.base_fom

Base class providing shared FoM infrastructure.

lumopt2.fom.base_fom
fom.simulation_results

Containers for simulation results from field region and ports.

lumopt2.fom.simulation_results