文章目录
- 点光源
- 平面波
- 高斯光束
点光源
LightPipes中提供了四种基础光源,即点光源,平面波、高斯光束和Airy光束。最简单的自然是点光源,除了栅格化光场之外,只需输入点光源的x , y x,yx,y坐标即可。下面考察其传播特性,即点光源在传输10mm和10m后分别如下图所示,可见点光源模型在传输时默认通过一个方形孔径。
fromLightPipesimport*importmatplotlib.pyplotasplt Fin=Begin(5*mm,532*nm,512)dct={}dct["ps"]=PointSource(Fin,0,0)dct["10mm"]=Forvard(dct["ps"],10*mm)# 传播 10mmdct["10m"]=Forvard(dct["ps"],10*m)# 传播 10mdefdrawDct(dct,st):fori,keyinenumerate(dct):ax=plt.subplot(st+i)ax.imshow(Intensity(0,dct[key]))plt.title(key)plt.axis('off')plt.show()drawDct(dct,131)平面波
和点光源相比,平面波多了半径参数w,倾斜参数tx, ty以及偏移参数x_shift, y_shift。其传播结果如下,可见,在物理光学理论中,平面波在传播到远场之后,能量也会损失掉。
代码如下
fromLightPipesimport*importmatplotlib.pyplotasplt Fin=Begin(5*mm,532*nm,512)dct={}w=1*mm dct["PlaneWave"]=PlaneWave(Fin,w)dct["10mm"]=Forvard(dct["PlaneWave"],10*mm)# 传播 10mmdct["10m"]=Forvard(dct["PlaneWave"],10*m)# 传播 10mdrawDct(dct,131)高斯光束
【GaussBeam】是LightPipes中完备的高斯光束生成方案,其内容复杂,需要专门讲解。相比之下,【GaussHermite】和【GaussLaguerre】实现了基础的高斯厄米特和高斯拉盖尔光束,此二者分别是方形和圆形谐振器的出射光场,二者的函数签名如下。
GaussHermite(Fin,w0,m=0,n=0,A=1.0)GaussLaguerre(Fin,w0,p=0,l=0,A=1.0,ecs=1)其光场分布为
- GaussHermite:A H m ( 2 x ω 0 ) H n ( 2 y ω 0 ) exp [ − x 2 + y 2 ω 0 2 ] AH_m\left(\frac{\sqrt{2}x}{\omega_0}\right)H_n\left(\frac{\sqrt{2}y}{\omega_0}\right)\exp\left[-\frac{x^2+y^2}{\omega^2_0}\right]AHm(ω02x)Hn(ω02y)exp[−ω02x2+y2]
- GaussLaguerre:A ( ρ ) ∣ l ∣ 2 L l p ( ρ ) e − ρ 2 cos ( l θ ) A(\rho)^\frac{|l|}{2}L^p_l(\rho)e^{-\frac{\rho}{2}}\cos(l\theta)A(ρ)2∣l∣Llp(ρ)e−2ρcos(lθ)
下面查看G H 11 GH_{11}GH11光束在传播10mm和10m之后的表现
Fin=Begin(5*mm,532*nm,512)dct={}w0=1*mm dct["GaussHermite"]=GaussHermite(Fin,w0,1,1)dct["10mm"]=Forvard(dct["GaussHermite"],10*mm)# 传播 10mmdct["10m"]=Forvard(dct["GaussHermite"],10*m)# 传播 10mdrawDct(dct,131)