解决方案

RP Fiber Power 用于数值光束传播的数据网格

对于光学和光子学领域的模拟(例如使用我们的RP Fiber Power 软件来模拟),我们通常会应用数值光束传播技术。与mode-based方法相比,数值光束传播有自己的优势,光束传播可以在最复杂的(很难计算传播模式)情况下完成——例如在数量巨大的情况下(使这种方法效率低下)或由于介质的属性变化在纵向方向的情况下,都可以完成。

对于数值光束的传播,我们需要在一些离散的数值网格上表示具有复杂振幅的光场。问题是,如何选择合适的网格大小,包括纵向和横向的网格间距。


需要扩展的网格


显然,栅格应该跨越整个体积,在这个体积中,我们期望有重要的光场。例如,对于光纤,我们至少应该覆盖在光纤芯之外的部分,当然也应该覆盖整个光纤。如果我们不仅要研究导模,还要研究包层模,我们不仅要研究核的面积,还要研究全包层的面积——这可能要大得多。对于给定的网格间距(见下文),这可能会导致大量的网格点,并最终导致过多的内存和CPU时间需求;我们可能会触及该方法的一些内在限制,至少在我们需要处理一段相对较长的光纤时是这样。

还要注意的是,通常任何到达数值网格边缘的字段都会被反射到那里——不管那是物理上真实的还是不真实的。即使是微弱的反射也会导致明显的人为干扰效应,因此应该避免。其中一种方法是在边缘处安装人工吸收器。有人可能认为,如果吸收很强的话,只需要很少的网格点就可以了。然而,吸收过快也会引起寄生反射。因此,你可能需要大量的网格点用于吸收区域。

有些情况下,一些光可以进入光纤包层(例如,当光纤强烈弯曲的时候),但最终我们只对残留在光纤核心的光感兴趣。然后我们可以使用一个数值网格,它的覆盖范围不超过光纤芯,并且包含一些人工吸收,从而杀死所有非导模。当然,这种吸收只能在内核外有所增长,这样它就不会让导模衰减,而导模也会在某种程度上延伸到包层。


横向网格分辨率


为了允许适当的强度剖面采样,横向网格的分辨率当然应该足够好。不仅光强,而且光相位从一个栅格点到下一个栅格点都不能改变太多。因此,强发散光束需要更细的横向栅格分辨率。

另一方面,为了获得合理的数值精度,通常不需要在一个波束直径内有大量的网格点。我们有时会吃惊地发现,即使使用看起来很粗糙的网格,也能得到相当好的结果——例如,人们仍然可以使用插值振幅来绘制图表。

当带有一定波长的平面波与光纤轴的夹角为θ 时,横波矢量分量为θ · 2 π / λ。对于横向网格分辨率δx,这意味着两个网格点之间的相位变化为 sin θ · 2 π δx / λ。为了获得合理的精度,应将其保持在1 rad以下。

如果我们有一个具有一定数值孔径的光纤,我们就可以计算出最大波束角度(例如在空气中),并由此得到所需的网格分辨率。我们发现,与低钠光纤相比,高钠光纤需要更细的网格,因此有更多的内存和计算时间。

在一个基于脚本的RP Fiber Power 软件中,我们当然可以很容易地有一个自动计算网格参数基于光纤的性质和可能的一些输入光束。


纵向网格分辨率


关于纵向网格分辨率,我们可以再次应用在一个网格点间距内磁场振幅不应发生强烈变化的规则-但这个简单的规则并不总是足够的。例如,在特定光纤模式下的光在传播过程中根本不会扩展,但这当然并不意味着你可以使用任意大的栅格间距。人们可以将上述规则分别应用于作用于传播光的每种物理效应,例如不均匀折射率分布和光束发散的影响,从而改进上述规则。对于后者,你可以简单地从基模半径计算瑞利长度;这告诉你,在哪个长度尺度上,光束发散将产生实质性的影响。

在自由空间的传播中——或者在均匀的光学介质中传播——实际上可以使用很大的纵向步长,假设RP Fiber Power 这个软件是基于傅里叶方法的。这是因为该软件从本质上把电场分解成平面波,并且对每一种平面波它都能准确地知道它们是如何远距离传播的。

不幸的是,使用自由空间传播的应用程序也有其自身的数值挑战。例如,您可能需要一个非常大的网格为每架飞机如果光束可以达到大型横向扩展在某个点,同时你需要一个非常小的横向网格间距如如果梁在集中到一个小地方,或者即使只是强烈的发散和收敛。在这种情况下,您将使用非常大的网格。


图1:数值光束在光纤中传播的模拟例子,其中弯曲顺着长度变得越来越强。


强烈的折射率阶梯是有问题的


如果您的折射率剖面有明显的阶梯-就像阶梯折射率光纤的典型情况一样,横向栅格分辨率需要大幅提高。这有时会大大增加内存和计算时间的需求。然而,这个问题通常可以通过稍微平滑折射率跃迁来大大缓解。注意,这甚至可能是更现实如下情况:即一个真正的光纤不显示一个完美的明显的折射率阶梯,因为一些物质的扩散在光纤制造过程中发生。无论如何,真实的传播结果通常不会太依赖于这些细节,尽管经过一些平滑处理,数值精度会变得更好。

您可以引入平滑处理,例如通过使用超高斯剖面(一个相对高阶)而不是阶跃剖面。另外,我们的RP Fiber Power 软件支持函数bp_set_n_smooth(),在根据原始输入计算折射率值后应用一些平滑处理。


如何知道网格分辨率是否足够?


如上所述,有各种有用的规则来确定纵向和横向网格间距的上限。然而,它们并不总是导致完全可靠的结果。

如果有疑问,最好检查所获得的结果是否有实质性的变化,例如在横向和/或纵向网格中分辨率更细两倍,或网格扩展更大。


结论


您可以看到,数值网格参数的选择不是一件简单的事情。根据所建模的情况(通常也取决于您真正感兴趣的内容),您可能需要应用不同的规则。一般的软件很难自动完成所有这些工作。因此,一个人需要有一定程度的技术理解来应用这样的波束传播技术——即使您不需要自己实现算法。显然,如果您有一个像我们这样的RP Fiber Power 软件,它带有高质量的文档和技术支持,那么理解起来就容易得多。此外,在实践中,您也可以从RP Fiber Power 软件中获益良多,例如,您可以从输入中自动计算网格参数。然后您就可以专注于模拟的目的,并快速获得有用的结果。