Skip to content

parametric.transition

transition(
*,
port_spec1: Annotated[str | photonforge.PortSpec, _] | None = None,
port_spec2: Annotated[str | photonforge.PortSpec, _] | None = None,
length: Annotated[float, exclusiveMinimum=0, units='μm'] | None = None,
constant_length: Annotated[float, minimum=0, units='μm'] | None = None,
min_width: Annotated[float, minimum=0, units='μm'] | None = None,
profile: Annotated[str | photonforge.Expression, _] | None = None,
technology: photonforge.Technology | None = None,
name: str | None = None,
model: photonforge.Model | None = None,
) -> photonforge.Component

Straight waveguide that works as a transition between port profiles.

Args

  • port_spec1: Port specification describing the first cross-section.
  • port_spec2: Port specification describing the second cross-section.
  • length: Transition length.
  • constant_length: Constant cross-section length added to both ends. If None, defaults to 0.
  • min_width: Minimal width used on vanishing layers to avoid sharp features. If None, defaults to 0.
  • profile: String expression describing the transition shape parametrized by the independent variable "u", ranging from 0 to 1 along the transition. The expression must evaluate to a float between 0 and 1 representing the weight of the second profile with respect to the first at that position. Alternatively, an Expression with 1 parameter can be used. If None, a linear transition is used.
  • technology: Component technology. If None, the default technology is used.
  • name: Component name.
  • model: Model to be used with this component. If None a Tidy3DModel is used.

Returns

Component with the transition geometry, ports and model.

Example

>>> component = pf.parametric.transition(
... port_spec1="Strip", port_spec2="Rib", length=5, constant_length=0.5
... )

transition