! This macro is intended to compute Polarization as a Jones Vector from Polarization Ray Trace. ! define the ray to be traced. hx = 0 hy = 1 px = 0 py = 0 wavelength = PWAV() last_surface=NSUR() FORMAT 4.3 PRINT "Trace this ray: " PRINT "hx = ", hx PRINT "hy = ", hy PRINT "px = ", px PRINT "py = ", py GOSUB get_trans trans_config_1 = intensity_1 electric_real_x = Ex_real electric_real_y = Ey_real electric_real_z = Ez_real electric_imag_x = Ex_imag electric_imag_y = Ey_imag electric_imag_z = Ez_imag A_x_1 = SQRT(Ex_real*Ex_real + Ex_imag*Ex_imag) A_y_1 = SQRT(Ey_real*Ey_real + Ey_imag*Ey_imag) A_z_1 = SQRT(Ez_real*Ez_real + Ez_imag*Ez_imag) Phase_x_1 = Phase_X_1 Phase_y_1 = Phase_Y_1 Phase_z_1 = Phase_Z_1 EMajor = SQRT(0.5*(A_x_1*A_x_1 + A_y_1*A_y_1 + SQRT((A_x_1*A_x_1*A_x_1*A_x_1) + (A_y_1*A_y_1*A_y_1*A_y_1) + 2*(A_x_1*A_x_1*A_y_1*A_y_1)*COSI(2*(Phase_x_1 - Phase_y_1))))) Eminor = SQRT(0.5*(A_x_1*A_x_1 + A_y_1*A_y_1 - SQRT((A_x_1*A_x_1*A_x_1*A_x_1) + (A_y_1*A_y_1*A_y_1*A_y_1) + 2*(A_x_1*A_x_1*A_y_1*A_y_1)*COSI(2*(Phase_x_1 - Phase_y_1))))) Epsilon = 0.0000000000001 Ap = (180/3.1415926535)*(1/2)*ATAN((2*A_x_1*A_y_1*COSI(Phase_x_1 - Phase_y_1)) / (A_x_1*A_x_1 - A_y_1*A_y_1 + Epsilon)) PRINT "Jones Vector Data Config 1" PRINT "A_x = ", A_x_1 PRINT "A_y = ", A_y_1 PRINT "Phase_x [deg] = ", Phase_x_1*(180/3.1415926535) PRINT "Phase_y [deg] = ", Phase_y_1*(180/3.1415926535) PRINT "Phase_diff [deg] = ", Phase_x_1*(180/3.1415926535) - Phase_y_1*(180/3.1415926535) PRINT "Major Axis Length = ", EMajor PRINT "Minor Axis Length = ", Eminor PRINT "Angle between Major and x-axis [deg] = ", Ap PRINT PRINT "Program End" END SUB get_trans POLDEFINE 0,1,150,60 SETCONFIG 1 intensity_1 = 0 POLTRACE hx, hy, px, py, wavelength, 1, last_surface !GOSUB print_vector Ex_real = VEC1(2) Ey_real = VEC1(3) Ez_real = VEC1(4) Ex_imag = VEC1(5) Ey_imag = VEC1(6) Ez_imag = VEC1(7) Phase_X_1 = VEC1(16) Phase_Y_1 = VEC1(17) Phase_Z_1 = VEC1(18) intensity_1 = (Ex_real*Ex_real) + (Ey_real*Ey_real) + (Ez_real*Ez_real) intensity_1 = intensity_1 + (Ex_imag*Ex_imag) + (Ey_imag*Ey_imag) + (Ez_imag*Ez_imag) RETURN SUB print_vector FORMAT 1.0 PRINT "Electric Field Data from each configuration" FORMAT 4.6  PRINT "Ex_real_1 = ", VEC1(2) PRINT "Ey_real_1 = ", VEC1(3) PRINT "Ez_real_1 = ", VEC1(4) PRINT "Ex_imag_1 = ", VEC1(5) PRINT "Ey_imag_1 = ", VEC1(6) PRINT "Ez_imag_1 = ", VEC1(7) PRINT RETURN