We next describe the inverse design approach, and how it can be implemented with the GME.
Inverse design treats the design process as an optimization problem. An objective function is written, which accepts a device parameterization and returns an appropriate figure of merit (FOM). This function is then optimized, typically with a gradient-based optimization algorithm. The gradient calculations are normally performed using the adjoint variable method, however this method cannot be easily implemented with the GME technique [1]}. Instead, we use automatic differentiation (AD), which allows the gradient of an arbitrarily complex function to be calculated.
