diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-09 16:03:44 -0400 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-09 16:03:44 -0400 |
commit | 6efadc24f8d3898b871114158afe1bcb3d00b378 (patch) | |
tree | a7b32fca1e5466ec4c0960dd31a03a8ea1fe9a30 /coupling_angles.m | |
parent | 87e8b220e6d3819b0225a9d4e2e3fd847ffb3b8e (diff) | |
download | wgmr-6efadc24f8d3898b871114158afe1bcb3d00b378.tar.gz wgmr-6efadc24f8d3898b871114158afe1bcb3d00b378.zip |
subindexes expanded, rutile coef match experiment
Diffstat (limited to 'coupling_angles.m')
-rw-r--r-- | coupling_angles.m | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/coupling_angles.m b/coupling_angles.m index ca7dcf0..9d31848 100644 --- a/coupling_angles.m +++ b/coupling_angles.m @@ -10,29 +10,29 @@ prism_angle = prism_angle_in_degrees*pi/180; n_rutile_o = 2.4885; n_rutile_e = 2.75324; -n_p=n_rutile_o +n_prism=n_rutile_e ; % for horizontal or p polarization %% disk material index of refraction % Magnesium Fluoride (MgF2) see http://refractiveindex.info/?group=CRYSTALS&material=MgF2 n_MgF2_o = 1.3751; n_MgF2_e = 1.38679; -n_d=n_MgF2_o +n_disk=n_MgF2_o %% critical angle for beam from prism to disk -% recall n_d*sin(theta_d)=n_p*sin(theta_p) where angles are counted from normal to the face -% and we want theta_d to be 90 degrees for the total internal reflection -theta_p=asin(n_d/n_p); +% recall n_d*sin(theta_disk)=n_prism*sin(theta_prism) where angles are counted from normal to the face +% and we want theta_disk to be 90 degrees for the total internal reflection +theta_prism=asin(n_disk/n_prism); % convert to degrees -theta_p_in_degrees=theta_p*180/pi +theta_prism_in_degrees=theta_prism*180/pi %% now lets see what angle it does with other face of the prism -theta_p_2=(prism_angle - theta_p); -theta_p_in_degrees_2=theta_p_2*180/pi +theta_prism_2=(prism_angle - theta_prism); +theta_prism_in_degrees_2=theta_prism_2*180/pi %% now we calculate refracted angle out of the prism into the air with respect to the normal % positive means above the normal -asin_arg=n_p*sin(theta_p_2); +asin_arg=n_prism*sin(theta_prism_2); if (abs(asin_arg)>1) error('quiting: at the right prism face we experienced total internal reflection'); end theta_air=asin(asin_arg); % convert to degrees @@ -68,16 +68,16 @@ plot(x_disk,y_disk,'k-') %% beam trace inside the prism % crossing of the beam with 1st (right) face of the prism -% we are solving cot(theta_p)*x=tan(prism_angle)*(1-x) -x_cross_1=tan(prism_angle)/(tan(prism_angle)+cot(theta_p)); -y_cross_1=x_cross_1*cot(theta_p); +% we are solving cot(theta_prism)*x=tan(prism_angle)*(1-x) +x_cross_1=tan(prism_angle)/(tan(prism_angle)+cot(theta_prism)); +y_cross_1=x_cross_1*cot(theta_prism); x_beam_prism_1=linspace(0,x_cross_1); -y_beam_prism_1=x_beam_prism_1*cot(theta_p); +y_beam_prism_1=x_beam_prism_1*cot(theta_prism); plot(x_beam_prism_1, y_beam_prism_1, 'r-'); %% beam out of prism x_out_strt=x_cross_1; -y_out_strt=x_cross_1*cot(theta_p); +y_out_strt=x_cross_1*cot(theta_prism); if (abs(theta_air_rlh)<pi/2) x_out_stop=1; else x_out_stop=0; end x_out_1=linspace(x_out_strt, x_out_stop); @@ -111,33 +111,33 @@ y_norm_in=linspace(0.,0.5); x_norm_in=y_norm_in*0; plot(x_norm_in, y_norm_in, 'b-'); -%% arc to show theta_p +%% arc to show theta_prism R_arc=.1; -phi_arc=linspace(pi/2-theta_p,pi/2); +phi_arc=linspace(pi/2-theta_prism,pi/2); x_arc_prism=R_arc*cos(phi_arc); y_arc_prism=R_arc*sin(phi_arc); plot(x_arc_prism, y_arc_prism, 'b-'); %% annotation theta_air_in_degrees -str=sprintf('theta_{p}=%.1f',theta_p_in_degrees); +str=sprintf('theta_{p}=%.1f',theta_prism_in_degrees); str=strcat('\',str,'^{o}'); text(x_arc_prism(1)+0.05, y_arc_prism(1), str); -%% arc to show theta_p_2 +%% arc to show theta_prism_2 R_arc=.1; -phi_arc=linspace(theta_norm_rlh+theta_p_2+pi,theta_norm_rlh+pi); +phi_arc=linspace(theta_norm_rlh+theta_prism_2+pi,theta_norm_rlh+pi); x_arc_prism_2=x_cross_1+R_arc*cos(phi_arc); y_arc_prism_2=y_cross_1+R_arc*sin(phi_arc); plot(x_arc_prism_2, y_arc_prism_2, 'b-'); %% annotation theta_air_in_degrees -str=sprintf('theta_{p2}=%.1f',theta_p_in_degrees_2); +str=sprintf('theta_{p2}=%.1f',theta_prism_in_degrees_2); str=strcat('\',str,'^{o}'); text(x_arc_prism_2(1)+.05,y_arc_prism_2(1), str); -str=sprintf('n_d=%.3f',n_d); +str=sprintf('n_{disk}=%.3f',n_disk); text(0,1.1, str); -str=sprintf('n_p=%.3f',n_p); +str=sprintf('n_{prism}=%.3f',n_prism); text(0,1.2, str); % force same aspect ratio for axis |