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.ComponentStraight 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, anExpressionwith 1 parameter can be used. IfNone, 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
NoneaTidy3DModelis 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... )