crossing45¶
- photonforge.parametric.crossing45(*, port_spec=None, arm_length=None, added_width=None, extra_length=None, radius=None, euler_fraction=None, technology=None, name=None, tidy3d_model_kwargs=None)[source]¶
- 45° waveguide crossing. - Parameters:
- port_spec (Annotated[str | PortSpec, _Metadata(type=PortSpec, title=None, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | Annotated[Sequence[Annotated[str | PortSpec, _Metadata(type=PortSpec, title=None, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)]], _Metadata(type=None, title=None, description=None, units=None, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=2, max_items=2)] | None) – Port specification describing waveguide cross-section. A tuple with 2 values can be used, one for each waveguide. 
- arm_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) – Length of a single crossing arm. 
- added_width (Annotated[float | str | Expression, _Metadata(type=Expression, title=None, description=None, units=μm, required=False, minimum=None, maximum=None, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Width added to the arm linearly up to the center. An expression or string (with independent variable - "u") can also be used. If- None, defaults to 0.
- extra_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) – Additional length for a straight section at the ports. If - None, defaults to 0.
- 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.
- radius (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) – Radius used for arm bends. 
- euler_fraction (Annotated[float, _Metadata(type=None, title=None, description=None, units=None, required=False, minimum=0, maximum=1, exclusive_minimum=None, exclusive_maximum=None, min_items=None, max_items=None)] | None) – Fraction of the bends that is created using an Euler spiral (see - photonforge.Path.arc()). If- None, defaults to 0.
- 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 crossing, ports and model. 
- Return type:
 
# Linearly tapered crossing45
component = crossing45(
    port_spec="Strip", arm_length=2.5, added_width=0.8, radius=10, euler_fraction=0.5
)