w0 =1E-3 lam =355E-9 zR = bs.Zr(w0, lam) z0 =0 d = sym.symbols('d') M = bs.mult(bs.prop(d), bs.lens(.5), bs.prop(1)) R, w = bs.q1_inv_func(0, w0, lam, M) bs.plot(w, d, rang = np.arange(0,1,.01))
使用两个透镜系统扩展和准直光束
w0 =1E-3 lam =355E-9 zR = bs.Zr(w0, lam) z0 =0 d1, d2, d3, f1, f2 = sym.symbols('d1 d2 d3 f1 f2') M = bs.mult(bs.prop(d3),bs.lens(f2),bs.prop(d2), bs.lens(f1), bs.prop(d1)) R, w = bs.q1_inv_func(0, w0, lam, M)
准直光束
R_coll = R.subs(d1,1).subs(d2,1).subs(f1,.17).subs(d3,0) f2_coll = sym.solve(1/R_coll,f2)[0] print('f2 = {:.2f}, for a collimated beam, 5x the original waist, after propagating 1m to the first lens of f1 = .17m, and propagating another 1m to the second lens'.format(f2_coll))
绘制第二个透镜之后的光束轮廓,并查看其是否准直。
M = bs.mult(bs.prop(d3),bs.lens(.83),bs.prop(1), bs.lens(.17), bs.prop(1)) R, w = bs.q1_inv_func(0, w0, lam, M) bs.plot(w,d3)