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)