sax.models module#

SAX Default Models

straight(*, wl=1.55, wl0=1.55, neff=2.34, ng=3.4, length=10.0, loss=0.0)[source]#

A simple straight waveguide model.

Parameters:
  • wl (FloatArrayND | float) – wavelength in microns.

  • wl0 (float) – reference wavelength in microns.

  • neff (float) – effective index.

  • ng (float) – group index.

  • length (float) – length of the waveguide in microns.

  • loss (float) – loss in dB/cm.

Return type:

SDict

coupler(*, coupling=0.5)[source]#

a simple coupler model

Parameters:

coupling (float) –

Return type:

SDict

unitary(num_inputs=None, num_outputs=None, ports=None, *, jit=True, reciprocal=True, diagonal=False)[source]#

A unitary model.

Parameters:
  • num_inputs (Optional[int]) – number of input ports.

  • num_outputs (Optional[int]) – number of output ports.

  • ports (Optional[Tuple[str, ...]]) – tuple of input and output ports.

  • jit – whether to jit the model.

  • reciprocal – whether the model is reciprocal.

  • diagonal – whether the model is diagonal.

Return type:

Model

copier(num_inputs=None, num_outputs=None, ports=None, *, jit=True, reciprocal=True, diagonal=False)[source]#

A copier model.

Parameters:
  • num_inputs (Optional[int]) – number of input ports.

  • num_outputs (Optional[int]) – number of output ports.

  • ports (Optional[Tuple[str, ...]]) – tuple of input and output ports.

  • jit – whether to jit the model.

  • reciprocal – whether the model is reciprocal.

  • diagonal – whether the model is diagonal.

Return type:

Model

passthru(num_links=None, ports=None, *, jit=True, reciprocal=True)[source]#

A passthru model.

Parameters:
  • num_links (Optional[int]) – number of links.

  • ports (Optional[Tuple[str, ...]]) – tuple of input and output ports.

  • jit – whether to jit the model.

  • reciprocal – whether the model is reciprocal.

Return type:

Model

get_models(copy=True)[source]#
Parameters:

copy (bool) –