本页描述如何修复发散的模拟。大多数发散模拟是由自动关闭功能检测到的,当整体场强上升到阈值以上时,该功能会显示“错误:过早终止模拟,电磁场正在发散”的消息。
确定不稳定的类型
大多数不同的模拟分为两类。无论是由于dt稳定因子问题,还是由于PML边界条件问题,模拟是发散的。
通过将所有模拟边界条件设置为Metal,然后重新运行模拟,可以很容易地确定不稳定的类型。
· 如果模拟仍然发散,则为dt稳定因子类型的发散。参见dt稳定因子部分。
· 如果模拟是稳定的,它是PML类型的发散。参见PML和分散材料部分。
dt stability factor
理论最大时间步长根据Courant稳定性准则由模拟网格尺寸计算得到。Lumerical软件默认使用的时间步长为理论最大时间步长的0.99。这个理论最大值是假设光在均匀真空中的传播而计算出来的。一旦物理结构和界面包含在模拟中,特别是当涉及到分散材料时,有时需要更小的时间步长。
减小dt稳定因子
减小dt稳定因子,直到模拟稳定为止。在许多情况下,0.95或0.9的值将使模拟稳定。在其他情况下,可能需要0.5或更小的值。
减少时间步长不会影响模拟的准确性或内存需求,但会增加模拟时间。将dt从0.99更改为0.95将增加4%的模拟时间。
该参数可以在模拟区域属性的网格设置选项卡上访问。
dt稳定因子类型差异的原因
材料特性
一些色散材料模型会导致模拟稍微不稳定。如果你发现你的一个材料导致模拟不稳定,使用材料资源管理器,以确保材料属性是你所期望的。在某些情况下,自动数据拟合例程将创建不太好的拟合。在这种情况下,您应该调整拟合参数以获得更好的拟合。请看这个链接了解更多细节:提高材料合身度的技巧。如果拟合良好,则降低dt稳定因子使模拟稳定。
网格纵横比
较大的网格纵横比会导致模拟不稳定。如果dx = 5nm, dy = 25nm,长宽比为5。在原则上,拥有较大的纵横比并没有什么问题,但在实践中,当dt接近最大理论极限时,它可能会略微不稳定。
PML and dispersive materials
通常,我们建议物理结构通过边界条件区域进行扩展。这样可以得到最准确的模拟结果。不幸的是,一些分散的材料可以是不稳定的,当扩展到PML bc。在分散材料接触PML BC时,场将开始发散。这很容易用电影监视器看到。
修复PML分歧所采取的步骤取决于所使用的PML实现。建议使用拉伸坐标PML (SCPML),但如果您使用的是2015a版本之前的旧版本,则只有单轴PML (UPML)类型可用。
SCPML Settings
如果您正在使用SCPML,以下一个或多个更改应该使模拟稳定:
将PML配置文件设置为稳定
仅改变这个设置通常就能解决散度问题。与标准剖面相比,稳定PML剖面的alpha设置和PML层数增加。
增加alpha
将PML配置文件设置为“自定义”允许您设置alpha参数。增加alpha值可以使模拟稳定,但会导致反射增加,因此也建议增加PML层数。
在PML之前立即增加网格尺寸
添加网格覆盖区域来增加网格步长(在与PML表面法线方向上)的大小,可以使PML更加稳定。这可能会影响PML的性能,因为网格本身的分级可能会有小的反射。
不要将金属层穿过PML
当结构完全通过PML扩展时,来自PML的反射最小化。然而,如果这导致模拟发散,唯一的解决方案可能是在PML的内边缘停止该层。这可能会导致来自PML的更高反射,但会使模拟稳定。请注意,默认情况下,终止于PML的结构将自动通过PML进行扩展。必须从PML中终止结构至少1dx,或者在模拟区域的高级选项中禁用“通过PML扩展结构”特性。
传统UPML设置(在2015a版本之前)
如果您使用UPML,以下一个或多个更改应该使模拟稳定:
降低PML sigma
该设置可以在“模拟”区域的“高级”选项卡中访问。当您减少PML sigma时,PML的吸收减少,但使用的PML层数将自动增加以补偿(直到层数超过您允许的最大层数)。这意味着PML性能不会受到影响,但是由于PML层数的增加,模拟将花费更多的时间和内存。
增加PML kappa
该设置可以在“模拟”区域的“高级”选项卡中访问。缺省值为2。试着把kappa提高到10甚至20。这通常会阻止散度。增加kappa对模拟的其余部分影响很小。较大的kappa会导致PML在正常入射时反射稍微多一些,但实际上在更陡的角度时反射稍微少一些。kappa值远远大于20会导致PML性能的更显著的退化。
在PML之前立即增加网格尺寸
添加网格覆盖区域来增加网格步长(在与PML表面法线方向上)的大小,可以使PML更加稳定。这可能会影响PML的性能,因为网格本身的分级可能会有小的反射。
设置“PML类型”为“稳定”
该设置可以在“模拟”区域的“高级”选项卡中访问。这可能会降低PML在更陡的入射角下的性能。
不要将金属层穿过PML。
当结构完全通过PML扩展时,来自PML的反射最小化。然而,如果这导致模拟发散,唯一的解决方案可能是在PML的内边缘停止该层。这可能会导致来自PML的更高反射,但会使模拟稳定。请注意,默认情况下,终止于PML的结构将自动通过PML进行扩展。必须从PML中终止结构至少1dx,或者在模拟区域的高级选项中禁用“通过PML扩展结构”特性。
Other diverging situations 其他不收敛情况
材料匹配与非物质的收益相吻合 (Material fits with unphysical gain)
有时,即使实验材料数据没有任何增益,拟合程序也会产生带增益的拟合。这将导致模拟发散,即使拟合具有增益的频率远远超出模拟区域。
要检查情况是否如此:打开材料编辑器,选择显示扩展光谱并拟合并绘制索引。如果Im(指数)在某一点是负的,那么将会有一个小的增益区域。这个问题可以通过稍微改变模拟带宽或改变拟合公差和最大系数变量来解决。
不正确的模拟设置
注入具有不兼容的模拟区域设置的源,例如在源的两侧注入具有PML边界的平面波源,也会导致模拟发散。参见字段截断。
Automatic divergence checking 自动发散检查
Lumerical软件具有自动发散检查功能。如果模拟体积中的总能量比注入的能量大许多倍,则模拟将停止。当检测到发散模拟时,将在作业管理器和对象树中显示以下图形警告。
自动发散检查特性属性可以在模拟区域属性的高级选项卡中找到。
在调试发散模拟时,时间监视器和电影监视器会很有用。两者都显示磁场在某一时刻呈指数增长。突然变得非常缓慢的模拟(例如,剩余估计时间从5分钟增加到1小时)是分歧的另一个标志。自动发散检查通常会在模拟变得非常慢之前停止模拟。
Example
文件 divergence_example.fsp 包含二维模拟中的多层OLED结构。偶极子源位于高度分散的材料的多层堆叠中。一些材料具有复杂的色散特性,导致数值稳定性问题(例如,alq3_PFD从一个几乎纯实的指标变成了一个几乎纯虚的指标)。
即使使用这些具有挑战性的材料,使用默认的SCPML设置,模拟也是稳定的。为了创建一个发散的模拟示例,已经禁用了自动关闭。(自动关闭功能通常在模拟场变得非常小时停止模拟)。禁用自动关闭后,模拟将继续运行超过正常情况下将停止的点。这使得数值问题得以建立,最终导致发散场。
确认它是PML类型的发散
将所有边界条件切换为金属并重新运行模拟,我们可以看到它没有发散。这证实了散度与PML边界有关。
接下来,我们可以测试各种设置的影响:
see also另请参阅:
Tips for improving the quality of optical material fits – Ansys Optics