/
wmels_trive_on_diagonal.py
118 lines (95 loc) · 3.66 KB
/
wmels_trive_on_diagonal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# -*- coding: utf-8 -*-
"""
WMELs: TRIVE on diagonal
=========================
Draw WMELs for TRIVE on diagonal.
"""
import matplotlib.pyplot as plt
import WrightTools.diagrams.WMEL as WMEL
artist = WMEL.Artist(size=[6, 3], energies=[0.0, 0.5, 1.0], state_names=["g", "a", "b", "a+b"])
artist.label_rows([r"$\mathrm{\alpha}$", r"$\mathrm{\beta}$", r"$\mathrm{\gamma}$"])
artist.label_columns(["I", "II", "III", "IV", "V", "VI"])
artist.clear_diagram([1, 2])
artist.clear_diagram([3, 2])
# pw1 alpha
artist.add_arrow([0, 0], 0, [0, 1], "ket", "1")
artist.add_arrow([0, 0], 1, [0, 1], "bra", "-2")
artist.add_arrow([0, 0], 2, [1, 0], "bra", "2'")
artist.add_arrow([0, 0], 3, [1, 0], "out")
# pw1 beta
artist.add_arrow([0, 1], 0, [0, 1], "ket", "1")
artist.add_arrow([0, 1], 1, [0, 1], "bra", "-2")
artist.add_arrow([0, 1], 2, [1, 2], "ket", "2'")
artist.add_arrow([0, 1], 3, [2, 1], "out")
# pw1 gamma
artist.add_arrow([0, 2], 0, [0, 1], "ket", "1")
artist.add_arrow([0, 2], 1, [1, 0], "ket", "-2")
artist.add_arrow([0, 2], 2, [0, 1], "ket", "2'")
artist.add_arrow([0, 2], 3, [1, 0], "out")
# pw2 alpha
artist.add_arrow([1, 0], 0, [0, 1], "ket", "1")
artist.add_arrow([1, 0], 1, [1, 2], "ket", "2'")
artist.add_arrow([1, 0], 2, [2, 1], "ket", "-2")
artist.add_arrow([1, 0], 3, [1, 0], "out")
# pw2 beta
artist.add_arrow([1, 1], 0, [0, 1], "ket", "1")
artist.add_arrow([1, 1], 1, [1, 2], "ket", "2'")
artist.add_arrow([1, 1], 2, [0, 1], "bra", "-2")
artist.add_arrow([1, 1], 3, [2, 1], "out")
# pw3 alpha
artist.add_arrow([2, 0], 0, [0, 1], "bra", "-2")
artist.add_arrow([2, 0], 1, [0, 1], "ket", "1")
artist.add_arrow([2, 0], 2, [1, 0], "bra", "2'")
artist.add_arrow([2, 0], 3, [1, 0], "out")
# pw3 beta
artist.add_arrow([2, 1], 0, [0, 1], "bra", "-2")
artist.add_arrow([2, 1], 1, [0, 1], "ket", "1")
artist.add_arrow([2, 1], 2, [1, 2], "ket", "2'")
artist.add_arrow([2, 1], 3, [2, 1], "out")
# pw3 gamma
artist.add_arrow([2, 2], 0, [0, 1], "bra", "-2")
artist.add_arrow([2, 2], 1, [1, 0], "bra", "1")
artist.add_arrow([2, 2], 2, [0, 1], "ket", "2'")
artist.add_arrow([2, 2], 3, [1, 0], "out")
# pw4 alpha
artist.add_arrow([3, 0], 0, [0, 1], "ket", "2'")
artist.add_arrow([3, 0], 1, [1, 2], "ket", "1")
artist.add_arrow([3, 0], 2, [2, 1], "ket", "-2")
artist.add_arrow([3, 0], 3, [1, 0], "out")
# pw4 beta
artist.add_arrow([3, 1], 0, [0, 1], "ket", "2'")
artist.add_arrow([3, 1], 1, [1, 2], "ket", "1")
artist.add_arrow([3, 1], 2, [0, 1], "bra", "-2")
artist.add_arrow([3, 1], 3, [2, 1], "out")
# pw5 alpha
artist.add_arrow([4, 0], 0, [0, 1], "bra", "-2")
artist.add_arrow([4, 0], 1, [1, 0], "bra", "2'")
artist.add_arrow([4, 0], 2, [0, 1], "ket", "1")
artist.add_arrow([4, 0], 3, [1, 0], "out")
# pw5 beta
artist.add_arrow([4, 1], 0, [0, 1], "bra", "-2")
artist.add_arrow([4, 1], 1, [0, 1], "ket", "2'")
artist.add_arrow([4, 1], 2, [1, 2], "ket", "1")
artist.add_arrow([4, 1], 3, [2, 1], "out")
# pw5 gamma
artist.add_arrow([4, 2], 0, [0, 1], "bra", "-2")
artist.add_arrow([4, 2], 1, [0, 1], "ket", "2'")
artist.add_arrow([4, 2], 2, [1, 0], "bra", "1")
artist.add_arrow([4, 2], 3, [1, 0], "out")
# pw6 alpha
artist.add_arrow([5, 0], 0, [0, 1], "ket", "2'")
artist.add_arrow([5, 0], 1, [1, 0], "ket", "-2")
artist.add_arrow([5, 0], 2, [0, 1], "ket", "1")
artist.add_arrow([5, 0], 3, [1, 0], "out")
# pw6 beta
artist.add_arrow([5, 1], 0, [0, 1], "ket", "2'")
artist.add_arrow([5, 1], 1, [0, 1], "bra", "-2")
artist.add_arrow([5, 1], 2, [1, 2], "ket", "1")
artist.add_arrow([5, 1], 3, [2, 1], "out")
# pw6 beta
artist.add_arrow([5, 2], 0, [0, 1], "ket", "2'")
artist.add_arrow([5, 2], 1, [0, 1], "bra", "-2")
artist.add_arrow([5, 2], 2, [1, 0], "bra", "1")
artist.add_arrow([5, 2], 3, [1, 0], "out")
artist.plot()
plt.show()