文章目录

  • 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)ω0​​exp[−ω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)=arctan⁡zzr\zeta(z)=\arctan\frac{z}{z_r}ζ(z)=arctanzr​z​ Gouy 相移
w ω(z)=ω01+(zzr)2\omega(z)=\omega_0\sqrt{1+(\frac{z}{z_r})^2}ω(z)=ω0​1+(zr​z​)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高斯光束模型相关推荐

  1. Gaussian 光束及其计算

    矩阵光学 在谈论高斯光束前,应当介绍一下矩阵光学.矩阵光学的前提是使用直线去描述一条光线.那么,光在经历光学器件的操作也可以理解为光学器件对于该直线的操作.这样的操作可以多种多样,比如,聚焦,发散等等 ...

  2. bsp模型适用于图计算_CODE V微信简报:光束合成传播算法(BSP)

    强大.高效的衍射分析工具 无论你设计的是哪种光学系统--激光.微透镜阵列.自由空间光子器件.CCD,或者一些天文应用--CODE V的光束合成传播工具(BSP)比任何其他商业工具更准确和高效地进行光束 ...

  3. sympy科学计算器

    SymPy库常用函数 简介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计 ...

  4. SymPy库常用函数

    简介 SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简 洁.易于理解和扩展.它完全由Python写成,不依赖于外部库.SymPy支持符号计算.高精度计 ...

  5. 海思SD3403开发/SS928V100 移植Yolo模型

    1.前言 参考的文档名称为<驱动和开发环境安装指南>,首先安装Ubuntu18.04 系统,这次为了方便起见重新做了一个虚拟机,也建议这样做,因为装的很多软件都有版本的要求,避免版本更改导 ...

  6. 华为Atlas500 yolov5模型部署全流程

    python3.7.5安装(装在usr/local 以后复制到home目录) 检查系统是否安装python依赖以及gcc等软件. 分别使用如下命令检查是否安装gcc,make以及python依赖软件等 ...

  7. AI|再聊决策树模型

    作者:邵可佳( 墨迹天气 算法专家 ) 大家好,上次我们探索了一下和决策树模型相关的话题,但都没有深入展开去讲 今天闲来无事,和大家再聊聊决策树模型,这次谈论的话题稍微复杂一点 不要说什么决策树out ...

  8. 数学建模——减肥模型Python实现

    注:本模型代码在Jupyter编译 一.模型分析 通常,当体内能量守恒被破坏时就会引起体重的变化.人们通过饮食吸收热量,转化为脂肪等,导致体重增加:又由于代谢和运动消耗热量,引起体重减少.只要作适当的 ...

  9. python数学建模(四)微分方程模型

    文章目录 (源)本编博客源代码下载 (一)用python求解微分方程 1.1 求微分方程(方程组)的符号解 1.2 数值解法 1.1.2 Lorenz 模型的混沌效应 (二)微分方程建模方法 2.1 ...

最新文章

  1. Dockerfile 最佳实践
  2. Python基础知识实例讲解
  3. docker4dotnet #2 容器化主机
  4. CVPR自动驾驶运动预测挑战赛:轻舟智航夺冠方案
  5. easyui控件事件监听委托给jquery事件监听,keyup取最新值问题
  6. Hashtable 为什么不叫 HashTable?
  7. 小米笔记本 Air 13.3 黑苹果教程
  8. 印度公司注册数据[1857-2020]
  9. Scrum敏捷开发之我的总结
  10. sprintf() 用法
  11. datagirdview的单元格双击事件
  12. 浔阳江头夜送客,枫叶荻花秋瑟瑟——python标准输入、标准输出和注释
  13. golang iris web项目热重启
  14. 做一个程序媛是一种什么体验?
  15. 转载精品:树莓派(一)——完整烧录及配置过程(超详细)
  16. 正则表达式 获取开头结尾的数字
  17. 历年北京理工大学复试上机题
  18. 矩阵求导-2——分子布局与分母布局
  19. 50年代末至60年代末
  20. 【论文阅读笔记】面向医学文本的实体关系抽取研究综述

热门文章

  1. linux下vim编辑器插件,为你介绍Linux系统中vim编辑器的实用插件!
  2. 安全工程师转正面试题
  3. SQL入门之第二讲——创建数据库
  4. iis网站访问默认到html文件,mvc vs iis默认页面
  5. open-falcon开源监控使用
  6. 《信号与系统学习笔记》—周期信号的博里叶级数表示(一)
  7. 如何引用R语言以及R包:文献引用
  8. LPC24xx系列CAN波特率计算
  9. 华为ENSP——ACL访问控制列表
  10. VB.net实现通讯录