Skip to main content

I am optimizing a system for minimum far-field angular divergence.

 

In Sequential mode, I can use Afocal mode and set the merit function to optimize for minimum rms (angular) spot radius. After doing so, (or possibly as an optimization operand during optimization, but this is much slower), I am using various Encircled Energy features to report how well I have succeeded, e.g. whether I got 99% of the rays into a certain geometric radius.

 

 

(In a related discussion, I participated in a very detailed discussion comparing the various encircled energy plots and how they differ in this previous thread, 'extended source encircled energy,' a few months ago:

 

 

  )

 

 

I would like to check the system I am working on in Non-Sequential mode, but have run into a couple of snags:

 

 

(1) There does not appear to be a Non-Sequential Components equivalent to any of the Encircled Energy analysis features that are available in Sequential mode.  Or are there?  Any DLLs or something somebody could share?

 

 

(2) I found a couple of ways to read out an *rms* ANGULAR spot radius using the Detector Rectangle or Detector Polar.  Cool.  But I would really like to have a '*Geometric* Spot Radius' reported, too, like in the Sequential Spot Diagram analysis windows (which report both), because I'd like to compare to Sequential results in which 'all' (OK, say 99%) the rays are within a certain radial angular range...and compare with an Encircled Energy calculation.

 

 

Is there a way to report something like 'Geometric Spot Radius' (especially angular, for my immediate needs) in Non-Sequential mode?  I feel like this shouldn't be too hard to calculate...

 

 

Thanks in advance, everybody!

 

 

-- Greg

 

 

 

 

Nobody replied directly to this post from a couple of months ago, but in the meantime I have found a couple of approaches given by Zemax Support staff and will mention them here.

  • FIRST, after posting this I found another closely-related question from about 2 months before my own question. See this other Community discussion:

Encircled Energy Plot in a Non-Sequential Scatter Analysis

In that discussion, Markus also asked how to perform the Non-Sequential equivalent of an Encircled Energy Analysis.

Zemax support staff member Csilla Timar-Fulep suggested setting up a circular aperture (Markus said he used an annular), and reading a detector using NSDD to report the energy passed through the aperture, using a Universal Plot 1-D to vary the radius of the aperture as the “x” abscissa and plot the encircled energy on the “y” ordinate.

Some troublesome details came up from the fact that the NSDD operand does not take into account filter strings, but Markus said he solved them with an additional aperture.

  • SECOND, when I didn’t see a response to my Community posting, I sent in a Support case request with the same question, and immediately got a reply from Allie Culler of Zemax Support (during the Forum-to-Community transition!).

Allie’s suggestion was to use a ZPL Macro to perform the integration of fluxes (irradiances) on pixels as a function of distance from the beam centroid . The NSDD operand can report pixel-by-pixel fluxes and the macro can calculate distances to the centroid as well as fraction of the total flux (power) that is in each pixel.

Then (I haven’t tried it yet) a plot can be generated by ZPL as well; Allie refers us to the Knowledgebase article,

“How to use the PLOT keyword in ZPL”

https://support.zemax.com/hc/en-us/articles/1500005487601-How-to-use-the-PLOT-keyword-in-ZPL

Allie supplied an example ZPL macro to build upon, which doesn’t use radial distances, but stores separate arrays of x and y distances from the centroid (and/or detector center) and flux/fraction at each pixel, and hence is most easily used for ensquared, not encircled, energy.  I might post that later.

  • Once an “encircled energy” plot can be made, then theoretically a threshold could be set and an associated radius at which the threshold of total enclosed energy is reached, as in the XENC (as opposed to XENF) merit function operands.  But a noisy encircled energy function (too few rays traced or insufficient smoothing) could make finding a reliable fraction or radius noisy, too.

-- Greg


One more thing, finding a “geometric radius”

-- defined as the distance from the centroid of the farthest pixel detecting nonzero flux/irradiance --

should be simple using the ZPL macro approach.


Reply