self.output_vector=self.jones_matrix@previous_element(previous_element_output_side)# matrix-vector product : jones matrix times state vector given by the out(side) method of the previous component
self.output_vector=self.jones_matrix@previous_element.out(previous_element_output_side)# matrix-vector product : jones matrix times state vector given by the out(side) method of the previous component
returnself.output_vector
classBeamSplitter(Element):
"""matrix is a 4x4 complex ndarray, two first dimensions regard left input, two next are right. So it's blockwise defined."""