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[−ikz−ik2R(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_r
|
zr=πω02λz_r=\frac{\pi\omega_0^2}{\lambda}zr=λπω02 | 瑞利距离 |
gouy
|
ζ(z)=arctanzzr\zeta(z)=\arctan\frac{z}{z_r}ζ(z)=arctanzrz | Gouy 相移 |
w
|
ω(z)=ω01+(zzr)2\omega(z)=\omega_0\sqrt{1+(\frac{z}{z_r})^2}ω(z)=ω01+(zrz)2 | z处的光斑半径 |
radius
|
R(z)=z[1+(zrz)2]R(z)=z\big[1+(\frac{z_r}{z})^2\big]R(z)=z[1+(zzr)2] | 波前曲率半径 |
q
|
q=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光束传播双曲线
sympy高斯光束模型相关推荐
- Gaussian 光束及其计算
矩阵光学 在谈论高斯光束前,应当介绍一下矩阵光学.矩阵光学的前提是使用直线去描述一条光线.那么,光在经历光学器件的操作也可以理解为光学器件对于该直线的操作.这样的操作可以多种多样,比如,聚焦,发散等等 ...
- bsp模型适用于图计算_CODE V微信简报:光束合成传播算法(BSP)
强大.高效的衍射分析工具 无论你设计的是哪种光学系统--激光.微透镜阵列.自由空间光子器件.CCD,或者一些天文应用--CODE V的光束合成传播工具(BSP)比任何其他商业工具更准确和高效地进行光束 ...
- sympy科学计算器
SymPy库常用函数 简介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计 ...
- SymPy库常用函数
简介 SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简 洁.易于理解和扩展.它完全由Python写成,不依赖于外部库.SymPy支持符号计算.高精度计 ...
- 海思SD3403开发/SS928V100 移植Yolo模型
1.前言 参考的文档名称为<驱动和开发环境安装指南>,首先安装Ubuntu18.04 系统,这次为了方便起见重新做了一个虚拟机,也建议这样做,因为装的很多软件都有版本的要求,避免版本更改导 ...
- 华为Atlas500 yolov5模型部署全流程
python3.7.5安装(装在usr/local 以后复制到home目录) 检查系统是否安装python依赖以及gcc等软件. 分别使用如下命令检查是否安装gcc,make以及python依赖软件等 ...
- AI|再聊决策树模型
作者:邵可佳( 墨迹天气 算法专家 ) 大家好,上次我们探索了一下和决策树模型相关的话题,但都没有深入展开去讲 今天闲来无事,和大家再聊聊决策树模型,这次谈论的话题稍微复杂一点 不要说什么决策树out ...
- 数学建模——减肥模型Python实现
注:本模型代码在Jupyter编译 一.模型分析 通常,当体内能量守恒被破坏时就会引起体重的变化.人们通过饮食吸收热量,转化为脂肪等,导致体重增加:又由于代谢和运动消耗热量,引起体重减少.只要作适当的 ...
- python数学建模(四)微分方程模型
文章目录 (源)本编博客源代码下载 (一)用python求解微分方程 1.1 求微分方程(方程组)的符号解 1.2 数值解法 1.1.2 Lorenz 模型的混沌效应 (二)微分方程建模方法 2.1 ...
最新文章
- Dockerfile 最佳实践
- Python基础知识实例讲解
- docker4dotnet #2 容器化主机
- CVPR自动驾驶运动预测挑战赛:轻舟智航夺冠方案
- easyui控件事件监听委托给jquery事件监听,keyup取最新值问题
- Hashtable 为什么不叫 HashTable?
- 小米笔记本 Air 13.3 黑苹果教程
- 印度公司注册数据[1857-2020]
- Scrum敏捷开发之我的总结
- sprintf() 用法
- datagirdview的单元格双击事件
- 浔阳江头夜送客,枫叶荻花秋瑟瑟——python标准输入、标准输出和注释
- golang iris web项目热重启
- 做一个程序媛是一种什么体验?
- 转载精品:树莓派(一)——完整烧录及配置过程(超详细)
- 正则表达式 获取开头结尾的数字
- 历年北京理工大学复试上机题
- 矩阵求导-2——分子布局与分母布局
- 50年代末至60年代末
- 【论文阅读笔记】面向医学文本的实体关系抽取研究综述