当光入射到像玻璃这样的介电材料上时,一部分光会被透射,而另一部分则会被反射。有时,我们会给材料添加一层金属涂层,例如金,这样就可以改变光的透射率和反射率,并使一部分光被吸收。介质表面和金属涂层也经常在高度和厚度上存在一些随机变化。这篇文章我们将引入并建立一个计算模型,来模拟这种情况。
先从简单的情况开始:一个光学平面
在讨论粗糙的表面之前,让我们先从一些简单的情况开始:在
光学平面
的玻璃上面镀一层薄薄的、均匀的金涂层,见下图。这种模型在玻璃平面上可以忽略结构变化。在 COMSOL Multiphysics® 软件中,通过考虑一个宽度远小于波长的小的二维基本单元,就可以很简单地建立这个模型。
这个计算模型是基于
菲涅尔方程建模
的一个例子,也是 COMSOL 案例库中的一个验证模型,但被修改为包含一个折射率随波长变化的镀金层。这种类型的折射率要求我们根据每种材料的最小波长以及趋肤深度来手动调整网格大小。
入射到玻璃基板上的金属涂层上的光被反射、透射和吸收。
这个模型包括建模域左右两侧的 Floquet 周期性边界条件以及顶部和底部的端口边界条件。顶部的端口边界条件以指定的入射角发射平面波,并计算反射光,而底部的边界条件则计算透射光。我们可以对
金属层内的损失进行积分
来计算镀金层内的吸收率。
计算玻璃上的金属薄层光学特性的计算模型
如果你对计算非法线入射角的入射光感兴趣,那么还必须关注建模域的高度,也就是材料界面和端口边界条件之间的距离。这个距离必须足够大,以便任何消逝场在建模域内下降到近似于零。
这样做与端口边界条件有关,因为它只能考虑电磁场的传播分量。任何到达端口边界条件的场的消逝分量都会被强制反射,所以我们必须把端口边界放在离材料界面足够远的地方。在大多数情况下是很难确定消逝场传播多远。这里有一个简单的经验法则,那就是将端口边界条件放在离材料界面至少半个波长的地方,并检查使域变大是不是会改变结果。
下面的样本结果显示了透射、反射和吸收光,以及它们的总和,它们的总和应该总是等于1。如果这些加起来不等于1,那么我们必须仔细检查模型设置。
法向入射到含金属涂层的平面玻璃表面的透射,反射和吸收光与波长的关系。
波长为 550 nm 的光在不同入射角下的透射率、反射率和吸收率。
增加复杂性:一个有周期性变化的表面
现在,让我们考虑更复杂的情况。引入一个周期性的结构变化:正弦波纹。很明显,我们现在需要考虑一个更大的基本单元,即考虑一个基本波纹。
一个具有周期性变化的表面将光反射和透射成几个不同的衍射阶数。
我们仍然可以应用与上一个示例中相同的域属性和所有相同的边界条件。但是,如果间距足够大,就会发生高阶衍射。换句话说,光可以被反射和传输到几个不同的方向。为了正确计算反射和透射,我们需要增加几个衍射阶数端口。软件会根据域的宽度、材料属性和指定的入射角计算出适当的端口数量。如果我们研究的是入射角的范围,那么必须确保能计算出在角度扫描范围内所有衍射阶数。
可以有多个衍射阶数存在,这取决于波长与域宽的比率、折射率和入射角。
关于高阶衍射出现的条件和适当的建模过程,我们已经在
等离激元线光栅
的例子中深入介绍过了,这里就不多说了。简单来说,计算域相对于上方和下方材料的波长越宽,可以出现的衍射阶数就越多(衍射阶数随入射角的变化而变化)。下面显示的结果是总的透射率和反射率;也就是说,所有反射到不同衍射阶数的光和所有透射的光都加在一起。
法向入射到含金属涂层的波纹玻璃表面光的透射,反射和吸收率。
550nm 光在不同入射角下的透射率、反射率和吸光率。
求解一个更难的案例:一个具有随机粗糙度的表面
现在,让我们来看看计算上最难的情况:一个在表面高度上有许多随机变化的表面。为了对随机性进行建模,我们必须对几个不同宽度的域和不同子集的粗糙轮廓进行建模。随着域的宽度增加,以及对表面的不同子集进行采样,从这些不同的模型中计算出的平均行为会收敛。也就是说,通过对粗糙表面进行采样会产生一组统计数据。与其详细讨论如何计算这些统计数据,不如集中讨论如何通过将高度变化定义为具有随机高度和相位的不同正弦波的总和,来建立一个近似于粗糙表面的域模型,具体可以参考文章"如何在 COMSOL 中生成随机表面"
中的介绍。
一个随机变化的粗糙表面在随机方向上反射和透射光线。计算模型必须对粗糙曲线进行统计意义上的子集采样。
计算域现在必须非常宽,比波长大很多倍。我们仍然希望建立一个以不同角度入射到结构上的平面波模型,因此使用了 Floquet 周期性边界条件,这要求我们在周期性边界上有相同的网格。也意味着我们可能需要稍微改变域的几何形状,来确保左右两边的边界是相同的。如果我们确实使用正弦函数之和,就像"如何在 COMSOL 中生成随机表面"
中描述的,那么剖面将自动变成周期性的。
同样,我们仍然希望用端口边界条件来激励波。然而,使用衍射阶数端口来监测反射和透射光已经不再实际了,因为这可能会导致数百(或数千)个衍射阶数。此外,由于这个模型代表了一个统计样,因此我们对散射到这些不同阶数的光的相对分数并不感兴趣;我们只对总的反射和透射光的总和感兴趣。也就是说,这种建模方法计算的是总的积分散射加上表面的镜面反射和透射。
粗糙表面模型的计算域。光从内部端口向材料界面发射。反射回这个端口的光穿过它并在 PML 中被吸收,透射光也是这样。引入两个额外的边界来监测总反射率和透射率。
因此,我们引入了一种替代的建模策略,不使用端口来计算反射和传输,而是在上面和下面使用完美匹配层(PML)来吸收所有的反射光和透射光,并使用探针计算反射和透射。完美匹配层吸收任何入射到其上的场,具体可以参考这篇关于
使用完美匹配层处理波电磁学问题
的文章。
完美匹配层会同时吸收场的传播和消逝分量,但我们希望它只吸收传播的分量。因此,需要再次确保把完美匹配层放在离材料界面足够远的地方。使用与之前相同的经验法则,即将完美匹配层放在离材料界面至少半个波长的地方。
当接近掠入射时,即使是完美匹配层域也不会默认吸收所有的光。在近乎掠射的角度,吸收方向的有效波长非常长,需要修改完美匹配层设置中的默认波长(如下图所示)。只有当我们对大于约 75° 的入射角感兴趣时,才有必要对设置进行这种修改。
修改了完美匹配层设置,以考虑入射角的掠射角。
由于域现在被上下完美匹配层所限定,所以发射波的端口必须放在建模域内。为了做到这一点,我们使用 狭缝条件 选项来定义一个以域为背景的内部端口。这意味着这个端口现在向一个方向发射波,从这个内部边界发出。任何反射回边界的光都会无障碍地通过,然后被完美匹配层吸收。
虽然这是一个发射波的好方法,但我们将不再使用端口边界条件来计算有多少光被反射,因为不得不增加数百个衍射端口,同样,也需要数百个端口来计算总的透射率。
为了监测总的透射和反射光,我们在模型中引入了两个额外的内部边界,就在完美匹配层域的前面(见上图)。在这两个边界,我们对向上和向下的功率通量进行积分,通过将入射功率归一化处理,得到总反射率和透射率。为了更准确地确定这些边界处的功率通量的积分,我们还引入了一个由远小于波长的单层单元组成的边界层网格。
在入射侧,把这个监测边界放在内部端口的上方。在发射口引入了一个向材料界面传播的平面波。在界面上反射的光通过这个内部端口,然后通过监测反射率的边界,并在完美匹配层中被吸收。
下面的图中显示了透射率、反射率和吸收率的样本结果。它们与光滑表面和周期性变化表面的结果明显不同。请注意,入射角的扫描在偏离法线 85° 时终止。当然,对于运行的每个不同的随机几何案例,这些图看起来会略有不同。
法向入射到粗糙玻璃表面的透射率、反射率和吸收率。
在入射角不超过 85° 的情况下,波长为 550nm 光的透射率、反射率和吸收率。
关于计算粗糙表面的光学特性的总结性思考
在这篇文章中,我们介绍了一种适合于计算粗糙表面的光传输和反射的建模方法。这种方法与均匀光学平面的建模方法以及周期性变化表面的建模方法形成对比。粗糙表面的建模方法也可用于具有很长周期的周期性结构的建模,例如当不考虑散射到不同的衍射阶数时。
对真正的随机表面进行建模确实需要小心一些,因为需要改变几何形状以确保它是周期性的。另外,所研究的域的大小和不同的随机几何形状的数量必须足够大,以得到有统计意义的结果。这需要解决同一模型的许多不同变化,并对结果进行后处理,因此在我们的建模工作流程中使用了 App 开发器、LiveLink™ for MATLAB ® 或 LiveLink™ for Excel®。
查看更多评论 >