基于Python的多层薄膜颜色模拟

文摘   科学   2024-12-23 09:22   山东  


论文信息:

Dongik Lee, Seunghun Lee, Color simulation for multilayered thin films using Python, physics.optics 2412, 12828 (2024).

论文链接:

https://doi.org/10.48550/arXiv.2412.12828






研究背景



物体的颜色是吸引我们注意的最重要的特征之一。在 17 和 18 世纪,即启蒙时代,人们为理解自然现象付出了巨大的努力,尤其是牛顿和菲涅尔等杰出人物将光和颜色的研究系统化。基于电动力学和光学的颜色模拟成为预测和阐明凝聚态物理和材料科学实验结果的重要工具。如今,可以找到许多用于颜色模拟的软件和浏览器,但很难根据个人需求定制和调整参数。由于物体的反射光谱反映了其微观结构和复杂的反射指数,因此可以通过颜色了解材料的物理特性。本文全面概述了与反射光谱和颜色相关的电动力学和光学,并提供了一个用于模拟反射光谱和提取颜色值的开源 Python 代码。通过与文献和实验数据的比较分析证明了该代码的有效性和适用性。





研究内容


     
 目前,许多人使用编程语言来处理自己的任务,例如数据分析、拟合以及模拟。在编程语言中,Python 脱颖而出,因为它易于访问、程序用户友好,并且提供各种库,包含模拟的基本功能,包括计算、可视化和插值。此研究分享了一个用于模拟多层薄膜颜色的 Python 代码,同时提供了丰富的底层物理和编码背景知识——从包括菲涅尔方程在内的基本电动力学,到基于颜色匹配函数将反射光谱转换为 RGB 值。该代码只需要有关每层的复折射率和厚度以及特定入射角的信息。为了验证代码,作者将使用 Python 代码模拟的颜色与 Si 基板上 SiO2 薄膜的文献和Si基板上具有厚度梯度的 SnO2 薄膜的实验结果进行了比较。该代码非常简单,具有一些 Python 背景知识的人可以轻松修改或添加条件,从而促进各种条件下的颜色模拟并将其与 Python 代码结合用于其他目的。我们希望该代码能够帮助从事各种形式的材料科学和基于AI的研究的学生和研究人员。

图1.波以角度θi入射到折射率为n1和n2的两个介质之间的界面上:(a)电场(E)平行于入射平面(p极化)和(b)E垂直于入射平面(s极化)。E和磁场(B)相互垂直。下标 i、r 和 t 分别表示入射、反射和透射。

   

图2.波在消光系数k为(a)零和(b)非零的介质中的传播。


图3.薄膜中的光干涉。需要考虑来自上下边界的两束反射光之间的干涉。θi和θt分别为入射角和折射角。d是薄膜的厚度。


图4.模拟颜色与文献和实验的比较:(a)Si衬底上的 SiO2 薄膜:文献(上)10和本研究中的 Python代码模拟的颜色与 SiO2 膜厚度的关系(下)。(b)Si衬底上的SnO2薄膜:具有厚度梯度的SnO2薄膜照片(上)和Python代码模拟的颜色与SnO2膜厚度的关系(下)。照片中的网格是用于线轮廓测量的遮蔽区域,每个点下方的值是从附近的线轮廓测量中得到的膜厚度。在模拟中,天然氧化层的厚度设置为2纳米。


代码1.用于数据预处理的Python代码。

代码2.用于计算反射系数和反射率的Python代码。

代码3.将反射光谱转换为RGB值的Python代码。






结论与展望



本文演示了用于模拟多层结构颜色的 Python 脚本,并为读者和用户提供了详细的理论背景和注释。任何人都可以按照本文提供的说明调整自己的系统和研究的结构和材料参数。还值得注意的是,代码可以非常快速地生成大量数据,例如,模拟 15000 种颜色仅需 12 秒(使用的CPU和GPU分别是Intel i7-1255U和Intel Iris Xe Graphics)。此代码可以进一步整合和开发用于各种目的,尤其是机器学习,这需要大量光谱和颜色数据进行模型训练。 


-END-


热辐射与微纳光子学

热辐射与微纳光子学
热辐射与微纳光子学
 最新文章