transition

photonforge.parametric.transition(*, port_spec1=None, port_spec2=None, length=None, constant_length=None, profile=None, technology=None, name=None, tidy3d_model_kwargs=None)[source]

Straight waveguide that works as a transition between port profiles.

Parameters:
  • port_spec1 (Annotated[str | PortSpec, _Metadata(type=PortSpec, title=Port Spec 1, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Port specification describing the first cross-section.

  • port_spec2 (Annotated[str | PortSpec, _Metadata(type=PortSpec, title=Port Spec 2, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Port specification describing the second cross-section.

  • length (Annotated[float, _Metadata(type=None, title=None, description=None, units=μm, required=False, minimum=None, maximum=None, exclusive_minimum=0, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Transition length.

  • constant_length (Annotated[float, _Metadata(type=None, title=None, description=None, units=μm, required=False, minimum=0, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Constant cross-section length added to both ends. If None, defaults to 0.

  • profile (Annotated[str | Expression, _Metadata(type=Expression, title=None, description=String expression parametrized by the independent variable 'u', ranging from 0 to 1., units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – 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 photonforge.Expression with 1 parameter can be used. If None, a linear transition is used.

  • technology (Annotated[Technology, _Metadata(type=None, title=None, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Component technology. If None, the default technology is used.

  • name (Annotated[str, _Metadata(type=None, title=None, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Component name.

  • tidy3d_model_kwargs (Annotated[dict[str, Any], _Metadata(type=required, title=False, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Dictionary of keyword arguments passed to the component’s photonforge.Tidy3DModel.

Returns:

Component with the transition geometry, ports and model.

Return type:

Component

component = transition(port_spec1="Strip", port_spec2="Rib", length=5, constant_length=0.5)
transition