Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reinstate defining elliptical grating coupler with period and fill factor #664

Closed
danielpeace opened this issue Sep 5, 2022 · 3 comments · Fixed by #668
Closed

Reinstate defining elliptical grating coupler with period and fill factor #664

danielpeace opened this issue Sep 5, 2022 · 3 comments · Fixed by #668
Labels
enhancement New feature or request

Comments

@danielpeace
Copy link

Removal of grating_coupler_circular removes ability to define focused grating coupler based on period, fill factor and number of periods like rectangular grating couplers.

@danielpeace danielpeace added the enhancement New feature or request label Sep 5, 2022
@joamatab
Copy link
Contributor

joamatab commented Sep 5, 2022

Hi Daniel,

How about using https://gdsfactory.github.io/gdsfactory/components.html#grating-coupler-elliptical-arbitrary
?

@gf.cell
def grating_coupler_elliptical_uniform(
    n_periods: int = 20,
    period: float = 0.75,
    fill_factor: float = 0.5,
    **kwargs,
) -> Component:
    r"""Grating coupler with parametrization based on Lumerical FDTD simulation.
    The ellipticity is derived from Lumerical knowdledge base
    it depends on fiber_angle (degrees), neff, and nclad
    Args:
        n_periods: number of grating periods.
        period: grating pitch in um.
        fill_factor: ratio of grating width vs gap.
    Keyword Args:
        taper_length: taper length from input.
        taper_angle: grating flare angle.
        wavelength: grating transmission central wavelength (um).
        fiber_angle: fibre angle in degrees determines ellipticity.
        neff: tooth effective index to compute ellipticity.
        nclad: cladding effective index to compute ellipticity.
        layer_slab: Optional slab.
        slab_xmin: where 0 is at the start of the taper.
        polarization: te or tm.
        fiber_marker_width: in um.
        fiber_marker_layer: Optional marker.
        spiked: grating teeth have spikes to avoid drc errors..
        bias_gap: etch gap (um).
            Positive bias increases gap and reduces width to keep period constant.
        cross_section: cross_section spec for waveguide port.
        kwargs: cross_section settings.
    .. code::
                      fiber
                   /  /  /  /
                  /  /  /  /
                _|-|_|-|_|-|___ layer
                   layer_slab |
            o1  ______________|
    """
    widths = [period * fill_factor] * n_periods
    gaps = [period * (1 - fill_factor)] * n_periods
    return grating_coupler_elliptical_arbitrary(gaps=gaps, widths=widths, **kwargs)

@joamatab
Copy link
Contributor

joamatab commented Sep 5, 2022

Hi Daniel,

just released gdsfactory 5.26.0 with grating_coupler_elliptical_uniform

@danielpeace
Copy link
Author

Hi Joaquin,

That's greatly appreciated, thank you!

Being able to define gratings using only pitch and period is very useful for non-standard wafers and other materials platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants