PyMieSim是一个 Python 库,旨在为执行 Mie 散射模拟提供强大且灵活的框架。该软件易于安装和操作,无论是新用户还是经验丰富的研究人员都可以使用。 PyMieSim 使用户能够探索各种配置下粒子的散射特性,并且专为研究单个散射事件以及进行大规模参数实验而定制。
PyMieSim 的核心包括三个针对不同类型的散射体进行优化的求解器:
球形颗粒
无限圆柱形粒子
核壳球形颗粒
该软件还允许用户根据具体的模拟需求定制光源和探测器属性。该软件包是模块化的,为用户提供了直观的界面,可以轻松地对复杂的散射场景进行建模。
PyMieSim 分为两个主要子模块:
single :专注于分析单个散射事件,例如: - 远场分布 - 散射相位函数 - 斯托克斯参数
实验:旨在探索散射参数(例如 Qsca、Qext、g 和耦合(功率))在大型数据集上的表现,结合源、散射体和探测器的变化。
两个子模块无缝协同工作,使 PyMieSim 适用于各种散射模拟。
要在 Python 中使用 PyMieSim,只需安装该包并开始将其合并到您的脚本中。
PyMieSim 支持 Windows、Linux、macOS(包括 Apple M1/M2 芯片)和 ARM 架构。要安装该软件包,请使用 pip:
pip 安装 PyMieSim
有关更多详细信息,请访问文档以获取有关如何使用该包的综合指南。
以下是如何使用 PyMieSim 进行简单的米氏散射模拟的示例。此示例演示如何配置光源、散射器和检测器并检索散射数据:
从 PyMieSim.experiment.scatterer 导入 numpy as npfrom PyMieSim.experiment.scatterer 导入 Spherefrom PyMieSim.experiment.source 导入 Gaussianfrom PyMieSim.experiment 导入 Setupfrom PyMieSim.units 导入纳米、度、瓦特、AU、RIUsource = Gaussian(wavelength=np.linspace(400, 1000, 500) ) * 纳米,偏振=0 * 度,optical_power=1e-3 * watt,NA=0.2 * AU)散射体=球体(直径=[200] * 纳米,property=[4] * RIU,medium_property=1 * RIU,源=源)实验=设置(散射=散射,源=源)dataframe =实验.get('Qsca')dataframe.plot_data(x =“源:波长”)
它生成下图,该图与维基百科上找到的图相同。
这只是 PyMieSim 实际应用的一个示例。您可以在文档的示例部分找到更多示例。
以下是展示 PyMieSim 功能的更多示例:
如果您喜欢或需要手动构建项目(例如,对于 Apple 芯片设备),请确保您安装了 C++ 编译器(例如 gcc)和 Fortran,以及 Python 3.7+。
git 克隆 https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim git 子模块初始化 && git 子模块更新 mkdir buildcd build cmake ../ -G"Unix Makefiles"sudo make installcd .. python -m pip install .
对于 Windows,在调用 CMake 时使用 MinGW Makefile,而不是 Unix Makefile。
您可以通过运行以下命令来测试本地版本的 PyMieSim:
git 克隆 https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip 安装 PyMieSim[测试] py测试
这将运行单元测试套件并提供覆盖范围详细信息。
2024 年,在本地计算机上运行代码是可选的!您可以利用 Google Colab 的强大功能来远程运行 PyMieSim。使用提供的 Colab 笔记本获得交互式体验。
如果 PyMieSim 对您的研究做出贡献,我们恳请您引用以下论文:
@文章{PoinsinetdeSivry-Houle:23,
作者 = {Martin Poinsinet de Sivry-Houle 和 Nicolas Godbout 和 Caroline Boudoux},
日记= {选项。连续体},
title = {PyMieSim:用于快速灵活的远场米氏散射模拟的开源库},
音量 = {2},
数字={3},
页数 = {520--534},
年 = {2023},
doi = {10.1364/OPTCON.473102},
}
您可以在此处访问完整的文章
从 1.7.0 版开始,PyMieSim 为喜欢图形模拟方法的用户提供了实验性 GUI。虽然仍在开发中,但 GUI 可以按如下方式安装和访问:
pip 安装 PyMieSim 蟒蛇-m PyMieSim
GUI 尚未像核心 Python API 那样强大,但它提供了用于生成模拟的简化界面。
PyMieSim 由 Martin Poinsinet de Sivry-Houle 积极开发和维护。如果您有兴趣贡献或有疑问,请随时与我们联系。
电子邮件:[email protected]