Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Polarization Tensors in Detector's Frame

Project: sogro
Views: 237
Kernel: SageMath 8.2
%display latex
theta, phi, psi = var('theta, phi, psi')
R_z = matrix([[cos(x),-sin(x),0],[sin(x),cos(x),0],[0,0,1]])
R_y = matrix([[cos(x),0,sin(x)],[0,1,0],[-sin(x),0,cos(x)]])
R1 = R_z(x=phi); R1
R2 = R_y(x=theta); R2
R3 = R_z(x=psi); R3
Lambda = R1*R2*R3; Lambda
Lambda_inverse = R3(psi=-psi)*R2(theta=-theta)*R1(phi=-phi); Lambda_inverse.simplify_trig()
(Lambda*Lambda_inverse).simplify_trig()
e = [ matrix([[1,0,0],[0,-1,0],[0,0,0]]), matrix([[0,1,0],[1,0,0],[0,0,0]]), matrix([[1,0,0],[0,1,0],[0,0,0]]), matrix([[0,0,0],[0,0,0],[0,0,sqrt(2)]]), matrix([[0,0,1],[0,0,0],[1,0,0]]), matrix([[0,0,0],[0,0,1],[0,1,0]]) ]; e
e_bar = [] for i in range(6): e_bar.append(Lambda*e[i]*Lambda_inverse) show(e_bar[i].simplify_trig())
a = matrix(SR, 6,6) for i in range(6): for j in range(6): a[i,j] = sum(sum(e[i].elementwise_product(Lambda*e[j]*Lambda.transpose()/2))).simplify_trig() a
T = Spherical('radius', ['inclination', 'azimuth'])
r = var('r')
T.transform(radius=r, azimuth=phi, inclination=theta)
# cm = colormaps.hsv # def c(x,y): # return float((x+y+x*y)/15) % 1 # pol = ['+', 'cross', 'b', 'l', 'x', 'y'] # for j,k in [(0,0),(1,1),(2,2),(0,1),(1,2),(2,0)]: # for i in range(2): # print('polarization: '+pol[i]+', ('+str(j+1)+','+str(k+1)+') component') # show(plot3d(e_bar[i][j][k], (theta, 0, pi), (phi, 0, 2*pi), transformation=T, color=(c,cm)))