/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 17.10.0 ] */ /* [wxMaxima: title start ] Theorems for non-covariant transverse photon polarization vectors [wxMaxima: title end ] */ /* [wxMaxima: comment start ] photon1.wxm, Nov. 6, 2018 Edwin (Ted) Woollett, Maxima by Example Ch. 12, Dirac Algebra and Quantum Electrodynamics, ver. 3, "Dirac3" http://web.csulb.edu/~woollett/ ---------------------------------------------------------- Two theorems satisfied by the real linear polarixation vectors of a physical massless photon. Consider a scattered photon k_vec --> kp_vec. Assume the scattering plane is z-x plane. k_vec is directed along the +z axis and has magnitude k. kp_vec lies in the z-x plane and has magnitude kp (think "k-prime"). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] In general, we define 3-vectors as lists, say L1 and L2. Then the dot product (scalar product) is produced via L1 . L2 The usual vector cross product is returned as a list using the dirac3 package function vprod (L1, L2). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(dirac3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Let's add a function which returns the norm of a 3-vector X. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ norm3 (X) := trigsimp ( sqrt (X . X))$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Here is our list-based implementation: assume the scattering plane is z-x plane k_vec is directed along the +z axis and has magnitude k kp_vec lies in the z-x plane and has magnitude kp [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Definitions of k_vec and kp_vec [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ k_vec : [0, 0, k]$ /* initial photon 3-momentum */ assume ( k > 0 )$ /* so sqrt ( k^2 ) => k and not |k| */ kp_vec : [kp*sin(th), 0, kp*cos(th)]$ /* final photon 3-momentum */ assume ( kp > 0 )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ norm3 (k_vec); norm3 (kp_vec); k_vec . kp_vec; /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Definitions of real polarization 3-vectors ek[r] and ekp[s] [wxMaxima: section end ] */ /* [wxMaxima: comment start ] A pair of real polarization 3-vectors with the labels ek[1] and ek[2] are defined to be unit vectors perpendicular to the incident photon 3-momentum vector k_vec, so ek[1] . k_vec => 0, ek[2] . k_vec => 0, and we have the right-hand rule cross product relation vprod ( ek[1], ek[2] ) => k_vec/k, a unit vector along k_vec. Let ek[1] be a unit vector directed along the positive x-axis, and let ek[2] be a unit vector directed along the positive y-axis. Check orthonormality of the set of two polarization 3-vectors, and orthogonality with respect to the initial photon 3-momentum k_vec. In addition to the package function vprod, we have the package function Cross ( j, X, Y). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ek[1] : [1,0,0]$ ek[2] : [0,1,0]$ vprod ( ek[1], ek[2] ); Cross (3, ek[1], ek[2] ); norm3 (ek[1]); norm3 (ek[2]); ek[1] . k_vec; ek[2] . k_vec; /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] Definitions of vprod and Cross [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] vprod and Cross are defined in the Dirac3 package. vprod (L1, L2) returns a list of the components of the cross product of a pair of 3-vectors (each represented by a list). Cross (j, L1, L2) returns the j'th component of L1 X L2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ fundef (Cross); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fundef (vprod); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] eps3[ i, j, k] is the completely anti-symmetric 3-tensor, defined in the dirac3 package. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ eps3[1,2,3]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ eps3[1,3,2]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ eps3[1,2,2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Next, define a pair of unit polarization vectors ekp[1] and ekp[2], orthogonal to each other, and both perpendicular to the photon final 3-momenum kp_vec. Let ekp[1] lie in the z-x scattering plane, and let ekp[2] be perpendicular to the scattering plane, and such that ekp[1] X ekp[2] = kp_vec/kp = a unit vector in the direction of kp_vec. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] The polarization 3-vector ekp[1] lies in the z-x scattering plane : [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ekp[1] : [cos(th), 0, -sin(th)]$ norm3 (ekp[1] ); ekp[1] . kp_vec; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The polarization 3-vector ekp[2] is perpendicular to the z-x scattering plane: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ekp[2] : [0,1,0]$ norm3 (ekp[2] ); ekp[2] . ekp[1]; ekp[2] . kp_vec; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is (equal ( vprod (ekp[1], ekp[2]), kp_vec/ kp) ); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Theorem 1 [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Theorem 1: The following double sum of the squares of the scalar products of the four photon polarization vectors, defined as above, ek[s] and ekp[r], summed over r and s from 1 to 2 adds up to the expression 1 + cos(th)^2. In the following formal (unevaluated) definition of Sum 1, the single quotes prevent immediate action ( produces "noun forms"). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Sum1 : 'sum ('sum ( (ek[s] . ekp[r])^2,s,1,2),r,1,2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Use ev (expr, nouns) to accomplish an active evaluation of the expression expr. The arg 'nouns' causes the evaluation of noun forms (typically unevaluated functions such as 'integrate or 'diff) in expr. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ev ( Sum1, nouns ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Alternatively, we could just remove the single quotes by hand: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sum (sum ( (ek[s] . ekp[r])^2,s,1,2),r,1,2); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Theorem 2 [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Theorem 2 For fixed r, if we only sum over s in the above, the result is 1 - (ku . ekp[r])^2 where ku is a unit vector along k_vec. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ku : k_vec / k; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] For either value of r, Sum2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Sum2 : 'sum ( (ek[s] . ekp[r])^2, s, 1, 2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] should be equal to: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Result : 'trigsimp ( 1 - ( 'ku . ekp[r] )^2 ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] check case r = 1: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ev (Sum2, r = 1, nouns); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev (Result, r = 1, nouns ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] check case r = 2: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ev (Sum2, r = 2, nouns); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev (Result, r = 2, nouns ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] which establishes theorem 2. [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$