effective_route_length¶
- photonforge.effective_route_length(*, paths=(), component=None, layer=None, port_spec=None, n_eff=None, frequency=None, technology=None, width_rtol=0.2, offset_rtol=0.2, curvature_rtol=0.2, verbose=True, show_progress=True)[source]¶
Measure the effective length of waveguides.
The effective length of a waveguide is the integral of its effective index along the propagation length:
\[\int n_\text{eff}(s) \, {\rm d}s\]If provided, the
n_effinterpolator can be parametrized by “frequency” or “wavelength”, bend “radius” or “curvature”, waveguide “width”, “offset”, and “angle” (in degrees, useful in anisotropic media). The values used for sampling and numerical integration are derived from thepathsprovided to the function or found in thecomponent.When
n_effis not provided, the paths are inspected to define the parameter ranges for “width”, “curvature”, and “angle” (if anisotropic media is used intechnology). Then mode solver runs based onport_specare used to evaluate the effective index and create an interpolator. In particular, the “width” variation is only applied to a single path profile inport_spec, if one can be detected.- Parameters:
paths (Sequence[Path]) – Paths to use for effective length calculation.
component (Component | None) – Component to look for paths if
pathsis not given.layer (Sequence[int] | None) – Layer used to look for paths. If
None, a best guess based onport_specwill be used.port_spec (PortSpec | None) – Port specification used for the base waveguide. If
None, the component will be inspected and a best guess used.n_eff (Interpolator | None) – Interpolator with parametrized effective index values.
frequency (Annotated[float, minimum=0, units='Hz'] | None) – Frequency for effective index computation. It must be provided if
n_effis not provided, or if it is parametrized by “frequency” or “wavelength”.technology (Technology | None) – Technology used for mode-solving, if needed.
width_rtol (float) – Maximum allowed relative change in path width between consecutive integration points. If less than or equal to 0, width parametrization is disabled.
offset_rtol (float) – Maximum allowed relative change in offset between consecutive integration points. If less than or equal to 0, offset parametrization is disabled.
curvature_rtol (float) – Maximum allowed relative change in curvature between consecutive integration points. If less than or equal to 0, curvature parametrization is disabled.
verbose (bool) – Flag controlling mode solver verbosity.
show_progress (bool) – Flag controlling mode solver progress.
- Returns:
Effective path length for guided waves.
- Return type:
float
See also