source("abcd.m") ########################################## # an example of 'answ.txt' file #lambda= 1.064E-6 ; #Ltot= 1 ; #r0= 1.0E+100 ; #w0= 25.63e-6; #lns1.abcd=abcd_lens( 0.25 ) ; #lns1.x= 0.37680270021479 ; #lns2.abcd=abcd_lens( 0.1 ) ; #lns2.x= 0.90277021575519 ; #rf=1e100; #wf=25.630e-6; ########################################## source("answ.txt") q0=waste_r2q(w0,r0,lambda); optics={lns1,lns2,lns3}; optics_forward=optics; x=0:.001:Ltot; printf("=================================\n") q1=prop(x,q0,optics); printf("=================================\n") w1=q2waste(q1, lambda); r1=q2radius(q1,lambda); printf("=================================\n") #q1b=prop(Ltot,q0,optics) #wb=q2waste(q1b, lambda) #rb=-q2radius(q1b,lambda) #because of back propogation rf=-rf; q1b=waste_r2q(wf,rf,lambda); lns1.x=Ltot-lns1.x; lns2.x=Ltot-lns2.x; lns3.x=Ltot-lns3.x; optics={lns3,lns2,lns1}; q2b=prop(x,q1b,optics); printf("=================================\n") wb=q2waste(q2b, lambda); rb=q2radius(q2b,lambda); xb=Ltot-x; #plot (x,w1, "1") plot (x,w1, "1;forward propagation;", xb, wb, "2;backward propagation;", x,-w1, "1;;", xb, -wb, "2;;") %gset term postscript; %gset output "waist_profile.ps" %replot %gset term png; %gset output "waist_profile.png" %replot %gset term gif; %gset output "waist_profile.gif" %replot printf("=================================\n") printf("======= final check =============\n") printf("======= after propogatin ========\n") printf("following are theoretical values: \n") w0 r0 wf rf q0=waste_r2q(w0,r0,lambda); optics=list(lns1,lns2,lns3); qtf=prop(Ltot, q0, optics_forward); printf("values below should match 'wf' and 'rf': \n") waste = q2waste(qtf, lambda) radius = q2radius(qtf,lambda) pause(100) quit()