In the inverse design webinar in Feb 19, 2018 we showed a robust splitter example where we co-optimized 2 process corners for an under etched and over etched device. The objective of this example is to show how co-optimization can be used to find a potentially more manufacturable shape by ensuring 2 extremes of manufacturing tolerance can be optimized to give an acceptable device performance. As this example isn’t in our application gallery yet, I’ve attached here.
This example demonstrates how you can easily do co-optimization by parameterizing your optimization (in addition to parameterizing your shape). In this case I made a function to build an optimization that accepts a parameter for the edge offset. We can then just call this function twice and construct two optimizations with different edge offsets, add them together to get a total FOM, and run. It’s only about 2 lines of additional code over a basic optimization example.
This example simply translates the shape edge in the y direction. Assuming the edge is mostly horizontal (y normal), this gives a fairly constant offset. As the edge becomes more vertical (x normal) the offset narrows. A nice improvement would be to make an edge with a constant offset along the surface normal of the nominal shape edge. This could be done with a slightly fancier parametric shape function that uses the slope of the spline to offset along the normal.
If you’re looking to get started with a full tutorial example, there are waveguide crossing and Y-branch examples in the in-product App gallery. Just launch FDTD Solutions (2019a R3 or greater) and search for inverse design in the app gallery window.
robust_splitter.zip (2.1 KB)