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
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()