当前位置: 首页 > news >正文

sympy高斯光束模型

文章目录

    • Gauss模型
    • sympy封装
    • 实战

sympy.phisics.optics.gaussopt集成了高斯光学中的常见对象,包括光线和光学元件等,有了这些东西,就可以制作一个光学仿真系统。

Gauss模型

高斯光束的基本模型为

E(r,z)=E0ω0ω(z)exp⁡[−r2ω2(z)]exp⁡[−ikz−ikr22R(z)+iζ(z)]E(r,z)=E_0\frac{\omega_0}{\omega(z)}\exp{[-\frac{r^2}{\omega^2(z)}]}\exp\big[-ikz-ik\frac{r^2}{2R(z)}+i\zeta(z)\big] E(r,z)=E0ω(z)ω0exp[ω2(z)r2]exp[ikzik2R(z)r2+iζ(z)]

其中部分物理量如下,其余物理量在后面列表中列出

  • rrr 为径向坐标,以光轴中心为原点
  • zzz 为横向坐标,以束腰位置为参考点
  • k=2πλk=\frac{2\pi}{\lambda}k=λ2π 为波数
  • ω\omegaωzzz处光斑半径,此半径以强度降低到轴向1e2\frac{1}{e^2}e21时的半径

sympy封装

sympy中按照高斯光束模型,实现了光束参数类,其构造函数如下

BeamParameter(wavelen, z, z_r=None, w=None, n=1)

  • wavelen 波长
  • z 距离束腰的距离
  • w 束腰半径
  • z_r 瑞利距离
  • n 介质折射率

其属性列表如下

成员物理意义说明
w_0ω0\omega_0ω0束腰半径,构造函数中的w
z_rzr=πω02λz_r=\frac{\pi\omega_0^2}{\lambda}zr=λπω02瑞利距离
gouyζ(z)=arctan⁡zzr\zeta(z)=\arctan\frac{z}{z_r}ζ(z)=arctanzrzGouy 相移
wω(z)=ω01+(zzr)2\omega(z)=\omega_0\sqrt{1+(\frac{z}{z_r})^2}ω(z)=ω01+(zrz)2z处的光斑半径
radiusR(z)=z[1+(zrz)2]R(z)=z\big[1+(\frac{z_r}{z})^2\big]R(z)=z[1+(zzr)2]波前曲率半径
qq=z+ifq=z+ifq=z+if光的复参数
divergenceλπω0\frac{\lambda}{\pi\omega_0}πω0λ半角扩散

此外,waist_approximation_limit为衍射极限,一般为2λπ\frac{2\lambda}{\pi}π2λ

实战

from sympy.physics.optics import BeamParameter
p = BeamParameter(532e-9, 1, w=1e-3)
print(p.q)          # 1 + 1.8796992481203*I*pi
print(p.divergence) # 0.000532/pi
print(p.gouy)       # atan(0.532/pi)
print(p.radius)     # 1 + 3.53326926338402*pi**2
print(p.w)          # 0.001*sqrt(0.283024/pi**2 + 1)
print(p.w_0)        # 0.00100000000000000
print(p.waist_approximation_limit)  # 1.064e-6/pi

如果让参数z是一个符号,那么其成员变量的表达式也会产生自变量

import sympy
from sympy.abc import x,y,z
p = BeamParameter(532e-9, z, w=1e-3)
sympy.plot(p.w, -p.w)

得到经典的Gauss光束传播双曲线

在这里插入图片描述

http://www.lryc.cn/news/16158.html

相关文章:

  • Cloudflared 内网穿透 使用记录
  • 柴油发电机组的调压板
  • 【MySQL】表操作和库操作
  • 拓扑排序的思想?用代码怎么实现
  • 【Git】码云
  • 数据结构与算法(三):栈与队列
  • Spring架构篇--2.5.2 远程通信基础Select 源码篇--window--sokcet.register
  • ISIS协议
  • CRM系统哪种品牌的好?这五款简单好用!
  • QT_dbus(ipc进程间通讯)
  • 华为OD机试 - 数组排序(C++) | 附带编码思路 【2023】
  • 字符串转换为二进制-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)
  • SpringIOC
  • Debezium系列之:基于数据库信号表和Kafka信号Topic两种技术方案实现增量快照incremental技术的详细步骤
  • 华为OD机试 - 第 K 个最小码值的字母(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • PointNet++训练自己的数据集(附源码)
  • ROS2可视化利器---Foxglove Studio
  • python实战应用讲解-【语法基础篇】流程控制-控制流的元素及语句(附示例代码)
  • [蓝桥杯 2019 省 A] 外卖店优先级
  • Jetson Xavier nx(ubuntu18.04)安装rtl8152网卡驱动和8192网卡驱动
  • Rocky 9.1操作系统实现zabbix6.0的安装部署实战
  • AQS-ReentrantLock
  • SpringCloud+Dubbo3 = 王炸 !
  • 机器学习主要内容的思维导图
  • 嵌套走马灯Carousel
  • 实战——缓存的使用
  • 2023年中职网络安全竞赛跨站脚本渗透解析-2(超详细)
  • Scala的简单使用
  • Java之前缀和算法
  • 基于GIS计算降雨侵蚀力R因子