summaryrefslogtreecommitdiff
path: root/coupling_angles.m
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2011-07-09 16:03:44 -0400
committerEugeniy Mikhailov <evgmik@gmail.com>2011-07-09 16:03:44 -0400
commit6efadc24f8d3898b871114158afe1bcb3d00b378 (patch)
treea7b32fca1e5466ec4c0960dd31a03a8ea1fe9a30 /coupling_angles.m
parent87e8b220e6d3819b0225a9d4e2e3fd847ffb3b8e (diff)
downloadwgmr-6efadc24f8d3898b871114158afe1bcb3d00b378.tar.gz
wgmr-6efadc24f8d3898b871114158afe1bcb3d00b378.zip
subindexes expanded, rutile coef match experiment
Diffstat (limited to 'coupling_angles.m')
-rw-r--r--coupling_angles.m44
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