-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStevensOperators.py
481 lines (449 loc) · 42.4 KB
/
StevensOperators.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
# The source code is modified from the original code in the PyCrystalField package by Allen Scheie.
# Here is the link to the original code: https://github.com/asche1/PyCrystalField/tree/master
# The original code is licensed under the GPL-3.0 license
# Modified by Shuanglong Liu @ University of Florida, Mar 22, 2023
import numpy as np
from Operators import Operator, LSOperator
def StevensOpA(J,n,m,A):
"""generate stevens operator for a given total angular momentum
and a given n and m state in the reference frame A (A=emat)"""
_Jx = Operator.Jx(J=J)
_Jy = Operator.Jy(J=J)
_Jz = Operator.Jz(J=J)
Jx = A[0,0]*_Jx + A[0,1]*_Jy + A[0,2]*_Jz
Jy = A[1,0]*_Jx + A[1,1]*_Jy + A[1,2]*_Jz
Jz = A[2,0]*_Jx + A[2,1]*_Jy + A[2,2]*_Jz
Jp = Jx + 1j*Jy
Jm = Jx - 1j*Jy
X = J*(J+1.)
if [n,m] == [0,0]:
return np.zeros((int(2*J+1), int(2*J+1)))
elif [n,m] == [1,0]:
matrix = Jz
elif [n,m] == [1,1]:
matrix = 0.5 *(Jp + Jm)
elif [n,m] == [1,-1]:
matrix = -0.5j *(Jp - Jm)
elif [n,m] == [2,2]:
matrix = 0.5 *(Jp**2 + Jm**2)
elif [n,m] == [2,1]:
matrix = 0.25*(Jz*(Jp + Jm) + (Jp + Jm)*Jz)
elif [n,m] == [2,0]:
matrix = 3*Jz**2 - X
elif [n,m] == [2,-1]:
matrix = -0.25j*(Jz*(Jp - Jm) + (Jp - Jm)*Jz)
elif [n,m] == [2,-2]:
matrix = -0.5j *(Jp**2 - Jm**2)
elif [n,m] == [3,3]:
matrix = 0.5 *(Jp**3 + Jm**3)
elif [n,m] == [3,2]:
matrix = 0.25 *((Jp**2 + Jm**2)*Jz + Jz*(Jp**2 + Jm**2))
elif [n,m] == [3,1]:
matrix = 0.25*((Jp + Jm)*(5*Jz**2 - X - 0.5) + (5*Jz**2 - X - 0.5)*(Jp + Jm))
elif [n,m] == [3,0]:
matrix = 5*Jz**3 - (3*X-1)*Jz
elif [n,m] == [3,-1]:
matrix = -0.25j*((Jp - Jm)*(5*Jz**2 - X - 0.5) + (5*Jz**2 - X - 0.5)*(Jp - Jm))
elif [n,m] == [3,-2]:
matrix = -0.25j*(Jz*(Jp**2 - Jm**2) + (Jp**2 - Jm**2)*Jz)
elif [n,m] == [3,-3]:
matrix = -0.5j *(Jp**3 - Jm**3)
elif [n,m] == [4,4]:
matrix = 0.5 *(Jp**4 + Jm**4)
elif [n,m] == [4,3]:
matrix = 0.25 *((Jp**3 + Jm**3)*Jz + Jz*(Jp**3 + Jm**3))
elif [n,m] == [4,2]:
matrix = 0.25 *((Jp**2 + Jm**2)*(7*Jz**2 -X -5) + (7*Jz**2 -X -5)*(Jp**2 + Jm**2))
elif [n,m] == [4,1]:
matrix = 0.25 *((Jp + Jm)*(7*Jz**3 -(3*X+1)*Jz) + (7*Jz**3 -(3*X+1)*Jz)*(Jp + Jm))
elif [n,m] == [4,0]:
matrix = 35*Jz**4 - (30*X -25)*Jz**2 + 3*X**2 - 6*X
elif [n,m] == [4,-4]:
matrix = -0.5j *(Jp**4 - Jm**4)
elif [n,m] == [4,-3]:
matrix = -0.25j *((Jp**3 - Jm**3)*Jz + Jz*(Jp**3 - Jm**3))
elif [n,m] == [4,-2]:
matrix = -0.25j *((Jp**2 - Jm**2)*(7*Jz**2 -X -5) + (7*Jz**2 -X -5)*(Jp**2 - Jm**2))
elif [n,m] == [4,-1]:
matrix = -0.25j *((Jp - Jm)*(7*Jz**3 -(3*X+1)*Jz) + (7*Jz**3 -(3*X+1)*Jz)*(Jp - Jm))
elif [n,m] == [6,6]:
matrix = 0.5 *(Jp**6 + Jm**6)
elif [n,m] == [6,5]:
matrix = 0.25*((Jp**5 + Jm**5)*Jz + Jz*(Jp**5 + Jm**5))
elif [n,m] == [6,4]:
matrix = 0.25*((Jp**4 + Jm**4)*(11*Jz**2 -X -38) + (11*Jz**2 -X -38)*(Jp**4 + Jm**4))
elif [n,m] == [6,3]:
matrix = 0.25*((Jp**3 + Jm**3)*(11*Jz**3 -(3*X+59)*Jz) + (11*Jz**3 -(3*X+59)*Jz)*(Jp**3 + Jm**3))
elif [n,m] == [6,2]:
matrix = 0.25*((Jp**2 + Jm**2)*(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102) +\
(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102)*(Jp**2 + Jm**2))
elif [n,m] == [6,1]:
matrix = 0.25*((Jp +Jm)*(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz) +\
(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz)*(Jp+ Jm))
elif [n,m] == [6,0]:
matrix = 231*Jz**6 - (315*X-735)*Jz**4 + (105*X**2 -525*X +294)*Jz**2 -\
5*X**3 + 40*X**2 - 60*X
elif [n,m] == [6,-6]:
matrix = -0.5j *(Jp**6 - Jm**6)
elif [n,m] == [6,-5]:
matrix = -0.25j*((Jp**5 - Jm**5)*Jz + Jz*(Jp**5 - Jm**5))
elif [n,m] == [6,-4]:
matrix = -0.25j*((Jp**4 - Jm**4)*(11*Jz**2 -X -38) + (11*Jz**2 -X -38)*(Jp**4 - Jm**4))
elif [n,m] == [6,-3]:
matrix = -0.25j*((Jp**3 - Jm**3)*(11*Jz**3 -(3*X+59)*Jz) + (11*Jz**3 -(3*X+59)*Jz)*(Jp**3 - Jm**3))
elif [n,m] == [6,-2]:
matrix = -0.25j*((Jp**2 - Jm**2)*(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102) +\
(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102)*(Jp**2 - Jm**2))
elif [n,m] == [6,-1]:
matrix = -0.25j*((Jp - Jm)*(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz) +\
(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz)*(Jp - Jm))
elif [n,m] == [8,-8]:
matrix = -0.5j*(-Jm**8 + Jp**8)
elif [n,m] == [8,-7]:
matrix = -0.25j*(-Jm**7*(-7+2*Jz)+Jp**7*(7+2*Jz))
elif [n,m] == [8,-6]:
matrix = -0.5j*(90*(Jm**6 + Jp**6)*Jz +15*(-Jm**6 + Jp**6)*Jz**2 -(-Jm**6 + Jp**6)*(-147+ X))
elif [n,m] == [8,-5]:
matrix = -0.25j*(-Jm**5*(-5+2*Jz)*(-25*Jz+5*Jz**2-X+42) + Jp**5*(5+2*Jz)*(25*Jz+5*Jz**2-X+42))
elif [n,m] == [8,-4]:
matrix = -0.5j*(520*(Jm**4 + Jp**4)*Jz**3 +65*(-Jm**4 + Jp**4)*Jz**4 -13*(-Jm**4 + Jp**4)*Jz**2*(-139+2*X) + 52*(-Jm**4 - Jp**4)*Jz*(-59 + 2*X) + (-Jm**4 + Jp**4)*(2100 - 122*X + X**2))
elif [n,m] == [8,-3]:
matrix = -0.25j*(Jp**3*(3+2*Jz)*(234*Jz**3 +39*Jz**4 -78*Jz*(-15+X)-106*X+3*X**2 - 13*Jz**2*(-57 + 2*X)+840) - Jm**3*(-3 + 2*Jz)*(- 234*Jz**3 + 39*Jz**4 + 78*Jz*(-15 + X) - 106*X + 3*X**2 - 13*Jz**2*(-57 + 2*X)+840))
elif [n,m] == [8,-2]:
matrix = -0.5j*(858*(Jm**2 + Jp**2)*Jz**5 +143*(-Jm**2 + Jp**2)*Jz**6 -143*(-Jm**2 + Jp**2)*Jz**4*(-22+ X) + 572*(-Jm**2 - Jp**2)*Jz**3*(-12 + X) + 11*(-Jm**2 + Jp**2)*Jz**2*(853 - 119*X +3*X**2)+22*(Jm**2 +Jp**2)*Jz*(333-67*X+3*X**2) -(-Jm**2 + Jp**2)*(-2520+702*X -53*X**2 + X**3))
elif [n,m] == [8,-1]:
matrix = -0.25j*(5005*(Jm + Jp)*Jz**6 + 1430*(-Jm + Jp)*Jz**7 + 5005*(-Jm - Jp)*Jz**4*(-7 + X) - 1001*(-Jm + Jp)*Jz**5*(-19 + 2*X) + 385*(-Jm + Jp)*Jz**3*(131 - 36*X + 2*X**2) +385*(Jm+ Jp)*Jz**2*(112-41*X +3*X**2)+(-Jm+ Jp)*Jz*(22356-12488*X +1785*X**2 -70*X**3)+35*(-Jm-Jp)*(-144+108*X-20*X**2 +X**3))
elif [n,m] == [8, 0]:
matrix = 0.5*(12870*Jz**8 -12012*Jz**6*(-9+2*X)+2310*Jz**4*(81-56*X +6*X**2) + 70*X*(-144 + 108*X - 20*X**2 + X**3) - 12*Jz**2*(-4566 + 9898*X - 3045*X**2 + 210*X**3))
elif [n,m] == [8, 1]:
matrix = 0.25*(5005*(-Jm + Jp)*Jz**6 + 1430*(Jm + Jp)*Jz**7 + 5005*(Jm - Jp)*Jz**4*(-7 + X) - 1001*(Jm + Jp)*Jz**5*(-19 + 2*X) + 385*(Jm + Jp)*Jz**3*(131 - 36*X + 2*X**2) +385*(-Jm+ Jp)*Jz**2*(112-41*X +3*X**2)+(Jm+ Jp)*Jz*(22356-12488*X +1785*X**2 -70*X**3)+35*(Jm-Jp)*(-144+108*X-20*X**2 +X**3))
elif [n,m] == [8, 2]:
matrix = 0.5*(858*(-Jm**2 + Jp**2)*Jz**5 +143*(Jm**2 + Jp**2)*Jz**6 -143*(Jm**2 + Jp**2)*Jz**4*(-22+ X) + 572*(Jm**2 - Jp**2)*Jz**3*(-12 + X) + 11*(Jm**2 + Jp**2)*Jz**2*(853 - 119*X +3*X**2)+22*(-Jm**2 +Jp**2)*Jz*(333-67*X+3*X**2) -(Jm**2 + Jp**2)*(-2520+702*X -53*X**2 + X**3))
elif [n,m] == [8, 3]:
matrix = 0.25*(Jp**3*(3+2*Jz)*(234*Jz**3 +39*Jz**4 -78*Jz*(-15+X)-106*X+3*X**2 - 13*Jz**2*(-57 + 2*X)+840) + Jm**3*(-3 + 2*Jz)*( - 234*Jz**3 + 39*Jz**4 + 78*Jz*(-15 + X) - 106*X + 3*X**2 - 13*Jz**2*(-57 + 2*X)+840))
elif [n,m] == [8, 4]:
matrix = 0.5*(520*(-Jm**4 + Jp**4)*Jz**3 +65*(Jm**4 + Jp**4)*Jz**4 -13*(Jm**4 + Jp**4)*Jz**2*(-139+2*X) + 52*(Jm**4 - Jp**4)*Jz*(-59 + 2*X) + (Jm**4 + Jp**4)*(2100 - 122*X + X**2))
elif [n,m] == [8, 5]:
matrix = 0.25*(Jm**5*(-5+2*Jz)*(-25*Jz+5*Jz**2 -X+42) + Jp**5*(5+2*Jz)*(25*Jz+5*Jz**2 -X+42))
elif [n,m] == [8, 6]:
matrix = 0.5*(90*(-Jm**6 + Jp**6)*Jz +15*(Jm**6 + Jp**6)*Jz**2 -(Jm**6 + Jp**6)*(-147+ X))
elif [n,m] == [8, 7]:
matrix = 0.25*(Jm**7*(-7+2*Jz)+Jp**7*(7+2*Jz))
elif [n,m] == [8, 8]:
matrix = 0.5*(Jm**8 + Jp**8)
elif [n,m] == [10,-10]:
matrix = -0.5j*(-Jm**10 + Jp**10)
elif [n,m] == [10,-9 ]:
matrix = -0.25j*(-Jm**9*(-9+2*Jz)+Jp**9*(9+2*Jz))
elif [n,m] == [10,-8 ]:
matrix = -0.5j*(-Jm**8*(-152*Jz+19*Jz**2 -X+324)+ Jp**8*(152*Jz+19*Jz**2 -X+324))
elif [n,m] == [10,-7 ]:
matrix = -0.25j*(-Jm**7*(-7+2*Jz)*(-133*Jz+19*Jz**2 -3*X+288) + Jp**7*(7+2*Jz)*(133*Jz+19*Jz**2 -3*X+288))
elif [n,m] == [10,-6 ]:
matrix = -0.5j*(3876*(Jm**6 + Jp**6)*Jz**3 +323*(-Jm**6 + Jp**6)*Jz**4 -17*(-Jm**6 + Jp**6)*Jz**2*(-1127+6*X) +102*(-Jm**6 - Jp**6)*Jz*(-443+6*X)+3*(-Jm**6 + Jp**6)*(14112-338*X + X**2))
elif [n,m] == [10,-5 ]:
matrix = -0.25j*(8075*(Jm**5 + Jp**5)*Jz**4 + 646*(-Jm**5 + Jp**5)*Jz**5 - 340*(-Jm**5 + Jp**5)*Jz**3*(-134 + X) + 425*(-Jm**5 - Jp**5)*Jz**2*(-329 + 6*X) +15*(Jm**5 + Jp**5)*(10584-500*X +5*X**2) +2*(-Jm**5 +Jp**5)*Jz*(114627-3625*X+15*X**2))
elif [n,m] == [10,-4 ]:
matrix = -0.5j*(3876*(Jm**4 + Jp**4)*Jz**5 +323*(-Jm**4 + Jp**4)*Jz**6 + 2040*(-Jm**4 - Jp**4)*Jz**3*(-39 + X) - 85*(-Jm**4 + Jp**4)*Jz**4*(-269 + 3*X) +12*(Jm**4 + Jp**4)*Jz*(16792-1075*X +15*X**2) +(-Jm**4 + Jp**4)*Jz**2*(168152-7305*X +45*X**2) -(-Jm**4 +Jp**4)*(-105840+9252*X-218*X**2 +X**3))
elif [n,m] == [10,-3 ]:
matrix = -0.25j*(6783*(Jm**3 + Jp**3)*Jz**6 +646*(-Jm**3 + Jp**3)*Jz**7 + 1785*(-Jm**3 - Jp**3)*Jz**4*(-79 + 3*X) - 119*(-Jm**3 + Jp**3)*Jz**5*(-329 + 6*X) + 63*(Jm**3 + Jp**3)*Jz**2*(8054 - 735*X + 15*X**2) +7*(-Jm**3 +Jp**3)*Jz**3*(47677-3000*X+30*X**2) +(-Jm**3 + Jp**3)*Jz*(453024-56154*X +1897*X**2 -14*X**3) +21*(-Jm**3-Jp**3)*(-8640+1392*X-68*X**2 +X**3))
elif [n,m] == [10,-2 ]:
matrix = -0.5j*(33592*(Jm**2 + Jp**2)*Jz**7 +4199*(-Jm**2 + Jp**2)*Jz**8 - 3094*(-Jm**2 + Jp**2)*Jz**6*(-59 + 2*X) + 6188*(-Jm**2 - Jp**2)*Jz**5*(-101 + 6*X) +91*(-Jm**2 + Jp**2)*Jz**4*(16601-1640*X +30*X**2) +364*(Jm**2 + Jp**2)*Jz**3*(6877-960*X +30*X**2) -26*(-Jm**2 + Jp**2)*Jz**2*(-106074+20230*X -1057*X**2 +14*X**3) +52*(-Jm**2 -Jp**2)*Jz*(-34956+8694*X-637*X**2 +14*X**3) +7*(-Jm**2 + Jp**2)*(77760-24768*X +2484*X**2 -92*X**3 + X**4))
elif [n,m] == [10,-1 ]:
matrix = 0.25*(37791*(Jm+ Jp)*Jz**8 +8398*(-Jm+ Jp)*Jz**9 +27846*(-Jm- Jp)*Jz**6*(-21+2*X)-5304*(-Jm+ Jp)*Jz**7*(-41+3*X) +546*(-Jm+ Jp)*Jz**5*(2603-474*X +18*X**2) +819*(Jm+ Jp)*Jz**4*(2661-620*X +30*X**2) + 234*(-Jm - Jp)*Jz**2*(-8186 + 3640*X - 427*X**2 + 14*X**3) -52*(-Jm+Jp)*Jz**3*(-49073+17073*X-1596*X**2 +42*X**3) + 63*(Jm + Jp)*(2880 - 2304*X + 508*X**2 - 40*X**3 + X**4) +6*(-Jm+ Jp)*Jz*(146904-90504*X +15946*X**2 -1022*X**3 +21*X**4))
elif [n,m] == [10, 0 ]:
matrix = 46189*Jz**10 -36465*Jz**8*(3*X-22)+3003*Jz**6*(-450*X +30*X**2+1199) -715*Jz**4*(+5481*X-966*X**2 +42*X**3-6248) - 63* X*(- 2304 *X + 508 *X**2 - 40*X**3 + X**4 + 2880 ) +33*Jz**2*(-78900*X +29680*X**2 -3290*X**3 +105*X**4 + 32208)
elif [n,m] == [10, 1 ]:
matrix = 0.25*(37791*(-Jm+ Jp)*Jz**8 +8398*(Jm+ Jp)*Jz**9 +27846*(Jm- Jp)*Jz**6*(-21+2*X)-5304*(Jm+ Jp)*Jz**7*(-41+3*X) +546*(Jm+ Jp)*Jz**5*(2603-474*X +18*X**2) +819*(-Jm+ Jp)*Jz**4*(2661-620*X +30*X**2) + 234*(Jm - Jp)*Jz**2*(-8186 + 3640*X - 427*X**2 + 14*X**3) -52*(Jm+Jp)*Jz**3*(-49073+17073*X-1596*X**2 +42*X**3) + 63*(-Jm + Jp)*(2880 - 2304*X + 508*X**2 - 40*X**3 + X**4) +6*(Jm+ Jp)*Jz*(146904-90504*X +15946*X**2 -1022*X**3 +21*X**4))
elif [n,m] == [10, 2 ]:
matrix = 0.5*(33592*(-Jm**2 + Jp**2)*Jz**7 +4199*(Jm**2 + Jp**2)*Jz**8 - 3094*(Jm**2 + Jp**2)*Jz**6*(-59 + 2*X) + 6188*(Jm**2 - Jp**2)*Jz**5*(-101 + 6*X) +91*(Jm**2 + Jp**2)*Jz**4*(16601-1640*X +30*X**2) +364*(-Jm**2 + Jp**2)*Jz**3*(6877-960*X +30*X**2) -26*(Jm**2 + Jp**2)*Jz**2*(-106074+20230*X -1057*X**2 +14*X**3) +52*(Jm**2 -Jp**2)*Jz*(-34956+8694*X-637*X**2 +14*X**3) +7*(Jm**2 + Jp**2)*(77760-24768*X +2484*X**2 -92*X**3 + X**4))
elif [n,m] == [10, 3 ]:
matrix = 0.25*(6783*(-Jm**3 + Jp**3)*Jz**6 +646*(Jm**3 + Jp**3)*Jz**7 + 1785*(Jm**3 - Jp**3)*Jz**4*(-79 + 3*X) - 119*(Jm**3 + Jp**3)*Jz**5*(-329 + 6*X) + 63*(-Jm**3 + Jp**3)*Jz**2*(8054 - 735*X + 15*X**2) +7*(Jm**3 +Jp**3)*Jz**3*(47677-3000*X+30*X**2) +(Jm**3 + Jp**3)*Jz*(453024-56154*X +1897*X**2 -14*X**3) +21*(Jm**3-Jp**3)*(-8640+1392*X-68*X**2 +X**3))
elif [n,m] == [10, 4 ]:
matrix = 0.5*(3876*(-Jm**4 + Jp**4)*Jz**5 +323*(Jm**4 + Jp**4)*Jz**6 + 2040*(Jm**4 - Jp**4)*Jz**3*(-39 + X) - 85*(Jm**4 + Jp**4)*Jz**4*(-269 + 3*X) +12*(-Jm**4 + Jp**4)*Jz*(16792-1075*X +15*X**2) +(Jm**4 + Jp**4)*Jz**2*(168152-7305*X +45*X**2) -(Jm**4 +Jp**4)*(-105840+9252*X-218*X**2 +X**3))
elif [n,m] == [10, 5 ]:
matrix = 0.25*(8075*(-Jm**5 + Jp**5)*Jz**4 + 646*(Jm**5 + Jp**5)*Jz**5 - 340*(Jm**5 + Jp**5)*Jz**3*(-134 + X) + 425*(Jm**5 - Jp**5)*Jz**2*(-329 + 6*X) +15*(-Jm**5 + Jp**5)*(10584-500*X +5*X**2) +2*(Jm**5 +Jp**5)*Jz*(114627-3625*X+15*X**2))
elif [n,m] == [10, 6 ]:
matrix = 0.5*(3876*(-Jm**6 + Jp**6)*Jz**3 +323*(Jm**6 + Jp**6)*Jz**4 -17*(Jm**6 + Jp**6)*Jz**2*(-1127+6*X) +102*(Jm**6 - Jp**6)*Jz*(-443+6*X)+3*(Jm**6 + Jp**6)*(14112-338*X + X**2))
elif [n,m] == [10, 7 ]:
matrix = 0.25*(Jm**7*(-7+2*Jz)*(-133*Jz+19*Jz**2 -3*X+288) + Jp**7*(7+2*Jz)*(133*Jz+19*Jz**2 -3*X+288))
elif [n,m] == [10, 8 ]:
matrix = 0.5*(Jm**8*(-152*Jz+19*Jz**2 -X+324)+ Jp**8*(152*Jz+19*Jz**2 -X+324))
elif [n,m] == [10, 9 ]:
matrix = 0.25*(Jm**9*(-9+2*Jz)+Jp**9*(9+2*Jz))
elif [n,m] == [10, 10]:
matrix = 0.5*(Jm**10 + Jp**10)
elif [n,m] == [12,-12]:
matrix = -0.5j*(-Jm**12 + Jp**12)
elif [n,m] == [12,-11]:
matrix = -0.25j*(-Jm**11*(2*Jz-11)+ Jp**11*(2*Jz+11))
elif [n,m] == [12,-10]:
matrix = -0.5j*(-Jm**10*(-230*Jz + 23*Jz**2 - X+605) + Jp**10*(230*Jz + 23*Jz**2 - X + 605))
elif [n,m] == [12,-9 ]:
matrix = -0.25j*(-Jm**9*(2*Jz-9)*(-207*Jz+23*Jz**2 -3*X+550) + Jp**9*(2*Jz+9)*(207*Jz+23*Jz**2 -3*X+550))
elif [n,m] == [12,-8 ]:
matrix = -0.5j*(2576*(Jm**8 + Jp**8)*Jz**3 +161*(-Jm**8 + Jp**8)*Jz**4 - 7*(-Jm**8 + Jp**8)*Jz**2*(-2365 + 6*X) + 56*(-Jm**8 - Jp**8)*Jz*(-893 + 6*X) +(-Jm**8 +Jp**8)*(59400-722*X+X**2))
elif [n,m] == [12,-7 ]:
matrix = -0.25j*(5635*(Jm**7 + Jp**7)*Jz**4 +322*(-Jm**7 + Jp**7)*Jz**5 - 140*(-Jm**7 + Jp**7)*Jz**3*(-306 + X) + 245*(-Jm**7 - Jp**7)*Jz**2*(-709+6*X)+35*(Jm**7 + Jp**7)*(9504-218*X + X**2) +2*(-Jm**7 +Jp**7)*Jz*(185749-2805*X+5*X**2))
elif [n,m] == [12,-6 ]:
matrix = -0.5j*(55062*(Jm**6 + Jp**6)*Jz**5 + 3059*(-Jm**6 + Jp**6)*Jz**6 - 665*(-Jm**6 + Jp**6)*Jz**4*(-688 + 3*X) + 7980*(-Jm**6 - Jp**6)*Jz**3*(-274 + 3*X) +19*(-Jm**6 + Jp**6)*Jz**2*(328739-6315*X +15*X**2) +114*(Jm**6 + Jp**6)*Jz*(87827-2535*X +15*X**2) -5*(-Jm**6 +Jp**6)*(-1397088+55578*X-575*X**2 +X**3))
elif [n,m] == [12,-5 ]:
matrix = -0.25j*(15295*(Jm**5 + Jp**5)*Jz**6 +874*(-Jm**5 + Jp**5)*Jz**7 + 3325*(-Jm**5 - Jp**5)*Jz**4*(-205 + 3*X) - 133*(-Jm**5 + Jp**5)*Jz**5*(-985 + 6*X) +19*(-Jm**5 + Jp**5)*Jz**3*(120079-3020*X +10*X**2) +95*(Jm**5 + Jp**5)*Jz**2*(51056-1905*X +15*X**2) +(-Jm**5 + Jp**5)*Jz*(6010260-306652*X +4135*X**2 -10*X**3) +5*(-Jm**5 -Jp**5)*(-665280+44076*X-880*X**2 +5*X**3))
elif [n,m] == [12,-4 ]:
matrix = -0.5j*(118864*(Jm**4 + Jp**4)*Jz**7 +7429*(-Jm**4 + Jp**4)*Jz**8 -4522*(-Jm**4 + Jp**4)*Jz**6*(-221+2*X)+18088*(-Jm**4 - Jp**4)*Jz**5*(-295+6*X) +323*(-Jm**4 + Jp**4)*Jz**4*(59767-2040*X +10*X**2) +2584*(Jm**4 + Jp**4)*Jz**3*(18439-920*X +10*X**2) -34*(-Jm**4 + Jp**4)*Jz**2*(-2279002+154234*X -2805*X**2 +10*X**3) +136*(-Jm**4 -Jp**4)*Jz*(-553650+48442*X-1285*X**2 +10*X**3) +5*(-Jm**4 +Jp**4)*(6652800-728400*X+26188*X**2-340*X**3 +X**4))
elif [n,m] == [12,-3 ]:
matrix = -0.25j*(200583*(Jm**3 + Jp**3)*Jz**8 + 14858*(-Jm**3 + Jp**3)*Jz**9 -7752*(-Jm**3 + Jp**3)*Jz**7*(-205+3*X)+40698*(-Jm**3 - Jp**3)*Jz**6*(-203+6*X) +1938*(-Jm**3 + Jp**3)*Jz**5*(15689-762*X +6*X**2) +2907*(Jm**3 + Jp**3)*Jz**4*(27541-1920*X +30*X**2) -68*(-Jm**3 +Jp**3)*Jz**3*(-2190575+205803*X-5280*X**2 +30*X**3) +306*(-Jm**3 -Jp**3)*Jz**2*(-610706+73962*X-2715*X**2 +30*X**3) +45*(Jm**3 + Jp**3)*(1108800-206400*X +13148*X**2 -340*X**3 +3*X**4) +6*(-Jm**3 + Jp**3)*Jz*(23730600-3600564*X+178042*X**2-3230*X**3 +15*X**4))
elif [n,m] == [12,-2 ]:
matrix = -0.5j*(74290*(Jm**2 + Jp**2)*Jz**9 + 7429*(-Jm**2 + Jp**2)*Jz**10 -4845*(-Jm**2 + Jp**2)*Jz**8*(-113+3*X)+38760*(-Jm**2 - Jp**2)*Jz**7*(-67+3*X) +9690*(Jm**2 + Jp**2)*Jz**5*(2501-258*X +6*X**2) +969*(-Jm**2 + Jp**2)*Jz**6*(9563-710*X +10*X**2) -85*(-Jm**2 + Jp**2)*Jz**4*(-554219+77439*X -3000*X**2 +30*X**3) +340*(-Jm**2-Jp**2)*Jz**3*(-193637+34803*X-1860*X**2 +30*X**3) +30*(Jm**2 +Jp**2)*Jz*(1228584-346356*X+32182*X**2 -1190*X**3 +15*X**4) + 3*(-Jm**2 + Jp**2)*Jz**2*(20983308-4771720*X+345870*X**2-9350*X**3 + 75*X**4) -3*(-Jm**2 + Jp**2)*(-3326400+1152000*X -135444*X**2 + 6808*X**3 - 145*X**4 + X**5))
elif [n,m] == [12,-1 ]:
matrix = -0.25j*(572033*(Jm + Jp)*Jz**10 + 104006*(-Jm + Jp)*Jz**11 - 124355*(-Jm + Jp)*Jz**9*(-37 + 2*X) + 373065*(-Jm - Jp)*Jz**8*(-44 + 3*X) +42636*(-Jm+ Jp)*Jz**7*(1383-180*X +5*X**2) +74613*(Jm+ Jp)*Jz**6*(1793-290*X +10*X**2) -6545*(-Jm+Jp)*Jz**5*(-39755+9498*X-630*X**2 +12*X**3) +6545*(-Jm-Jp)*Jz**4*(-53702+15879*X-1290*X**2 +30*X**3) +154*(-Jm+ Jp)*Jz**3*(2341414-937880*X +113055*X**2 -5100*X**3 +75*X**4) +231*(Jm+ Jp)*Jz**2*(1065768-531580*X +78120*X**2 -4250*X**3 +75*X**4) + 231*(-Jm - Jp)*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5) - 3*(-Jm+ Jp)*Jz*(-34637280+22740960*X -4531076*X**2 +367752*X**3 -12705*X**4 +154*X**5))
elif [n,m] == [12, 0 ]:
matrix = 676039*Jz**12 -323323*Jz**10*(-65+6*X)+138567*Jz**8*(1391-330*X +15*X**2) -17017*Jz**6*(-35945+17622*X-2010*X**2 +60*X**3) +1001*Jz**4*(606164-618090*X +139245*X**2 -10200*X**3 +225*X**4) + 231*X*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5 ) -39*Jz**2*(-3176160+8488392*X-3601048*X**2 +501116*X**3 -26565*X**4 +462*X**5)
elif [n,m] == [12, 1 ]:
matrix = 0.25*(572033*(-Jm + Jp)*Jz**10 + 104006*(Jm + Jp)*Jz**11 - 124355*(Jm + Jp)*Jz**9*(-37 + 2*X) + 373065*(Jm - Jp)*Jz**8*(-44 + 3*X) +42636*(Jm+ Jp)*Jz**7*(1383-180*X +5*X**2) +74613*(-Jm+ Jp)*Jz**6*(1793-290*X +10*X**2) -6545*(Jm+Jp)*Jz**5*(-39755+9498*X-630*X**2 +12*X**3) +6545*(Jm-Jp)*Jz**4*(-53702+15879*X-1290*X**2 +30*X**3) +154*(Jm+ Jp)*Jz**3*(2341414-937880*X +113055*X**2 -5100*X**3 +75*X**4) +231*(-Jm+ Jp)*Jz**2*(1065768-531580*X +78120*X**2 -4250*X**3 +75*X**4) + 231*(Jm - Jp)*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5) - 3*(Jm+ Jp)*Jz*(-34637280+22740960*X -4531076*X**2 +367752*X**3 -12705*X**4 +154*X**5))
elif [n,m] == [12, 2 ]:
matrix = 0.5*(74290*(-Jm**2 + Jp**2)*Jz**9 + 7429*(Jm**2 + Jp**2)*Jz**10 -4845*(Jm**2 + Jp**2)*Jz**8*(-113+3*X)+38760*(Jm**2 - Jp**2)*Jz**7*(-67+3*X) +9690*(-Jm**2 + Jp**2)*Jz**5*(2501-258*X +6*X**2) +969*(Jm**2 + Jp**2)*Jz**6*(9563-710*X +10*X**2) -85*(Jm**2 + Jp**2)*Jz**4*(-554219+77439*X -3000*X**2 +30*X**3) +340*(Jm**2-Jp**2)*Jz**3*(-193637+34803*X-1860*X**2 +30*X**3) +30*(-Jm**2 +Jp**2)*Jz*(1228584-346356*X+32182*X**2 -1190*X**3 +15*X**4) + 3*(Jm**2 + Jp**2)*Jz**2*(20983308-4771720*X+345870*X**2-9350*X**3 + 75*X**4) -3*(Jm**2 + Jp**2)*(-3326400+1152000*X -135444*X**2 + 6808*X**3 - 145*X**4 + X**5))
elif [n,m] == [12, 3 ]:
matrix = 0.25*(200583*(-Jm**3 + Jp**3)*Jz**8 + 14858*(Jm**3 + Jp**3)*Jz**9 -7752*(Jm**3 + Jp**3)*Jz**7*(-205+3*X)+40698*(Jm**3 - Jp**3)*Jz**6*(-203+6*X) +1938*(Jm**3 + Jp**3)*Jz**5*(15689-762*X +6*X**2) +2907*(-Jm**3 + Jp**3)*Jz**4*(27541-1920*X +30*X**2) -68*(Jm**3 +Jp**3)*Jz**3*(-2190575+205803*X-5280*X**2 +30*X**3) +306*(Jm**3 -Jp**3)*Jz**2*(-610706+73962*X-2715*X**2 +30*X**3) +45*(-Jm**3 + Jp**3)*(1108800-206400*X +13148*X**2 -340*X**3 +3*X**4) +6*(Jm**3 + Jp**3)*Jz*(23730600-3600564*X+178042*X**2-3230*X**3 +15*X**4))
elif [n,m] == [12, 4 ]:
matrix = 0.5*(118864*(-Jm**4 + Jp**4)*Jz**7 +7429*(Jm**4 + Jp**4)*Jz**8 -4522*(Jm**4 + Jp**4)*Jz**6*(-221+2*X)+18088*(Jm**4 - Jp**4)*Jz**5*(-295+6*X) +323*(Jm**4 + Jp**4)*Jz**4*(59767-2040*X +10*X**2) +2584*(-Jm**4 + Jp**4)*Jz**3*(18439-920*X +10*X**2) -34*(Jm**4 + Jp**4)*Jz**2*(-2279002+154234*X -2805*X**2 +10*X**3) +136*(Jm**4 -Jp**4)*Jz*(-553650+48442*X-1285*X**2 +10*X**3) +5*(Jm**4 +Jp**4)*(6652800-728400*X+26188*X**2-340*X**3 +X**4))
elif [n,m] == [12, 5 ]:
matrix = 0.25*(15295*(-Jm**5 + Jp**5)*Jz**6 +874*(Jm**5 + Jp**5)*Jz**7 + 3325*(Jm**5 - Jp**5)*Jz**4*(-205 + 3*X) - 133*(Jm**5 + Jp**5)*Jz**5*(-985 + 6*X) +19*(Jm**5 + Jp**5)*Jz**3*(120079-3020*X +10*X**2) +95*(-Jm**5 + Jp**5)*Jz**2*(51056-1905*X +15*X**2) +(Jm**5 + Jp**5)*Jz*(6010260-306652*X +4135*X**2 -10*X**3) +5*(Jm**5 -Jp**5)*(-665280+44076*X-880*X**2 +5*X**3))
elif [n,m] == [12, 6 ]:
matrix = 0.5*(55062*(-Jm**6 + Jp**6)*Jz**5 + 3059*(Jm**6 + Jp**6)*Jz**6 - 665*(Jm**6 + Jp**6)*Jz**4*(-688 + 3*X) + 7980*(Jm**6 - Jp**6)*Jz**3*(-274 + 3*X) +19*(Jm**6 + Jp**6)*Jz**2*(328739-6315*X +15*X**2) +114*(-Jm**6 + Jp**6)*Jz*(87827-2535*X +15*X**2) -5*(Jm**6 +Jp**6)*(-1397088+55578*X-575*X**2 +X**3))
elif [n,m] == [12, 7 ]:
matrix = 0.25*(5635*(-Jm**7 + Jp**7)*Jz**4 +322*(Jm**7 + Jp**7)*Jz**5 - 140*(Jm**7 + Jp**7)*Jz**3*(-306 + X) + 245*(Jm**7 - Jp**7)*Jz**2*(-709+6*X)+35*(-Jm**7 + Jp**7)*(9504-218*X + X**2) +2*(Jm**7 +Jp**7)*Jz*(185749-2805*X+5*X**2))
elif [n,m] == [12, 8 ]:
matrix = 0.5*(2576*(-Jm**8 + Jp**8)*Jz**3 +161*(Jm**8 + Jp**8)*Jz**4 - 7*(Jm**8 + Jp**8)*Jz**2*(-2365 + 6*X) + 56*(Jm**8 - Jp**8)*Jz*(-893 + 6*X) +(Jm**8 +Jp**8)*(59400-722*X+X**2))
elif [n,m] == [12, 9 ]:
matrix = 0.25*(Jm**9*(2*Jz-9)*(-207*Jz+23*Jz**2 -3*X+550) + Jp**9*(2*Jz+9)*(207*Jz+23*Jz**2 -3*X+550))
elif [n,m] == [12, 10]:
matrix = 0.5*(Jm**10*(-230*Jz + 23*Jz**2 - X + 605) + Jp**10*(230*Jz + 23*Jz**2 - X+605))
elif [n,m] == [12, 11]:
matrix = 0.25*(Jm**11*(2*Jz-11)+ Jp**11*(2*Jz+11))
elif [n,m] == [12, 12]:
matrix = 0.5*(Jm**12 + Jp**12)
return matrix.O
# return matrix
def StevensOp(J,n,m):
"""generate stevens operator for a given total angular momentum
and a given n and m state"""
Jz = Operator.Jz(J=J)
Jp = Operator.Jplus(J=J)
Jm = Operator.Jminus(J=J)
X = J*(J+1.)
if [n,m] == [0,0]:
return np.zeros((int(2*J+1), int(2*J+1)))
elif [n,m] == [1,0]:
matrix = Jz
elif [n,m] == [1,1]:
matrix = 0.5 *(Jp + Jm)
elif [n,m] == [1,-1]:
matrix = -0.5j *(Jp - Jm)
elif [n,m] == [2,2]:
matrix = 0.5 *(Jp**2 + Jm**2)
elif [n,m] == [2,1]:
matrix = 0.25*(Jz*(Jp + Jm) + (Jp + Jm)*Jz)
elif [n,m] == [2,0]:
matrix = 3*Jz**2 - X
elif [n,m] == [2,-1]:
matrix = -0.25j*(Jz*(Jp - Jm) + (Jp - Jm)*Jz)
elif [n,m] == [2,-2]:
matrix = -0.5j *(Jp**2 - Jm**2)
elif [n,m] == [3,3]:
matrix = 0.5 *(Jp**3 + Jm**3)
elif [n,m] == [3,2]:
matrix = 0.25 *((Jp**2 + Jm**2)*Jz + Jz*(Jp**2 + Jm**2))
elif [n,m] == [3,1]:
matrix = 0.25*((Jp + Jm)*(5*Jz**2 - X - 0.5) + (5*Jz**2 - X - 0.5)*(Jp + Jm))
elif [n,m] == [3,0]:
matrix = 5*Jz**3 - (3*X-1)*Jz
elif [n,m] == [3,-1]:
matrix = -0.25j*((Jp - Jm)*(5*Jz**2 - X - 0.5) + (5*Jz**2 - X - 0.5)*(Jp - Jm))
elif [n,m] == [3,-2]:
matrix = -0.25j*(Jz*(Jp**2 - Jm**2) + (Jp**2 - Jm**2)*Jz)
elif [n,m] == [3,-3]:
matrix = -0.5j *(Jp**3 - Jm**3)
elif [n,m] == [4,4]:
matrix = 0.5 *(Jp**4 + Jm**4)
elif [n,m] == [4,3]:
matrix = 0.25 *((Jp**3 + Jm**3)*Jz + Jz*(Jp**3 + Jm**3))
elif [n,m] == [4,2]:
matrix = 0.25 *((Jp**2 + Jm**2)*(7*Jz**2 -X -5) + (7*Jz**2 -X -5)*(Jp**2 + Jm**2))
elif [n,m] == [4,1]:
matrix = 0.25 *((Jp + Jm)*(7*Jz**3 -(3*X+1)*Jz) + (7*Jz**3 -(3*X+1)*Jz)*(Jp + Jm))
elif [n,m] == [4,0]:
matrix = 35*Jz**4 - (30*X -25)*Jz**2 + 3*X**2 - 6*X
elif [n,m] == [4,-4]:
matrix = -0.5j *(Jp**4 - Jm**4)
elif [n,m] == [4,-3]:
matrix = -0.25j *((Jp**3 - Jm**3)*Jz + Jz*(Jp**3 - Jm**3))
elif [n,m] == [4,-2]:
matrix = -0.25j *((Jp**2 - Jm**2)*(7*Jz**2 -X -5) + (7*Jz**2 -X -5)*(Jp**2 - Jm**2))
elif [n,m] == [4,-1]:
matrix = -0.25j *((Jp - Jm)*(7*Jz**3 -(3*X+1)*Jz) + (7*Jz**3 -(3*X+1)*Jz)*(Jp - Jm))
elif [n,m] == [6,6]:
matrix = 0.5 *(Jp**6 + Jm**6)
elif [n,m] == [6,5]:
matrix = 0.25*((Jp**5 + Jm**5)*Jz + Jz*(Jp**5 + Jm**5))
elif [n,m] == [6,4]:
matrix = 0.25*((Jp**4 + Jm**4)*(11*Jz**2 -X -38) + (11*Jz**2 -X -38)*(Jp**4 + Jm**4))
elif [n,m] == [6,3]:
matrix = 0.25*((Jp**3 + Jm**3)*(11*Jz**3 -(3*X+59)*Jz) + (11*Jz**3 -(3*X+59)*Jz)*(Jp**3 + Jm**3))
elif [n,m] == [6,2]:
matrix = 0.25*((Jp**2 + Jm**2)*(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102) +\
(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102)*(Jp**2 + Jm**2))
elif [n,m] == [6,1]:
matrix = 0.25*((Jp +Jm)*(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz) +\
(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz)*(Jp+ Jm))
elif [n,m] == [6,0]:
matrix = 231*Jz**6 - (315*X-735)*Jz**4 + (105*X**2 -525*X +294)*Jz**2 -\
5*X**3 + 40*X**2 - 60*X
elif [n,m] == [6,-6]:
matrix = -0.5j *(Jp**6 - Jm**6)
elif [n,m] == [6,-5]:
matrix = -0.25j*((Jp**5 - Jm**5)*Jz + Jz*(Jp**5 - Jm**5))
elif [n,m] == [6,-4]:
matrix = -0.25j*((Jp**4 - Jm**4)*(11*Jz**2 -X -38) + (11*Jz**2 -X -38)*(Jp**4 - Jm**4))
elif [n,m] == [6,-3]:
matrix = -0.25j*((Jp**3 - Jm**3)*(11*Jz**3 -(3*X+59)*Jz) + (11*Jz**3 -(3*X+59)*Jz)*(Jp**3 - Jm**3))
elif [n,m] == [6,-2]:
matrix = -0.25j*((Jp**2 - Jm**2)*(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102) +\
(33*Jz**4 -(18*X+123)*Jz**2 +X**2 +10*X +102)*(Jp**2 - Jm**2))
elif [n,m] == [6,-1]:
matrix = -0.25j*((Jp - Jm)*(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz) +\
(33*Jz**5 -(30*X-15)*Jz**3 +(5*X**2 -10*X +12)*Jz)*(Jp - Jm))
elif [n,m] == [8,-8]:
matrix = -0.5j*(-Jm**8 + Jp**8)
elif [n,m] == [8,-7]:
matrix = -0.25j*(-Jm**7*(-7+2*Jz)+Jp**7*(7+2*Jz))
elif [n,m] == [8,-6]:
matrix = -0.5j*(90*(Jm**6 + Jp**6)*Jz +15*(-Jm**6 + Jp**6)*Jz**2 -(-Jm**6 + Jp**6)*(-147+ X))
elif [n,m] == [8,-5]:
matrix = -0.25j*(-Jm**5*(-5+2*Jz)*(-25*Jz+5*Jz**2-X+42) + Jp**5*(5+2*Jz)*(25*Jz+5*Jz**2-X+42))
elif [n,m] == [8,-4]:
matrix = -0.5j*(520*(Jm**4 + Jp**4)*Jz**3 +65*(-Jm**4 + Jp**4)*Jz**4 -13*(-Jm**4 + Jp**4)*Jz**2*(-139+2*X) + 52*(-Jm**4 - Jp**4)*Jz*(-59 + 2*X) + (-Jm**4 + Jp**4)*(2100 - 122*X + X**2))
elif [n,m] == [8,-3]:
matrix = -0.25j*(Jp**3*(3+2*Jz)*(234*Jz**3 +39*Jz**4 -78*Jz*(-15+X)-106*X+3*X**2 - 13*Jz**2*(-57 + 2*X)+840) - Jm**3*(-3 + 2*Jz)*(- 234*Jz**3 + 39*Jz**4 + 78*Jz*(-15 + X) - 106*X + 3*X**2 - 13*Jz**2*(-57 + 2*X)+840))
elif [n,m] == [8,-2]:
matrix = -0.5j*(858*(Jm**2 + Jp**2)*Jz**5 +143*(-Jm**2 + Jp**2)*Jz**6 -143*(-Jm**2 + Jp**2)*Jz**4*(-22+ X) + 572*(-Jm**2 - Jp**2)*Jz**3*(-12 + X) + 11*(-Jm**2 + Jp**2)*Jz**2*(853 - 119*X +3*X**2)+22*(Jm**2 +Jp**2)*Jz*(333-67*X+3*X**2) -(-Jm**2 + Jp**2)*(-2520+702*X -53*X**2 + X**3))
elif [n,m] == [8,-1]:
matrix = -0.25j*(5005*(Jm + Jp)*Jz**6 + 1430*(-Jm + Jp)*Jz**7 + 5005*(-Jm - Jp)*Jz**4*(-7 + X) - 1001*(-Jm + Jp)*Jz**5*(-19 + 2*X) + 385*(-Jm + Jp)*Jz**3*(131 - 36*X + 2*X**2) +385*(Jm+ Jp)*Jz**2*(112-41*X +3*X**2)+(-Jm+ Jp)*Jz*(22356-12488*X +1785*X**2 -70*X**3)+35*(-Jm-Jp)*(-144+108*X-20*X**2 +X**3))
elif [n,m] == [8, 0]:
matrix = 0.5*(12870*Jz**8 -12012*Jz**6*(-9+2*X)+2310*Jz**4*(81-56*X +6*X**2) + 70*X*(-144 + 108*X - 20*X**2 + X**3) - 12*Jz**2*(-4566 + 9898*X - 3045*X**2 + 210*X**3))
elif [n,m] == [8, 1]:
matrix = 0.25*(5005*(-Jm + Jp)*Jz**6 + 1430*(Jm + Jp)*Jz**7 + 5005*(Jm - Jp)*Jz**4*(-7 + X) - 1001*(Jm + Jp)*Jz**5*(-19 + 2*X) + 385*(Jm + Jp)*Jz**3*(131 - 36*X + 2*X**2) +385*(-Jm+ Jp)*Jz**2*(112-41*X +3*X**2)+(Jm+ Jp)*Jz*(22356-12488*X +1785*X**2 -70*X**3)+35*(Jm-Jp)*(-144+108*X-20*X**2 +X**3))
elif [n,m] == [8, 2]:
matrix = 0.5*(858*(-Jm**2 + Jp**2)*Jz**5 +143*(Jm**2 + Jp**2)*Jz**6 -143*(Jm**2 + Jp**2)*Jz**4*(-22+ X) + 572*(Jm**2 - Jp**2)*Jz**3*(-12 + X) + 11*(Jm**2 + Jp**2)*Jz**2*(853 - 119*X +3*X**2)+22*(-Jm**2 +Jp**2)*Jz*(333-67*X+3*X**2) -(Jm**2 + Jp**2)*(-2520+702*X -53*X**2 + X**3))
elif [n,m] == [8, 3]:
matrix = 0.25*(Jp**3*(3+2*Jz)*(234*Jz**3 +39*Jz**4 -78*Jz*(-15+X)-106*X+3*X**2 - 13*Jz**2*(-57 + 2*X)+840) + Jm**3*(-3 + 2*Jz)*( - 234*Jz**3 + 39*Jz**4 + 78*Jz*(-15 + X) - 106*X + 3*X**2 - 13*Jz**2*(-57 + 2*X)+840))
elif [n,m] == [8, 4]:
matrix = 0.5*(520*(-Jm**4 + Jp**4)*Jz**3 +65*(Jm**4 + Jp**4)*Jz**4 -13*(Jm**4 + Jp**4)*Jz**2*(-139+2*X) + 52*(Jm**4 - Jp**4)*Jz*(-59 + 2*X) + (Jm**4 + Jp**4)*(2100 - 122*X + X**2))
elif [n,m] == [8, 5]:
matrix = 0.25*(Jm**5*(-5+2*Jz)*(-25*Jz+5*Jz**2 -X+42) + Jp**5*(5+2*Jz)*(25*Jz+5*Jz**2 -X+42))
elif [n,m] == [8, 6]:
matrix = 0.5*(90*(-Jm**6 + Jp**6)*Jz +15*(Jm**6 + Jp**6)*Jz**2 -(Jm**6 + Jp**6)*(-147+ X))
elif [n,m] == [8, 7]:
matrix = 0.25*(Jm**7*(-7+2*Jz)+Jp**7*(7+2*Jz))
elif [n,m] == [8, 8]:
matrix = 0.5*(Jm**8 + Jp**8)
elif [n,m] == [10,-10]:
matrix = -0.5j*(-Jm**10 + Jp**10)
elif [n,m] == [10,-9 ]:
matrix = -0.25j*(-Jm**9*(-9+2*Jz)+Jp**9*(9+2*Jz))
elif [n,m] == [10,-8 ]:
matrix = -0.5j*(-Jm**8*(-152*Jz+19*Jz**2 -X+324)+ Jp**8*(152*Jz+19*Jz**2 -X+324))
elif [n,m] == [10,-7 ]:
matrix = -0.25j*(-Jm**7*(-7+2*Jz)*(-133*Jz+19*Jz**2 -3*X+288) + Jp**7*(7+2*Jz)*(133*Jz+19*Jz**2 -3*X+288))
elif [n,m] == [10,-6 ]:
matrix = -0.5j*(3876*(Jm**6 + Jp**6)*Jz**3 +323*(-Jm**6 + Jp**6)*Jz**4 -17*(-Jm**6 + Jp**6)*Jz**2*(-1127+6*X) +102*(-Jm**6 - Jp**6)*Jz*(-443+6*X)+3*(-Jm**6 + Jp**6)*(14112-338*X + X**2))
elif [n,m] == [10,-5 ]:
matrix = -0.25j*(8075*(Jm**5 + Jp**5)*Jz**4 + 646*(-Jm**5 + Jp**5)*Jz**5 - 340*(-Jm**5 + Jp**5)*Jz**3*(-134 + X) + 425*(-Jm**5 - Jp**5)*Jz**2*(-329 + 6*X) +15*(Jm**5 + Jp**5)*(10584-500*X +5*X**2) +2*(-Jm**5 +Jp**5)*Jz*(114627-3625*X+15*X**2))
elif [n,m] == [10,-4 ]:
matrix = -0.5j*(3876*(Jm**4 + Jp**4)*Jz**5 +323*(-Jm**4 + Jp**4)*Jz**6 + 2040*(-Jm**4 - Jp**4)*Jz**3*(-39 + X) - 85*(-Jm**4 + Jp**4)*Jz**4*(-269 + 3*X) +12*(Jm**4 + Jp**4)*Jz*(16792-1075*X +15*X**2) +(-Jm**4 + Jp**4)*Jz**2*(168152-7305*X +45*X**2) -(-Jm**4 +Jp**4)*(-105840+9252*X-218*X**2 +X**3))
elif [n,m] == [10,-3 ]:
matrix = -0.25j*(6783*(Jm**3 + Jp**3)*Jz**6 +646*(-Jm**3 + Jp**3)*Jz**7 + 1785*(-Jm**3 - Jp**3)*Jz**4*(-79 + 3*X) - 119*(-Jm**3 + Jp**3)*Jz**5*(-329 + 6*X) + 63*(Jm**3 + Jp**3)*Jz**2*(8054 - 735*X + 15*X**2) +7*(-Jm**3 +Jp**3)*Jz**3*(47677-3000*X+30*X**2) +(-Jm**3 + Jp**3)*Jz*(453024-56154*X +1897*X**2 -14*X**3) +21*(-Jm**3-Jp**3)*(-8640+1392*X-68*X**2 +X**3))
elif [n,m] == [10,-2 ]:
matrix = -0.5j*(33592*(Jm**2 + Jp**2)*Jz**7 +4199*(-Jm**2 + Jp**2)*Jz**8 - 3094*(-Jm**2 + Jp**2)*Jz**6*(-59 + 2*X) + 6188*(-Jm**2 - Jp**2)*Jz**5*(-101 + 6*X) +91*(-Jm**2 + Jp**2)*Jz**4*(16601-1640*X +30*X**2) +364*(Jm**2 + Jp**2)*Jz**3*(6877-960*X +30*X**2) -26*(-Jm**2 + Jp**2)*Jz**2*(-106074+20230*X -1057*X**2 +14*X**3) +52*(-Jm**2 -Jp**2)*Jz*(-34956+8694*X-637*X**2 +14*X**3) +7*(-Jm**2 + Jp**2)*(77760-24768*X +2484*X**2 -92*X**3 + X**4))
elif [n,m] == [10,-1 ]:
matrix = 0.25*(37791*(Jm+ Jp)*Jz**8 +8398*(-Jm+ Jp)*Jz**9 +27846*(-Jm- Jp)*Jz**6*(-21+2*X)-5304*(-Jm+ Jp)*Jz**7*(-41+3*X) +546*(-Jm+ Jp)*Jz**5*(2603-474*X +18*X**2) +819*(Jm+ Jp)*Jz**4*(2661-620*X +30*X**2) + 234*(-Jm - Jp)*Jz**2*(-8186 + 3640*X - 427*X**2 + 14*X**3) -52*(-Jm+Jp)*Jz**3*(-49073+17073*X-1596*X**2 +42*X**3) + 63*(Jm + Jp)*(2880 - 2304*X + 508*X**2 - 40*X**3 + X**4) +6*(-Jm+ Jp)*Jz*(146904-90504*X +15946*X**2 -1022*X**3 +21*X**4))
elif [n,m] == [10, 0 ]:
matrix = 46189*Jz**10 -36465*Jz**8*(3*X-22)+3003*Jz**6*(-450*X +30*X**2+1199) -715*Jz**4*(+5481*X-966*X**2 +42*X**3-6248) - 63* X*(- 2304 *X + 508 *X**2 - 40*X**3 + X**4 + 2880 ) +33*Jz**2*(-78900*X +29680*X**2 -3290*X**3 +105*X**4 + 32208)
elif [n,m] == [10, 1 ]:
matrix = 0.25*(37791*(-Jm+ Jp)*Jz**8 +8398*(Jm+ Jp)*Jz**9 +27846*(Jm- Jp)*Jz**6*(-21+2*X)-5304*(Jm+ Jp)*Jz**7*(-41+3*X) +546*(Jm+ Jp)*Jz**5*(2603-474*X +18*X**2) +819*(-Jm+ Jp)*Jz**4*(2661-620*X +30*X**2) + 234*(Jm - Jp)*Jz**2*(-8186 + 3640*X - 427*X**2 + 14*X**3) -52*(Jm+Jp)*Jz**3*(-49073+17073*X-1596*X**2 +42*X**3) + 63*(-Jm + Jp)*(2880 - 2304*X + 508*X**2 - 40*X**3 + X**4) +6*(Jm+ Jp)*Jz*(146904-90504*X +15946*X**2 -1022*X**3 +21*X**4))
elif [n,m] == [10, 2 ]:
matrix = 0.5*(33592*(-Jm**2 + Jp**2)*Jz**7 +4199*(Jm**2 + Jp**2)*Jz**8 - 3094*(Jm**2 + Jp**2)*Jz**6*(-59 + 2*X) + 6188*(Jm**2 - Jp**2)*Jz**5*(-101 + 6*X) +91*(Jm**2 + Jp**2)*Jz**4*(16601-1640*X +30*X**2) +364*(-Jm**2 + Jp**2)*Jz**3*(6877-960*X +30*X**2) -26*(Jm**2 + Jp**2)*Jz**2*(-106074+20230*X -1057*X**2 +14*X**3) +52*(Jm**2 -Jp**2)*Jz*(-34956+8694*X-637*X**2 +14*X**3) +7*(Jm**2 + Jp**2)*(77760-24768*X +2484*X**2 -92*X**3 + X**4))
elif [n,m] == [10, 3 ]:
matrix = 0.25*(6783*(-Jm**3 + Jp**3)*Jz**6 +646*(Jm**3 + Jp**3)*Jz**7 + 1785*(Jm**3 - Jp**3)*Jz**4*(-79 + 3*X) - 119*(Jm**3 + Jp**3)*Jz**5*(-329 + 6*X) + 63*(-Jm**3 + Jp**3)*Jz**2*(8054 - 735*X + 15*X**2) +7*(Jm**3 +Jp**3)*Jz**3*(47677-3000*X+30*X**2) +(Jm**3 + Jp**3)*Jz*(453024-56154*X +1897*X**2 -14*X**3) +21*(Jm**3-Jp**3)*(-8640+1392*X-68*X**2 +X**3))
elif [n,m] == [10, 4 ]:
matrix = 0.5*(3876*(-Jm**4 + Jp**4)*Jz**5 +323*(Jm**4 + Jp**4)*Jz**6 + 2040*(Jm**4 - Jp**4)*Jz**3*(-39 + X) - 85*(Jm**4 + Jp**4)*Jz**4*(-269 + 3*X) +12*(-Jm**4 + Jp**4)*Jz*(16792-1075*X +15*X**2) +(Jm**4 + Jp**4)*Jz**2*(168152-7305*X +45*X**2) -(Jm**4 +Jp**4)*(-105840+9252*X-218*X**2 +X**3))
elif [n,m] == [10, 5 ]:
matrix = 0.25*(8075*(-Jm**5 + Jp**5)*Jz**4 + 646*(Jm**5 + Jp**5)*Jz**5 - 340*(Jm**5 + Jp**5)*Jz**3*(-134 + X) + 425*(Jm**5 - Jp**5)*Jz**2*(-329 + 6*X) +15*(-Jm**5 + Jp**5)*(10584-500*X +5*X**2) +2*(Jm**5 +Jp**5)*Jz*(114627-3625*X+15*X**2))
elif [n,m] == [10, 6 ]:
matrix = 0.5*(3876*(-Jm**6 + Jp**6)*Jz**3 +323*(Jm**6 + Jp**6)*Jz**4 -17*(Jm**6 + Jp**6)*Jz**2*(-1127+6*X) +102*(Jm**6 - Jp**6)*Jz*(-443+6*X)+3*(Jm**6 + Jp**6)*(14112-338*X + X**2))
elif [n,m] == [10, 7 ]:
matrix = 0.25*(Jm**7*(-7+2*Jz)*(-133*Jz+19*Jz**2 -3*X+288) + Jp**7*(7+2*Jz)*(133*Jz+19*Jz**2 -3*X+288))
elif [n,m] == [10, 8 ]:
matrix = 0.5*(Jm**8*(-152*Jz+19*Jz**2 -X+324)+ Jp**8*(152*Jz+19*Jz**2 -X+324))
elif [n,m] == [10, 9 ]:
matrix = 0.25*(Jm**9*(-9+2*Jz)+Jp**9*(9+2*Jz))
elif [n,m] == [10, 10]:
matrix = 0.5*(Jm**10 + Jp**10)
elif [n,m] == [12,-12]:
matrix = -0.5j*(-Jm**12 + Jp**12)
elif [n,m] == [12,-11]:
matrix = -0.25j*(-Jm**11*(2*Jz-11)+ Jp**11*(2*Jz+11))
elif [n,m] == [12,-10]:
matrix = -0.5j*(-Jm**10*(-230*Jz + 23*Jz**2 - X+605) + Jp**10*(230*Jz + 23*Jz**2 - X + 605))
elif [n,m] == [12,-9 ]:
matrix = -0.25j*(-Jm**9*(2*Jz-9)*(-207*Jz+23*Jz**2 -3*X+550) + Jp**9*(2*Jz+9)*(207*Jz+23*Jz**2 -3*X+550))
elif [n,m] == [12,-8 ]:
matrix = -0.5j*(2576*(Jm**8 + Jp**8)*Jz**3 +161*(-Jm**8 + Jp**8)*Jz**4 - 7*(-Jm**8 + Jp**8)*Jz**2*(-2365 + 6*X) + 56*(-Jm**8 - Jp**8)*Jz*(-893 + 6*X) +(-Jm**8 +Jp**8)*(59400-722*X+X**2))
elif [n,m] == [12,-7 ]:
matrix = -0.25j*(5635*(Jm**7 + Jp**7)*Jz**4 +322*(-Jm**7 + Jp**7)*Jz**5 - 140*(-Jm**7 + Jp**7)*Jz**3*(-306 + X) + 245*(-Jm**7 - Jp**7)*Jz**2*(-709+6*X)+35*(Jm**7 + Jp**7)*(9504-218*X + X**2) +2*(-Jm**7 +Jp**7)*Jz*(185749-2805*X+5*X**2))
elif [n,m] == [12,-6 ]:
matrix = -0.5j*(55062*(Jm**6 + Jp**6)*Jz**5 + 3059*(-Jm**6 + Jp**6)*Jz**6 - 665*(-Jm**6 + Jp**6)*Jz**4*(-688 + 3*X) + 7980*(-Jm**6 - Jp**6)*Jz**3*(-274 + 3*X) +19*(-Jm**6 + Jp**6)*Jz**2*(328739-6315*X +15*X**2) +114*(Jm**6 + Jp**6)*Jz*(87827-2535*X +15*X**2) -5*(-Jm**6 +Jp**6)*(-1397088+55578*X-575*X**2 +X**3))
elif [n,m] == [12,-5 ]:
matrix = -0.25j*(15295*(Jm**5 + Jp**5)*Jz**6 +874*(-Jm**5 + Jp**5)*Jz**7 + 3325*(-Jm**5 - Jp**5)*Jz**4*(-205 + 3*X) - 133*(-Jm**5 + Jp**5)*Jz**5*(-985 + 6*X) +19*(-Jm**5 + Jp**5)*Jz**3*(120079-3020*X +10*X**2) +95*(Jm**5 + Jp**5)*Jz**2*(51056-1905*X +15*X**2) +(-Jm**5 + Jp**5)*Jz*(6010260-306652*X +4135*X**2 -10*X**3) +5*(-Jm**5 -Jp**5)*(-665280+44076*X-880*X**2 +5*X**3))
elif [n,m] == [12,-4 ]:
matrix = -0.5j*(118864*(Jm**4 + Jp**4)*Jz**7 +7429*(-Jm**4 + Jp**4)*Jz**8 -4522*(-Jm**4 + Jp**4)*Jz**6*(-221+2*X)+18088*(-Jm**4 - Jp**4)*Jz**5*(-295+6*X) +323*(-Jm**4 + Jp**4)*Jz**4*(59767-2040*X +10*X**2) +2584*(Jm**4 + Jp**4)*Jz**3*(18439-920*X +10*X**2) -34*(-Jm**4 + Jp**4)*Jz**2*(-2279002+154234*X -2805*X**2 +10*X**3) +136*(-Jm**4 -Jp**4)*Jz*(-553650+48442*X-1285*X**2 +10*X**3) +5*(-Jm**4 +Jp**4)*(6652800-728400*X+26188*X**2-340*X**3 +X**4))
elif [n,m] == [12,-3 ]:
matrix = -0.25j*(200583*(Jm**3 + Jp**3)*Jz**8 + 14858*(-Jm**3 + Jp**3)*Jz**9 -7752*(-Jm**3 + Jp**3)*Jz**7*(-205+3*X)+40698*(-Jm**3 - Jp**3)*Jz**6*(-203+6*X) +1938*(-Jm**3 + Jp**3)*Jz**5*(15689-762*X +6*X**2) +2907*(Jm**3 + Jp**3)*Jz**4*(27541-1920*X +30*X**2) -68*(-Jm**3 +Jp**3)*Jz**3*(-2190575+205803*X-5280*X**2 +30*X**3) +306*(-Jm**3 -Jp**3)*Jz**2*(-610706+73962*X-2715*X**2 +30*X**3) +45*(Jm**3 + Jp**3)*(1108800-206400*X +13148*X**2 -340*X**3 +3*X**4) +6*(-Jm**3 + Jp**3)*Jz*(23730600-3600564*X+178042*X**2-3230*X**3 +15*X**4))
elif [n,m] == [12,-2 ]:
matrix = -0.5j*(74290*(Jm**2 + Jp**2)*Jz**9 + 7429*(-Jm**2 + Jp**2)*Jz**10 -4845*(-Jm**2 + Jp**2)*Jz**8*(-113+3*X)+38760*(-Jm**2 - Jp**2)*Jz**7*(-67+3*X) +9690*(Jm**2 + Jp**2)*Jz**5*(2501-258*X +6*X**2) +969*(-Jm**2 + Jp**2)*Jz**6*(9563-710*X +10*X**2) -85*(-Jm**2 + Jp**2)*Jz**4*(-554219+77439*X -3000*X**2 +30*X**3) +340*(-Jm**2-Jp**2)*Jz**3*(-193637+34803*X-1860*X**2 +30*X**3) +30*(Jm**2 +Jp**2)*Jz*(1228584-346356*X+32182*X**2 -1190*X**3 +15*X**4) + 3*(-Jm**2 + Jp**2)*Jz**2*(20983308-4771720*X+345870*X**2-9350*X**3 + 75*X**4) -3*(-Jm**2 + Jp**2)*(-3326400+1152000*X -135444*X**2 + 6808*X**3 - 145*X**4 + X**5))
elif [n,m] == [12,-1 ]:
matrix = -0.25j*(572033*(Jm + Jp)*Jz**10 + 104006*(-Jm + Jp)*Jz**11 - 124355*(-Jm + Jp)*Jz**9*(-37 + 2*X) + 373065*(-Jm - Jp)*Jz**8*(-44 + 3*X) +42636*(-Jm+ Jp)*Jz**7*(1383-180*X +5*X**2) +74613*(Jm+ Jp)*Jz**6*(1793-290*X +10*X**2) -6545*(-Jm+Jp)*Jz**5*(-39755+9498*X-630*X**2 +12*X**3) +6545*(-Jm-Jp)*Jz**4*(-53702+15879*X-1290*X**2 +30*X**3) +154*(-Jm+ Jp)*Jz**3*(2341414-937880*X +113055*X**2 -5100*X**3 +75*X**4) +231*(Jm+ Jp)*Jz**2*(1065768-531580*X +78120*X**2 -4250*X**3 +75*X**4) + 231*(-Jm - Jp)*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5) - 3*(-Jm+ Jp)*Jz*(-34637280+22740960*X -4531076*X**2 +367752*X**3 -12705*X**4 +154*X**5))
elif [n,m] == [12, 0 ]:
matrix = 676039*Jz**12 -323323*Jz**10*(-65+6*X)+138567*Jz**8*(1391-330*X +15*X**2) -17017*Jz**6*(-35945+17622*X-2010*X**2 +60*X**3) +1001*Jz**4*(606164-618090*X +139245*X**2 -10200*X**3 +225*X**4) + 231*X*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5 ) -39*Jz**2*(-3176160+8488392*X-3601048*X**2 +501116*X**3 -26565*X**4 +462*X**5)
elif [n,m] == [12, 1 ]:
matrix = 0.25*(572033*(-Jm + Jp)*Jz**10 + 104006*(Jm + Jp)*Jz**11 - 124355*(Jm + Jp)*Jz**9*(-37 + 2*X) + 373065*(Jm - Jp)*Jz**8*(-44 + 3*X) +42636*(Jm+ Jp)*Jz**7*(1383-180*X +5*X**2) +74613*(-Jm+ Jp)*Jz**6*(1793-290*X +10*X**2) -6545*(Jm+Jp)*Jz**5*(-39755+9498*X-630*X**2 +12*X**3) +6545*(Jm-Jp)*Jz**4*(-53702+15879*X-1290*X**2 +30*X**3) +154*(Jm+ Jp)*Jz**3*(2341414-937880*X +113055*X**2 -5100*X**3 +75*X**4) +231*(-Jm+ Jp)*Jz**2*(1065768-531580*X +78120*X**2 -4250*X**3 +75*X**4) + 231*(Jm - Jp)*(-86400 + 72000*X - 17544*X**2 + 1708*X**3 - 70*X**4 + X**5) - 3*(Jm+ Jp)*Jz*(-34637280+22740960*X -4531076*X**2 +367752*X**3 -12705*X**4 +154*X**5))
elif [n,m] == [12, 2 ]:
matrix = 0.5*(74290*(-Jm**2 + Jp**2)*Jz**9 + 7429*(Jm**2 + Jp**2)*Jz**10 -4845*(Jm**2 + Jp**2)*Jz**8*(-113+3*X)+38760*(Jm**2 - Jp**2)*Jz**7*(-67+3*X) +9690*(-Jm**2 + Jp**2)*Jz**5*(2501-258*X +6*X**2) +969*(Jm**2 + Jp**2)*Jz**6*(9563-710*X +10*X**2) -85*(Jm**2 + Jp**2)*Jz**4*(-554219+77439*X -3000*X**2 +30*X**3) +340*(Jm**2-Jp**2)*Jz**3*(-193637+34803*X-1860*X**2 +30*X**3) +30*(-Jm**2 +Jp**2)*Jz*(1228584-346356*X+32182*X**2 -1190*X**3 +15*X**4) + 3*(Jm**2 + Jp**2)*Jz**2*(20983308-4771720*X+345870*X**2-9350*X**3 + 75*X**4) -3*(Jm**2 + Jp**2)*(-3326400+1152000*X -135444*X**2 + 6808*X**3 - 145*X**4 + X**5))
elif [n,m] == [12, 3 ]:
matrix = 0.25*(200583*(-Jm**3 + Jp**3)*Jz**8 + 14858*(Jm**3 + Jp**3)*Jz**9 -7752*(Jm**3 + Jp**3)*Jz**7*(-205+3*X)+40698*(Jm**3 - Jp**3)*Jz**6*(-203+6*X) +1938*(Jm**3 + Jp**3)*Jz**5*(15689-762*X +6*X**2) +2907*(-Jm**3 + Jp**3)*Jz**4*(27541-1920*X +30*X**2) -68*(Jm**3 +Jp**3)*Jz**3*(-2190575+205803*X-5280*X**2 +30*X**3) +306*(Jm**3 -Jp**3)*Jz**2*(-610706+73962*X-2715*X**2 +30*X**3) +45*(-Jm**3 + Jp**3)*(1108800-206400*X +13148*X**2 -340*X**3 +3*X**4) +6*(Jm**3 + Jp**3)*Jz*(23730600-3600564*X+178042*X**2-3230*X**3 +15*X**4))
elif [n,m] == [12, 4 ]:
matrix = 0.5*(118864*(-Jm**4 + Jp**4)*Jz**7 +7429*(Jm**4 + Jp**4)*Jz**8 -4522*(Jm**4 + Jp**4)*Jz**6*(-221+2*X)+18088*(Jm**4 - Jp**4)*Jz**5*(-295+6*X) +323*(Jm**4 + Jp**4)*Jz**4*(59767-2040*X +10*X**2) +2584*(-Jm**4 + Jp**4)*Jz**3*(18439-920*X +10*X**2) -34*(Jm**4 + Jp**4)*Jz**2*(-2279002+154234*X -2805*X**2 +10*X**3) +136*(Jm**4 -Jp**4)*Jz*(-553650+48442*X-1285*X**2 +10*X**3) +5*(Jm**4 +Jp**4)*(6652800-728400*X+26188*X**2-340*X**3 +X**4))
elif [n,m] == [12, 5 ]:
matrix = 0.25*(15295*(-Jm**5 + Jp**5)*Jz**6 +874*(Jm**5 + Jp**5)*Jz**7 + 3325*(Jm**5 - Jp**5)*Jz**4*(-205 + 3*X) - 133*(Jm**5 + Jp**5)*Jz**5*(-985 + 6*X) +19*(Jm**5 + Jp**5)*Jz**3*(120079-3020*X +10*X**2) +95*(-Jm**5 + Jp**5)*Jz**2*(51056-1905*X +15*X**2) +(Jm**5 + Jp**5)*Jz*(6010260-306652*X +4135*X**2 -10*X**3) +5*(Jm**5 -Jp**5)*(-665280+44076*X-880*X**2 +5*X**3))
elif [n,m] == [12, 6 ]:
matrix = 0.5*(55062*(-Jm**6 + Jp**6)*Jz**5 + 3059*(Jm**6 + Jp**6)*Jz**6 - 665*(Jm**6 + Jp**6)*Jz**4*(-688 + 3*X) + 7980*(Jm**6 - Jp**6)*Jz**3*(-274 + 3*X) +19*(Jm**6 + Jp**6)*Jz**2*(328739-6315*X +15*X**2) +114*(-Jm**6 + Jp**6)*Jz*(87827-2535*X +15*X**2) -5*(Jm**6 +Jp**6)*(-1397088+55578*X-575*X**2 +X**3))
elif [n,m] == [12, 7 ]:
matrix = 0.25*(5635*(-Jm**7 + Jp**7)*Jz**4 +322*(Jm**7 + Jp**7)*Jz**5 - 140*(Jm**7 + Jp**7)*Jz**3*(-306 + X) + 245*(Jm**7 - Jp**7)*Jz**2*(-709+6*X)+35*(-Jm**7 + Jp**7)*(9504-218*X + X**2) +2*(Jm**7 +Jp**7)*Jz*(185749-2805*X+5*X**2))
elif [n,m] == [12, 8 ]:
matrix = 0.5*(2576*(-Jm**8 + Jp**8)*Jz**3 +161*(Jm**8 + Jp**8)*Jz**4 - 7*(Jm**8 + Jp**8)*Jz**2*(-2365 + 6*X) + 56*(Jm**8 - Jp**8)*Jz*(-893 + 6*X) +(Jm**8 +Jp**8)*(59400-722*X+X**2))
elif [n,m] == [12, 9 ]:
matrix = 0.25*(Jm**9*(2*Jz-9)*(-207*Jz+23*Jz**2 -3*X+550) + Jp**9*(2*Jz+9)*(207*Jz+23*Jz**2 -3*X+550))
elif [n,m] == [12, 10]:
matrix = 0.5*(Jm**10*(-230*Jz + 23*Jz**2 - X + 605) + Jp**10*(230*Jz + 23*Jz**2 - X+605))
elif [n,m] == [12, 11]:
matrix = 0.25*(Jm**11*(2*Jz-11)+ Jp**11*(2*Jz+11))
elif [n,m] == [12, 12]:
matrix = 0.5*(Jm**12 + Jp**12)
return matrix.O
# return matrix
def LS_StevensOp(L,S,n,m):
"""generate stevens operator for a given total angular momentum
and a given n and m state, but in the LS basis"""
lmatrix = StevensOp(L,n,m)
fullmatrix = np.hstack(np.hstack(np.multiply.outer(lmatrix, np.identity(int(2*S+1)))))
return fullmatrix