Problem Assignment PH 360 Due 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. cylinder dbgauss offaxis spider cylindrical lens double Gauss off-axis parabola for an unobscured Gregorian telescope 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. hubble cassrc cooke petzval tessr100 wideang3 Hubble Space Telescope Cassegrain Ritchey-Chretien telescope (same design as the Celestron C14 in our observatory) a simple Cooke triplet lens Petzval lens P. Rudolph Tessar lens 210E 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 (not Print), 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 data data data data 8,0 4,0 0,0 -4,0 -8,0 read nreg for i = 1 to nreg read n(i) next i for i = 1 to nreg-1 read x2(i) next i for i = 1 to nreg-1 read r2(i) next i declare declare declare declare public public public public ! number of regions ! indices of refraction ! vertices of each surface ! radius of curvature hmin,hmax,vmin,vmax xmin,xmax,xtick,xdot,ymin,ymax,ytick,ydot xorigin,yorigin,tick xtype,ytype library "genplot.trc" call initialize clear ! contains subroutines 'graph' and 'mark' ! set up values for display and user windows ! 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 call ray use exit do end when loop ! read starting y value and initial angle (in deg.) ! draw the ray from left to right sub ray a = pi*a/180 x1 = xmin y1 = y0 plot x1,y1; ! convert to radians ! initial point on ray 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 x0 = (-f + sqr(f1))/(2*e) else x0=(-f - sqr(f1))/(2*e) end if ! x of intersection of ray with surface y0 = y0 + t*(x0 - x1) x1 = x0 y1 = y0 ! y of intersection ! next point on ray plot a1 = a3 = a0 = x1,y1; atn(y0/(x5 - x0)) a1 a + a3 ! draw ray ! angle of ray to x-axis ! angle of ray to surface normal for j=1 to 4 if abs(a0) - j*pi/2 <= 0 then j0 = j - 1 exit for end if next j ! find quadrant 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