focused_grating

photonforge.stencil.focused_grating(wavelength, period, n_sin, focal_length, length, width=None, angle=None, input_width=None, fill_factor=0.5)

Create a focused grating.

The geometry is based on the work by F. Van Laere et al., “Compact Focusing Grating Couplers for Silicon-on-Insulator Integrated Circuits,” in IEEE Photonics Technology Letters, vol. 19, no. 23, pp. 1919-1921, Dec.1, 2007, doi: 10.1109/LPT.2007.908762.

Parameters:
  • wavelength – Central wavelength for the grating design.

  • period – Grating period (distance between adjacent teeth centers).

  • n_sin – Product \(n_0 \sin\theta\) between the free-space index and the sine of the input wave angle measured from the grating surface normal (such that a value of 0 indicated normal grating illumination).

  • focal_length – Distance between the focal point and the start of the grating.

  • length – Length of the grating, proportional to the number of teeth.

  • width – If set, a rectangular-shaped grating is created with the specified width. Only one of width and angle must be set.

  • angle – If set, the grating is created with the shape of a circular section with the specified angle. Only one of width and angle must be set.

  • input_width – If set, the input taper region is added to the grating terminating with this dimension.

  • fill_factor – Ratio between the grating teeth and the grating period. An string parametrized by "u" or a photonforge.Expression of a single parameter (varied from 0 to 1) can be used to vary the fill factor along the grating.

Returns:

List of structures.

# Pie-slice, apodized grating
grating1 = focused_grating(
    wavelength=1.55,
    period=0.6,
    n_sin=np.sin(np.pi / 18),
    focal_length=12.5,
    length=10,
    angle=60,
    input_width=0.5,
    fill_factor="0.8 - 0.3 * u^0.5",
)

# Rectangular-shaped grating
grating2 = focused_grating(
    wavelength=1.55,
    period=0.6,
    n_sin=np.sin(np.pi / 18),
    focal_length=12.5,
    length=12,
    width=16,
    input_width=0.5,
    fill_factor=0.6,
)
focused_grating