aboutsummaryrefslogtreecommitdiff
path: root/coupling_angles.m
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2011-07-06 09:58:29 -0400
committerEugeniy Mikhailov <evgmik@gmail.com>2011-07-06 09:58:29 -0400
commit5ab8d0809bed7e971fa3f4ce5950c4e052217263 (patch)
tree831d3f6025855abc1073bee5484e6a375a23be68 /coupling_angles.m
downloadwgmr-5ab8d0809bed7e971fa3f4ce5950c4e052217263.tar.gz
wgmr-5ab8d0809bed7e971fa3f4ce5950c4e052217263.zip
Add first prototype
Diffstat (limited to 'coupling_angles.m')
-rw-r--r--coupling_angles.m79
1 files changed, 79 insertions, 0 deletions
diff --git a/coupling_angles.m b/coupling_angles.m
new file mode 100644
index 0000000..3af9c87
--- /dev/null
+++ b/coupling_angles.m
@@ -0,0 +1,79 @@
+%% Calculates incident angle for proper coupling into the disc via prism
+
+% angle of the prism faces in degrees
+prism_angle=45;
+
+%% prism index of refraction
+% Rutile (TiO2) see http://refractiveindex.info/?group=CRYSTALS&material=TiO2
+n_rutile_o = 2.4885;
+n_rutile_e = 2.75324;
+n_p=n_rutile_o
+
+%% 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
+
+%% 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);
+% convert to degrees
+theta_p_in_degrees=theta_p*180/pi
+
+%% now lets see what angle it does with other face of the prism
+theta_p_in_degrees_2=-(theta_p_in_degrees-prism_angle)
+
+%% now we calculate refracted angle out of the prism into the air
+theta_air=asin(n_p*sin(theta_p_in_degrees_2/180*pi));
+% convert to degrees
+theta_air_in_degrees=theta_air*180/pi
+
+
+%% Lets make a picture
+% 1st face of the prism lays at y=0 and spans from x=-1 to x=1
+x_face_1=linspace(-1,1);
+y_face_1=0*x_face_1;
+% 2nd face to the right of origin and at angle prism_angle with respect to negative x direction
+x_face_2=linspace(1,0);
+y_face_2=(1-x_face_2)*tan(prism_angle/180*pi);
+% 3rd face to the left of origin and at angle prism_angle with respect to negative x direction
+x_face_3=linspace(-1,0);
+y_face_3=(x_face_3+1)*tan(prism_angle/180*pi);
+
+%% draw prism
+figure(1); hold off;
+plot(x_face_1, y_face_1, 'k-', x_face_2, y_face_2, 'k-', x_face_3, y_face_3, 'k-');
+hold on
+
+%% disk center will be located in point (0,-R);
+R=.5
+dc_x=0; dc_y=-R;
+x_disk=dc_x+R*cos(linspace(0,2*pi));
+y_disk=dc_y+R*sin(linspace(0,2*pi));
+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=cot(prism_angle)*(1-x)
+x_cross_1=cot(prism_angle/180*pi)/(cot(prism_angle/180*pi)+cot(theta_p));
+x_beam_prism_1=linspace(0,x_cross_1);
+y_beam_prism_1=linspace(0,x_cross_1)*cot(theta_p);
+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);
+
+% angle in the air relative to horizon
+theta_air_rlh=(theta_air_in_degrees-prism_angle)/180*pi;
+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);
+y_out_1=y_out_strt+tan(theta_air_rlh)*(x_out_1-x_out_strt);
+plot(x_out_1, y_out_1, 'r-');
+
+% force same aspect ratio for axis
+axis('square');