Waveguide Generator
There are many CAD systems out there. Several are specifically designed for creating layouts in micro- and nano-fabrication. However, when one wants to quickly create many geometries in which one parameter has been swept, it is very useful to operate from a scripted environment. Toward these ends, I developed a library within Mathematica to create shapes useful in integrated photonics. It was designed to pair with softwares such as Lumerical to allow one to calculate modularized systems into S-parameter blocks so that the resulting fields can be quickly determined.
There are several key functions.
- SmoothPolyline[polyline, rad] : Takes a polyline and adds arcs of a specified radius to all the internal corners.
- ThickenPolyline[polyline, d] : The second takes a polyline and a specified thickness and creates 2-D waveguides.
- ExpungePolygon[polygonOuter, polygonInner] : Creates a Closed Simple Polygon (CSPs) by subtracting the inner polygon from the outter one and inserting a zero thickness causeway.
- TextToPolygon[text, size] : Converts text into a series of CSPs.
- CalcArea[polygon], CalcPerim[polygon] : Performs the obvious functions. Useful for estimating exposure times.
- GenerateDXF[polygons] : Gerenates geometetry as an ASCII text string suitable for input into most software.
These functions are combined to create a library of geometries.
- Waveguides
- Couplers
- Ring Resonators
- Diffraction Gratings
- Alignment Marks
- Dose Calibration Marks