最近在做激光远场分析的时候,发现在非序列模式下光线追踪的时候会报错:”Not enough segments allocated to trace all possible ray paths!“和 ”Not enough intersections allocated to finish ray trace!“,有时还不会报错,就直接导致远场看不到激光光斑,这会导致分析错误,以及将来的优化错误。网上对其提及很少,但我看到
zemax官方论坛提到了这个What does “not enough segments allocated to trace all possible ray paths” mean? – Knowledgebase (zemax.com),翻译过来就是:因为没有足够的线段;没有足够的(光线)相交数量,导致软件难以计算。通常原因是引入了比较复杂的几何体参与折射或者反射,导致光线在里面要进行大量的反射和折射,也因此需要更大的计算量。
解决方法:
1. 打开左边系统选项或者system explorer,找到非序列或者”Non-Sequential“
2. 里面有Maximum Intersections Per Ray(每个光线最大相交数)和Maximum Segments per Ray(每个光线的最大线段数),根据报错是Intersection还是Segments增加相应的数量;
3. 增加完一次后,点击光线追踪(Ray Trace),但追踪前取消掉Ignore Errors(忽略错误),如果还有这两个报错的一个,就是还需要回到第二步增加,直到没有报错为止;
4. 如果追踪光线,还是在远场看不到光斑,也要回到第二部增加,同时看看是不是有障碍物挡住了,或者探测器放错位置了;
5. 注意增加相交数和最大线段数,有可能会增加对内存的需求,按需增加即可,实在不行再考虑增加内存。