System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种计算FDTD电磁仿真收敛检测触发时刻的算法制造技术_技高网

一种计算FDTD电磁仿真收敛检测触发时刻的算法制造技术

技术编号:40090928 阅读:5 留言:0更新日期:2024-01-23 16:11
本发明专利技术提出一种计算FDTD电磁仿真收敛检测触发时刻的算法,包括如下步骤:构建包含源端口与输出端口的三维仿真网格模型;计算源端口连通分支上每个端口与源端口之间的最小路径;取源端口连通分支上所有端口与源端口之间最小路径中的最大值d1;计算求解域尺寸d2,所述求解域尺寸为所述仿真网格模型中的最长距离;根据d1和d2求解首次收敛检测的时刻。本发明专利技术可以准确判断仿真是否真正收敛,且显著减少计算时间,提高仿真效率。

【技术实现步骤摘要】

本专利技术涉及计算电磁学,尤其涉及一种计算fdtd电磁仿真收敛检测触发时刻的算法。


技术介绍

1、时域有限差分法(fdtd,finite difference time domain)是电磁场数值计算的一项重要方法,通过在时空离散化中使用中心差商替代场量对时间和空间的偏微分。该方法通过递推模拟电磁场的传播过程,从而获得电磁场的时域分布。由于其时域特性,fdtd能够在一次模拟运行中同时计算多个频率范围,并且能够自然地处理各种线性材料特性。

2、fdtd作为一种迭代算法,需要设置适当的终止条件。通常,采用相对终止条件,即所有被求值的频域和时域特征在连续多次迭代结果中的波动小于某一阈值时即认为仿真收敛。然而,每次迭代都进行收敛检测会耗费巨大的计算资源,加长仿真时间,且如果触发时机不对容易导致假收敛,得到错误的仿真结果。

3、目前的触发算法通常会根据待求解的问题的规模来确定何时进行首次检测触发,有些算法会在每次迭代后都进行收敛检测,但这些方法在提高计算速度和节省计算资源方面并不理想,也不能有效地避免假收敛的情况。


技术实现思路

1、本专利技术的目的在于,提供一种计算fdtd电磁仿真收敛检测触发时刻的算法,以解决上述问题,可以准确判断仿真是否真正收敛,且显著减少计算时间,提高仿真效率。

2、本专利技术提出了一种计算fdtd电磁仿真收敛检测触发时刻的算法,包括如下步骤:

3、步骤s1、构建包含源端口与输出端口的三维仿真网格模型;

4、步骤s2、计算源端口连通分支上每个端口与源端口之间的最小路径;

5、步骤s3、取源端口连通分支上所有端口与源端口之间最小路径中的最大值d1;

6、步骤s4、计算求解域尺寸d2,所述求解域尺寸为所述仿真网格模型中的最长距离;

7、步骤s5、根据d1和d2求解首次收敛检测的时刻。

8、在一个实施例中,所述计算fdtd电磁仿真收敛检测触发时刻的算法还包括步骤s6、计算两次收敛检测之间的时间间隔,并得到检测收敛的迭代编号集合。

9、在一个实施例中,所述仿真网格模型为一个长方体,包括若干个六面体网格。

10、在一个实施例中,所述步骤s2具体包括:

11、步骤s21、将所有端口标记为未标记;

12、步骤s22、根据设计文件,将所有的网格标记为金属网格或非金属网格;

13、步骤s23、标记源端口所在的金属网格连通分支;

14、步骤s24、计算每个金属网格距离源端口的最小传播距离,源端口所在的网格都标记为0,然后根据已知金属网格计算未知网格的距离;

15、步骤s25、迭代修正距离;

16、步骤s26、迭代完成后,每个端口网格上的值即为该端口到源端口的最小距离。

17、在一个实施例中,步骤s25具体包括:如果某个已知网格的距离减小,则将该已知网格标记为未知,并回到步骤s24重新计算距离。

18、在一个实施例中,所述步骤s21具体包括:使用三维数组flagarray存储网格的标志,初始时将源端口所在的网格标记为-1,其他端口所在的网格标记为-2,使用三维数组distancearray存储各网格与源端口的距离,所有距离值初始化为-1;

19、所述步骤s22具体包括:将flagarray中所有网格标记为金属网格或非金属网格,金属网格标记为1,非金属网格标记为0;

20、所述步骤s23具体包括:使用源端口网格作为种子,使用区域增长算法,依次将源所在的连通分支标记出,并在flagarray中记作3;

21、所述步骤s24具体包括:将distancearray中源端口所在的网格值填写0,根据已知金属网格计算未知网格的距离,直至连通分支所有网格的值被确定。

22、在一个实施例中,所述源端口连通分支上所有端口与源端口之间最小路径中的最大值d1的计算公式为:d1=max(distancearray[flagarray[...]<0])。

23、在一个实施例中,所述求解域尺寸d2的计算公式为:d2=sqrt(w^2+h^2+l^2);

24、其中,w为所述仿真网格模型的宽,h为所述仿真网格模型的高,l为所述仿真网格模型的长。

25、在一个实施例中,所述首次收敛检测的时刻n的计算公式为:

26、n=max{d1,d2}/c/δt;

27、其中,c表示介质中的光速,δt表示仿真中电磁波每一次迭代的时间步长。

28、在一个实施例中,

29、两次收敛检测之间的时间间隔δn的计算公式为:δn=pulsewidth/δt,检测收敛的迭代编号集合为{n+x*δn|x∈n};

30、其中,pulsewidth表示电磁波脉冲宽度,n的取值为1,2,3,…。

31、与现有技术相比,本专利技术的计算fdtd电磁仿真收敛检测触发时刻的算法的有益效果在于:

32、1)本专利技术通过灵敏的收敛检测机制,可以准确判断仿真是否真正收敛,有效避免假收敛情况,保证了仿真结果的可靠性和准确性。

33、2)本专利技术可以在达到精度要求的同时显著减少了计算时间,提高了仿真效率,尤其对大规模问题具有明显优势。

34、3)本专利技术简单易实现,不仅减少了实施过程中的复杂性,还提高了算法的可维护性,该算法的简单性也使其易于实现和集成到现有的fdtd仿真框架中。

本文档来自技高网...

【技术保护点】

1.一种计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,包括如下步骤:

2.根据权利要求1所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,还包括步骤S6、计算两次收敛检测之间的时间间隔,并得到检测收敛的迭代编号集合。

3.根据权利要求2所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,所述仿真网格模型为一个长方体,包括若干个六面体网格。

4.根据权利要求3所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,所述步骤S2具体包括:

5.根据权利要求4所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,步骤S25具体包括:如果某个已知网格的距离减小,则将该已知网格标记为未知,并回到步骤S24重新计算距离。

6.根据权利要求5所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,

7.根据权利要求6所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,所述源端口连通分支上所有端口与源端口之间最小路径中的最大值d1的计算公式为:d1=max(distanceArray[flagArray[...]<0])。

8.根据权利要求7所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,所述求解域尺寸d2的计算公式为:d2=sqrt(w^2+h^2+l^2);

9.根据权利要求2所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,所述首次收敛检测的时刻n的计算公式为:n=max{d1,d2}/C/Δt;

10.根据权利要求9所述的计算FDTD电磁仿真收敛检测触发时刻的算法,其特征在于,

...

【技术特征摘要】

1.一种计算fdtd电磁仿真收敛检测触发时刻的算法,其特征在于,包括如下步骤:

2.根据权利要求1所述的计算fdtd电磁仿真收敛检测触发时刻的算法,其特征在于,还包括步骤s6、计算两次收敛检测之间的时间间隔,并得到检测收敛的迭代编号集合。

3.根据权利要求2所述的计算fdtd电磁仿真收敛检测触发时刻的算法,其特征在于,所述仿真网格模型为一个长方体,包括若干个六面体网格。

4.根据权利要求3所述的计算fdtd电磁仿真收敛检测触发时刻的算法,其特征在于,所述步骤s2具体包括:

5.根据权利要求4所述的计算fdtd电磁仿真收敛检测触发时刻的算法,其特征在于,步骤s25具体包括:如果某个已知网格的距离减小,则将该已知网格标记为未知,并回到步骤s24重新计算距离。

6.根据权利要求5所述...

【专利技术属性】
技术研发人员:赵长修徐刚郭茹李棉榕马佳吴寅芝
申请(专利权)人:芯瑞微上海电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1