| If the two end faces are the same size and shape, all the curve  | ||
  | shapes are equivalent. The end faces can be offset laterally, so that  | ||
  | a fan statement can build a diagonal line.  | ||
  | Parameters: matname taper taperpar xlo1 xhi1 ylo1 yhi1 zlo1 zhi1 xlo2  | ||
  | xhi2 ylo2 yhi2 zlo2 zhi2 | ||
  | 
  | 
  | 
  | 
GRATING | Adds a planar grating with lines of rectangular   | ||
  | line width and phase of the grating are arbitrary, and specified with  | ||
  | user functions of the coordinate variables. Thus the grating can  | ||
  | have its properties altered in a very general way during  | ||
  | optimization, e.g. having its Seidel aberration coefficients controlled  | ||
  | to optimize a coupling efficiency. Gratings are implemented by  | ||
  | evaluating phasefunc at a grid of points in the plane, and  | ||
  | constructing a phase contour map. Each grating line is generated  | ||
  | by following the contours at integral multiples of 2π, and centring a  | ||
  | rectangular block of total width defined by widthfunc on the contour  | ||
  | line, so that the grating’s diffractive strength is also a function of  | ||
  | position. Making the width too large or too small will result in the  | ||
  | spaces or lines disappearing, which is one way of making a grating  | ||
  | with a   | ||
  | phase points is two cells, but this can cause the script to run very  | ||
  | slowly, so it can be overridden with the optional parameter interval.  | ||
  | The interval parameter determines the grid on which the phase and  | ||
  | width functions are sampled, which influences the accuracy of the  | ||
  | contour maps and hence the grating placement.  | ||
  | Parameters: matname orientation xlo xhi ylo yhi zlo zhi widthfunc  | ||
  | phasefunc [interval] | ||
  | 
  | 
  | 
  | 
HOLLOWBOX | Adds a hollow box (rectangular shell) of specified outer dimensions  | ||
  | and thickness. It is implemented by dividing up the rectangular  | ||
  | box into 26 smaller blocks: 6 for the faces, 12 for the edges, and 8  | ||
  | for the corners. This primitive is especially useful for using PMLs  | ||
  | to isolate a region from its surroundings. When used with PMLs,  | ||
  | the outer dimensions must be the same as those of the simulation  | ||
  | domain. The PML absorption directions will be the outward  | ||
  | normals for the flat faces,   | ||
  | edges, and   | ||
  | Parameters: mattype xlo xhi ylo yhi zlo zhi thickness | ||
  | 
  | 
  | 
  | 
TILEDPLANE | Adds a tiled plane (thick rectangular sheet) of specified outer  | ||
  | dimensions. It is implemented by dividing up the rectangular sheet  | ||
  | into 9 smaller blocks: 1 for the face, 4 for the edges, and 4 for the  | ||
19