ExtrusionSpec
ExtrusionSpec(mask_spec, medium, limits, sidewall_angle=0, reference='top')Extrusion specification for masks.
This class is mainly used to create extrusion recipes for a
Technology.
Args
- mask_spec (MaskSpec): Mask specification for this extrusion.
- medium (MediumType | dict[Literal[“optical”, “electrical”], MediumType]): Tidy3D medium for the resulting structures. Different media can be used for optical and electrical frequencies by using a dictionary (see note below).
- limits (Sequence[float]): Out-of-plane extrusion limits.
- sidewall_angle (float): Sidewall angle for extrusion (in degrees). Positive values will dilate the bottom face or erode the top face, according to the reference position.
- reference (Literal[“top”, “bottom”, “middle”] | float): Reference position for computing dilations and erosions when using a sidewall angle.
Example
>>> extrusion_spec = pf.ExtrusionSpec(... pf.MaskSpec((1, 0)),... td.Medium(permittivity=3.48**2),... limits=(0, 0.250),... sidewall_angle=8,... )Note
The medium used for simulations in optical and electrical frequency
ranges (see frequency_classification) can be set
individually with:
>>> media = {... "optical": td.Medium(permittivity=3.48**2),... "electrical": td.Medium(permittivity=12.3),... }>>> extrusion_spec = pf.ExtrusionSpec(... pf.MaskSpec((1, 0)),... medium=media,... limits=(0, 0.250),... sidewall_angle=8,... )Methods
Section titled “Methods”| Method | Description |
|---|---|
copy | Create a copy of this extrusion specification. |
extrude | Extrude planar structures according to this extrusion specification. |
get_medium | Return electrical or optical medium for this extrusion specification. |
mask_layers | Get the set of all layers referenced by this extrusion’s mask |
copy(self, deep=False)Create a copy of this extrusion specification.
Args
- deep (bool): If set, creates a copy of mask specification as well. Otherwise, the same mask specification object will be used.
Returns
ExtrusionSpec: New copy.
extrude
Section titled “extrude”extrude(self, *structures, extrusion_tolerance=0, classification='optical')Extrude planar structures according to this extrusion specification.
Args
- structures (Rectangle | Circle | Polygon | Path*): Structures to be extruded.
- extrusion_tolerance (float): Minimal out-of-plane interval used to refine topological changes and sidewall slope mismatches. Slope mismatches within this interval are accepted. Meshing failures fall back to an orthogonal midpoint profile with a warning. A value of 0 or less defaults to
config.tolerance. - classification (Literal[“optical”, “electrical”]): Frequency classification indicating which type of medium to use.
Returns
list[Polyhedron | Extruded | ConstructiveSolid]: List of 3D structures.
Note
The mask specification in this object is not taken into account. All structures are used in the extrusion and no dilation is applied.
get_medium
Section titled “get_medium”get_medium(self, classification)Return electrical or optical medium for this extrusion specification.
Args
- classification (Literal[“optical”, “electrical”]): Frequency classification of the desired medium.
Returns
MediumType: Medium for the chosen classification.
See Also
mask_layers
Section titled “mask_layers”mask_layers(self)Get the set of all layers referenced by this extrusion’s mask specification.
Returns
set[tuple[int, int]]: Layer set.
Attributes
Section titled “Attributes”| Attribute | Description |
|---|---|
limits | ndarray: Extrusion limits. |
mask_spec | MaskSpec: Extrusion mask specification. |
medium | MediumType | dict[Literal[‘optical’, ‘electrical’], MediumType]: Extrusion medium. |
properties | Properties: Object properties. |
reference | Literal[‘top’, ‘bottom’, ‘middle’] | float: Extrusion reference position. |
sidewall_angle | float: Extrusion sidewall_angle (in degrees). |
limits
Section titled “limits”ndarray: Extrusion limits.
mask_spec
Section titled “mask_spec”MaskSpec: Extrusion mask specification.
medium
Section titled “medium”MediumType | dict[Literal[‘optical’, ‘electrical’], MediumType]: Extrusion medium.
properties
Section titled “properties”Properties: Object properties.
reference
Section titled “reference”Literal[‘top’, ‘bottom’, ‘middle’] | float: Extrusion reference position.
sidewall_angle
Section titled “sidewall_angle”float: Extrusion sidewall_angle (in degrees).