summaryrefslogtreecommitdiff
path: root/propagation.m
diff options
context:
space:
mode:
authorevmik <evmik@ligo.mit.edu>2006-07-07 18:53:15 -0400
committerevmik <evmik@ligo.mit.edu>2006-07-07 18:53:15 -0400
commit7b360bfa34159e5e030de95a9225e577de6ccbf5 (patch)
tree23f2b3112d5aa8513b14486066e892a112481483 /propagation.m
parent851fafb9650202e5cf0752fa88502b5bc7844504 (diff)
downloadmode_match-7b360bfa34159e5e030de95a9225e577de6ccbf5.tar.gz
mode_match-7b360bfa34159e5e030de95a9225e577de6ccbf5.zip
fromer abcd.m now split into two parts: one with function and one with calculations
darcs-hash:20060707225315-a6199-dd99472cdd723d83af758d86f38d23b91db05356
Diffstat (limited to 'propagation.m')
-rw-r--r--propagation.m84
1 files changed, 84 insertions, 0 deletions
diff --git a/propagation.m b/propagation.m
new file mode 100644
index 0000000..eb45c24
--- /dev/null
+++ b/propagation.m
@@ -0,0 +1,84 @@
+
+source("abcd.m")
+
+
+##########################################
+lambda= 1.064E-6 ;
+Ltot= 1 ;
+r0= 1.0E+100 ;
+w0= 25.63e-6;
+#w0= 3.79E-4 ;
+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=list(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=list(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", xb, wb, "2")
+
+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()
+system("cat answ.txt answ.txt")
+answ=menu("Is it reasonable mode matching?","yes","no")
+if (answ ==1)
+ printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxx")
+ system("cat answ.txt >>good_mode_matching.txt")
+else
+ printf("------------------------------")
+endif
+
+exit
+#
+#gset term postscript
+#gset output "foo.ps"
+#plot (x,w1, "1", xb, wb, "2")
+
+