diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2010-01-21 20:05:30 +0000 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2010-01-21 20:05:30 +0000 |
commit | 7ab837a5ba1edbd8d544e1bb6f5857ee0146d754 (patch) | |
tree | 65e2b1d5dba2226462f7f2b4fc4542a3ec9db7f6 | |
parent | bd8cf4946962e609ee9b7f75bec4ff8ed764066e (diff) | |
download | multi_mode_eit-7ab837a5ba1edbd8d544e1bb6f5857ee0146d754.tar.gz multi_mode_eit-7ab837a5ba1edbd8d544e1bb6f5857ee0146d754.zip |
proper polarization rotation transformation for positive frequencies
-rw-r--r-- | basis_transformation.m | 46 | ||||
-rw-r--r-- | useful_functions.m | 13 |
2 files changed, 45 insertions, 14 deletions
diff --git a/basis_transformation.m b/basis_transformation.m index 179e333..82945fe 100644 --- a/basis_transformation.m +++ b/basis_transformation.m @@ -2,20 +2,26 @@ % matrix of circular to linear transformation % [x, y, z]' = lin2circ * [r, l, z]' -circ2lin= [ ... - [ 1/sqrt(2), 1/sqrt(2), 0]; ... - [-1i/sqrt(2), 1i/sqrt(2), 0]; ... - [ 0, 0, 1] ... - ]; +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]' -lin2circ= [ - [ 1/sqrt(2), 1i/sqrt(2), 0]; ... - [ 1/sqrt(2), -1i/sqrt(2), 0]; ... - [ 0, 0, 1] ... - ]; - +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 @@ -30,10 +36,22 @@ 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, modulation_freq) +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*sign(modulation_freq)).*E_field_linear; - E_field_y=sin(phi*sign(modulation_freq)).*E_field_linear; + E_field_x=cos(phi)*E_field_linear; + E_field_y=sin(phi)*E_field_linear; 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 diff --git a/useful_functions.m b/useful_functions.m index 2eef299..e675ba1 100644 --- a/useful_functions.m +++ b/useful_functions.m @@ -307,5 +307,18 @@ function total_absorption=total_field_absorption(atom_field_problem) total_absorption=sum(total_absorption_v); endfunction +% create full list of atom modulation frequencies from positive light frequency amplitudes +function [modulation_freq, E_field_amplitudes] = ... +light_positive_frequencies_and_amplitudes2full_set_of_modulation_frequencies_and_amlitudes(... + positive_light_frequencies, positive_light_field_amplitudes ) + % we should add 0 frequency as first element of our frequencies list + modulation_freq = cat(2, 0, positive_light_frequencies, -positive_light_frequencies); + % negative frequencies have complex conjugated light fields amplitudes + E_field_amplitudes.left = cat(2, 0, positive_light_field_amplitudes.left, conj(positive_light_field_amplitudes.left) ); + E_field_amplitudes.right = cat(2, 0, positive_light_field_amplitudes.right, conj(positive_light_field_amplitudes.right) ); + E_field_amplitudes.linear = cat(2, 0, positive_light_field_amplitudes.linear, conj(positive_light_field_amplitudes.linear) ); +endfunction + + % vim: ts=2:sw=2:fdm=indent |