1; % matrix of circular to linear transformation % [x, y, z]' = lin2circ * [r, l, z]' function transformation_matrix = circ2lin() transformation_matrix = ... [ ... [ 1/sqrt(2), 1/sqrt(2), 0]; ... [ 1i/sqrt(2),-1i/sqrt(2), 0]; ... [ 0, 0, 1] ... ]; endfunction % matrix of linear to circular transformation % [r, l, z]' = lin2circ * [x, y, z]' function transformation_matrix = lin2circ() transformation_matrix = ... [ ... [ 1/sqrt(2), -1i/sqrt(2), 0]; ... [ 1/sqrt(2), 1i/sqrt(2), 0]; ... [ 0, 0, 1] ... ]; endfunction % linear basis rotation % x axis untouched % z and y rotated by angle theta around 'x' axis % [x_new, y_new, z_new]' = oldlin2newlin * [x_old, y_old, z_old]' function oldlin2newlin_m = oldlin2newlin(theta) oldlin2newlin_m = [ ... [ 1, 0, 0]; ... [ 0, cos(theta), -sin(theta)]; ... [ 0, sin(theta), cos(theta)]... ]; endfunction % rotate x polarized light by angle phi around % light propagation axis (Z) function [E_field_x, E_field_y] = rotXpolarization(phi, E_field_linear) % important negative frequency behave as they rotate in opposite direction E_field_x=cos(phi)*E_field_linear; E_field_y=sin(phi)*E_field_linear; endfunction % rotate lin polarized light by angle phi around % light propagation axis (Z) function [E_field_x, E_field_y] = rotLinPolarization(phi, E_field_x_old, E_field_y_old) % important negative frequency behave as they rotate in opposite direction E_field_x=cos(phi)*E_field_x_old - sin(phi)*E_field_y_old; E_field_y=sin(phi)*E_field_x_old + cos(phi)*E_field_y_old; endfunction % transform x,y,z linearly polarized light in the lab/light system coordinate % to left, right, linear along z atom system of coordinate % atom magnetic field is along new axis Z wich is at angle theta with respect to % light propagation direction function E_field_pos_freq=xyz_lin2atomic_axis_polarization(theta, E_field_lab_pos_freq) coord_transf_m = lin2circ() * oldlin2newlin(theta); E_field_pos_freq.right = coord_transf_m(1,1)*E_field_lab_pos_freq.x + coord_transf_m(1,2)*E_field_lab_pos_freq.y + coord_transf_m(1,3)*E_field_lab_pos_freq.z; E_field_pos_freq.left = coord_transf_m(2,1)*E_field_lab_pos_freq.x + coord_transf_m(2,2)*E_field_lab_pos_freq.y + coord_transf_m(2,3)*E_field_lab_pos_freq.z; E_field_pos_freq.linear = coord_transf_m(3,1)*E_field_lab_pos_freq.x + coord_transf_m(3,2)*E_field_lab_pos_freq.y + coord_transf_m(3,3)*E_field_lab_pos_freq.z; endfunction % vim: ts=2:sw=2:fdm=indent