Skip to content
Snippets Groups Projects
Commit 19c5a91e authored by Bernabeu Lou's avatar Bernabeu Lou
Browse files

fixed bugs, added .gigtignore

parent e10dbc72
No related branches found
No related tags found
No related merge requests found
*__pycache__
\ No newline at end of file
import elements
import graphics
print("Hi World!")
import numpy as np
import cmath
from .main import *
import numpy as np
### ------ Special elements ------
class Source:
def __init__(self, initial_vector=np.array([1., 0.+0j])): ## if no input state given, starts a |0>
......@@ -13,11 +15,12 @@ class Screen:
self.previous = previous
def show(self):
previous_component, previous_component_output_side = previous
previous_component, previous_component_output_side = self.previous
print(previous_component.out(previous_component_output_side))
def out(self):
return previous_component.out(previous_component_output_site)
previous_component, previous_component_output_side = self.previous
return previous_component.out(previous_component_output_side)
......@@ -28,19 +31,21 @@ class Element:
self.next = None
class Plate(Element):
def __init__(self, jones_matrix = np.eye((2, 2), dtype='complex')):
def __init__(self, previous, jones_matrix = np.eye(2, dtype='complex')):
Element.__init__(self, previous)
self.jones_matrix = jones_matrix
self.output_vector = None
def out(self, side):
previous_element = self.previous[0]
previous_element_output_side = self.previous[1]
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
return self.output_vector
class BeamSplitter(Element):
"""matrix is a 4x4 complex ndarray, two first dimensions regard left input, two next are right. So it's blockwise defined."""
def __init__(self, matrix = np.eye((4, 4), dtype='complex')):
def __init__(self, previous, matrix = np.eye(4, dtype='complex')):
Element.__init__(self, previous)
self.matrix = matrix
self.output_vector = None
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment