Skip to content

Taper

taper

Tapers, linear only.

TODO: Non-linear tapers.

taper

taper(
    width1: um,
    width2: um,
    length: um,
    layer: LayerInfo,
    enclosure: LayerEnclosure | None = None,
) -> KCell

Linear Taper [um].

Visualization::

       __
     _/  │ Slab/Exclude
   _/  __│
 _/  _/  │
│  _/    │
│_/      │
│_       │ Core
│ \_     │
│_  \_   │
  \_  \__│
    \_   │
      \__│ Slab/Exclude

Parameters:

Name Type Description Default
width1 um

Width of the core on the left side. [um]

required
width2 um

Width of the core on the right side. [um]

required
length um

Length of the taper. [um]

required
layer LayerInfo

Main layer of the taper.

required
enclosure LayerEnclosure | None

Definition of the slab/exclude.

None
Source code in kfactory/cells/taper.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def taper(
    width1: um,
    width2: um,
    length: um,
    layer: kdb.LayerInfo,
    enclosure: LayerEnclosure | None = None,
) -> KCell:
    r"""Linear Taper [um].

    Visualization::

               __
             _/  │ Slab/Exclude
           _/  __│
         _/  _/  │
        │  _/    │
        │_/      │
        │_       │ Core
        │ \_     │
        │_  \_   │
          \_  \__│
            \_   │
              \__│ Slab/Exclude

    Args:
        width1: Width of the core on the left side. [um]
        width2: Width of the core on the right side. [um]
        length: Length of the taper. [um]
        layer: Main layer of the taper.
        enclosure: Definition of the slab/exclude.
    """
    return taper_dbu(
        width1=demo.to_dbu(width1),
        width2=demo.to_dbu(width2),
        length=demo.to_dbu(length),
        layer=layer,
        enclosure=enclosure,
    )