3.2.1.1. lekkersim.Model

class lekkersim.Model(pin_dic: Dict[Pin, int] = None, param_dic: Dict[str, Any] = None, Smatrix: ndarray = None)

Class Model

It contains the model (definition of the scattering matrix) for each base photonic building block This is the general template for the class, no model is defined here. Each model is a separate class based on the main one. The only use case for using this class directly is to call it without arguments to create an empy model that will be eliminated if prune is called

__init__(pin_dic: Dict[Pin, int] = None, param_dic: Dict[str, Any] = None, Smatrix: ndarray = None) None

Initialize the model

Parameters:
  • pin_dic (dictionary) – Dictionary of pins and relative position in the scattering matrix

  • param_dic (dictionary) – dictionary {‘param_name’:param_value} containing the definition of the model’s parameters.

  • Smatrix (ndarray) – Fixed S_matrix of the model

Methods

S2PD([func])

Function for returning the Scattering Matrix as a PD Dataframe

__init__([pin_dic, param_dic, Smatrix])

Initialize the model

create_S()

Function for returning the scattering matrix of the model

expand_mode(mode_list)

This function expands the model by adding additional modes.

get_A(pin1, pin2)

Function for returning complex amplitude of the transmission between two ports

get_PH(pin1, pin2)

Function for returning the phase of the transmission between two ports

get_T(pin1, pin2)

Function for returning the energy transmission between two ports

get_output(input_dic[, power])

Returns the outputs from all ports of the model given the inputs amplitudes

get_pin_basenames()

Returns a list of the basenames of the pins

get_pin_modes(basename)

Parse the pins for locating the pins with the same base name

inspect()

Function that print self.

is_empty()

Checks if model is empy

pin_mapping(pin_mapping)

Function for changing the names of the pins of a model

print_S([func])

Function for nice printing of scattering matrix in agreement with pins

prune()

Check if the model is empty

put([source_pin, target_pin, param_mapping])

Function for putting a model in a Solver object, and eventually specify connections

show_free_pins()

Function for printing pins of model

solve(**kargs)

Function for returning the solved model

update_params(update_dic)

Update the parameters of model, setting defaults when value is not provides

update_pins()