Problem AssignmentPH 360Due Apr. 16, 2007

Chapter 6: 2, 20, 23*, C1 (5), C2 (15)

C1.ZEMAX is an optical design program. Use one of the computers in Science 204. Logon as user “phlab”, password “electron”. Use Start, Physics, ZEMAX and load each of the demonstration files listed below. Each file has a .zmx extension. To get a feeling for the system, click the L3d button and use the arrow keys to get different views.

cylindercylindrical lens

dbgaussdouble Gauss

offaxisoff-axis parabola for an unobscured Gregorian

spidertelescope support spider for the secondary mirror

Here are some other files that you should open, look at the 3D diagram, and choose Reports, Surface Data. Record the thickness and diameter. Then choose Reports, System Data. Record the number of surfaces and the number of stops in the system.

hubbleHubble Space Telescope

cassrcCassegrain Ritchey-Chretien telescope

(same design as the Celestron C14 in our observatory)

cookea simple Cooke triplet lens

petzvalPetzval lens

tessr100P. Rudolph Tessar lens

wideang3210E wide angle lens

Exit ZEMAX.

C2.Use the True BASIC program THILEN (listing attached) to draw ray diagrams. In each part below, change the title of the graph to correspond to what is being displayed. Click on Start, Physics, TB Bronze. Load the file THILEN from the 360 folder. Run it to see what the graph looks like. Click anywhere on the graph to return to the program listing.

(a)Scale up the thick lens parameters of problem 6.20 by a factor of 100. Use these values in the appropriate data statements in THILEN. Draw several rays parallel to the axis of the lens. Examine your results closely and compare them to problem 6.23. You may want to change the vertical scale (ymin, ymax, ytick, ydot) to "zoom in" and determine the location of Fi more precisely. Hand in a hard copy of your graph by choosing File, Copy (notPrint), opening Word, and then CRTL-V. The results of parts b and c (below) can be added to this document.

(b)Scale up the parameters of the Tessar shown in Figure 6.10 by a factor of 10. Draw several rays parallel to the axis of the lens. Compare your results to those worked out on p. 251. Hand in a hard copy of your graph.

(c)Run the program again for a single diverging lens placed near the right side of the picture. You choose the parameters. Draw a few rays corresponding to the top and bottom of an "arrow object" positioned along the left edge of the graph. You may sketch the extra projected rays by hand or by adding a few lines to the program in the section where the "last ray" is drawn. Also, sketch in the object and the image. Describe the image (in words). What is the magnification (calculate it both ways)? Hand in a hard copy of your graph.

Program thilen ! Traces light rays through thick lenses.

! Reference: "Using Computers in Physics" by John Merrill, p. 124.

! Adapted by David Renneke.

! This is a graphics program which traces light rays through a series

! of media of different indices of refraction. The media are separated

! by spherical interfaces. The center of curvature and vertex of each

! spherical boundary is on the x-axis. The limits of the plotting

! window are: x = 0 to 100, y = -30 to 30. Rays start at x=0 and

! travel to the right.

dim n(30), x2(30), r2(30)

data 3 ! number of regions

data 1,1.5,1 ! index of refraction of the regions

data 10,15 ! vertices of each surface (left to right)

data 40,-40 ! radius of curvature of these surfaces

! For each ray, specify the starting point y (in cm) and the

! angle a (in degrees). a = 0 is horizontal.

data 8,0

data 4,0

data 0,0

data -4,0

data -8,0

read nreg ! number of regions

for i = 1 to nreg

read n(i) ! indices of refraction

next i

for i = 1 to nreg-1

read x2(i) ! vertices of each surface

next i

for i = 1 to nreg-1

read r2(i) ! radius of curvature

next i

declare public hmin,hmax,vmin,vmax

declare public xmin,xmax,xtick,xdot,ymin,ymax,ytick,ydot

declare public xorigin,yorigin,tick

declare public xtype,ytype

library "genplot.trc" ! contains subroutines 'graph' and 'mark'

call initialize ! set up values for display and user windows

clear ! clear screen

call graph ! draw grid

window #0 ! display window (full screen): (0,0) to (80,25)

T$ = "Thick lenses"

X$ = "x (cm)"

tcen = 40 - len(T$)/2

xcen = (hmax + hmin)/2 - len(X$)/2

plot text, at tcen,24.3: T$

plot text, at xcen,0.2: X$

plot text, at 0,13: "y (cm)"

window #1 ! user window to plot data and/or draw curves

for i=1 to nreg-1

theta=pi/2

for z = -theta to theta step theta/100

x = x2(i) + r2(i) - r2(i)*cos(z) ! move to starting point

y = abs(r2(i))*sin(z)

plot x,y; ! draw surface

next z

plot x,y ! turn off beam

next i

do

when error in

read y0,a ! read starting y value and initial angle (in deg.)

call ray ! draw the ray from left to right

use

exit do

end when

loop

sub ray

a = pi*a/180 ! convert to radians

x1 = xmin ! initial point on ray

y1 = y0

plot x1,y1;

for i = 1 to nreg ! go through the regions

if i = nreg then

y1 = y1 + tan(a)*(xmax - x1) ! final point on ray

x1 = xmax

plot x1,y1 ! draw ray, turn off beam

exit sub

end if

t = tan(a) ! slope of ray

r = r2(i)

x5 = x2(i) + r

e = t^2 + 1 ! coefficients in quadratic equation

f = 2*(y0*t - x5 - t^2*x1) ! for intersection of ray and next surface

g = y0^2 + x5^2 - r^2 + t^2*x1^2 - 2*y0*t*x1

f1 = f^2 - 4*e*g

if f1 =< 0 then

plot text, at x1+2,y1-.7: "Missed next surface"

plot x1,y1 ! turn off beam

exit sub

end if

if r<0 then ! x of intersection of ray with surface

x0 = (-f + sqr(f1))/(2*e)

else

x0=(-f - sqr(f1))/(2*e)

end if

y0 = y0 + t*(x0 - x1) ! y of intersection

x1 = x0 ! next point on ray

y1 = y0

plot x1,y1; ! draw ray

a1 = atn(y0/(x5 - x0)) ! angle of ray to x-axis

a3 = a1

a0 = a + a3 ! angle of ray to surface normal

for j=1 to 4

if abs(a0) - j*pi/2 <= 0 then ! find quadrant

j0 = j - 1

exit for

end if

next j

s1 = sin(a0)

s2 = n(i)*s1/n(i+1) ! Snell's law at surface

if abs(s2) >= 1 then

plot text, at x1+2,y1-.7: "Total internal reflection"

plot x1,y1 ! turn off beam

exit sub

end if

a2 = atn(s2/sqr(1 - s2^2)) ! find new angle

a2 = a2 - sgn(a0)*j0*pi/2

a = a2 - a3

next i

end sub

sub initialize ! establish values for both windows

! display window (full screen):

window #0

hrange = 80 ! character coordinates (80 hor. x 25 ver.)

vrange = 25

set window 0,hrange,0,vrange

hmin = 10 ! corners of user window in display

hmax = 76 ! window coordinates: (12,2.5) to (76,23.5)

vmin = 2.5

vmax = 23.5

! user window:

open #1: screen hmin/hrange,hmax/hrange,vmin/vrange,vmax/vrange

xmin = 0 ! left edge

xmax = 100 ! right edge

xtick = 10 ! hor. tick mark interval (0=no ticks)

xdot = 2 ! hor. dot spacing (0=no dots)

xtype = 0 ! x-axis type: 0=linear, 1=log-ticks,

! 2=log-both, 3=log-grid

ymin = -30 ! bottom edge

ymax = 30 ! top edge

ytick = 5 ! ver. tick mark interval (0=no ticks)

ydot = 2 ! ver. dot spacing (0=no dots)

ytype = 0 ! y-axis type: see xtype

window #1

set window xmin,xmax,ymin,ymax

xorigin = xmin ! origin of graph: (xorigin,yorigin)

yorigin = ymin

tick = 2 ! 1=single ticks, 2=double ticks, 3=grid lines

end sub

end