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

fixed bugs, added .gigtignore

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