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