Module fnpcell.pdk.technology.wg
Classes
CurvePaintWaveguideType
class CurvePaintWaveguideType(curve_paint: ICurvePaint, initial_type: IWaveguideType,
final_type: IWaveguideType, port_names: Tuple[Union[None, str, Hidden],
Union[None, str, Hidden]] = ('op_0', 'op_1'))
CurvePaintWaveguideType(args: Any, *kwargs: Any).
Ancestors
WaveguideType, IWaveguideType, ILinkTyp, IUpdatable
Class variables
var curve_paint: ICurvePaint
var final_type: IWaveguideType
var initial_type: IWaveguideType
var port_names: Tuple[Union[None, str, Hidden], Union[None, str, Hidden]]
Methods
def band(self) -> IBand
def port_width(self) -> float
ProfileWaveguideType
class ProfileWaveguideType(*args: Any, **kwargs: Any)
Providing overridable profile property to express the structure of a waveguide.
Attributes
profile:
readonly. Structure: [ (layer0, [ (offset00, [width000, width001, …], (start_extension00, end_extension00)),
(offset01, [width010, width011, …], (start_extension01, end_extension01)), ]),
(layer1, [ (offset10, [width101, width101, …], (start_extension10, end_extension10)) ]), ]
where layer0, layer1, … are layers to draw,
<code>offset00</code>, <code>offset01</code>, ... are offset to the curve, positive value means offset towards
the left-side,negative value means offset towards the right-side
<code>width000</code>, <code>width001</code>, ... are widths and the largest width is used to draw,
others are used to generate on-grid-fixing points.
<code>start\_extension00</code>, <code>end\_extension01</code>, ... are extension lengths for
the curve/waveguide.
Ancestors
WaveguideType, IWaveguideType, ILinkType, IUpdatable
Class variables
var bend_factory: IBendWaveguideFactory
var port_names: Tuple[Union[None, str, Hidden], Union[None, str, Hidden]]
var straight_factory: IStraightWaveguideFactory
Instance variables
var profile: Sequence[Tuple[ILayer, Sequence[Tuple[float, Sequence[float]]], Tuple[float, float]]]
Methods
def tapered(self, *, taper_function: ITaperCallable = TaperFunctionLinear(),
final_type: Optional[~_Self] = None, **kwargs: Any) -> IWaveguideType
WaveguideType
class WaveguideType(*args: Any, **kwargs: Any)
Ancestors
IWaveguideType, ILinkType, IUpdatable
Subclasses
CurvePaintWaveguideType, ProfileWaveguideType
Class variables
var bend_factory: IBendWaveguideFactory
var port_names: Tuple[Union[None, str, Hidden], Union[None, str, Hidden]]
var straight_factory: IStraightWaveguideFactory
Methods
def ports(self, curve: ICurve, *, initial_type: Optional[IWaveguideType] = None,
final_type: Optional[IWaveguideType] = None,
names: Sequence[Union[None, str, Hidden]] = ('op_0', 'op_1'),
offset: float = 0, final_offset: Optional[float] = None) -> Tuple[IPort, IPort]
WaveguideTypeMeta
class WaveguideTypeMeta(*args, **kwargs)
Metaclass for unique values.
Ancestors
Type2TypeMeta, UniqueMeta, abc.ABCMeta, builtins.type