- Home
- Optimization
- How to Optimize Non-Sequential Optical Systems
- Home
- Non Sequential Ray Tracing
- How to Optimize Non-Sequential Optical Systems
How to Optimize Non-Sequential Optical Systems
- By Akash Arora
- Published 31 October 2008
- Optimization , Non Sequential Ray Tracing
-
Rating:




Pixel Interpolation and NSDD
In addition to the specific algorithm used, ZEMAX contains several features that significantly improve the optimization of NS systems.
As mentioned previously, NS solution space tends be discontinuous due to the pixelated nature of detectors. If the energy in a given ray is assigned to only one pixel, there is no quantitative difference when a system change causes the ray to shift anywhere within that pixel. As a result, optimization is difficult, with discontinuous derivatives in the merit function occurring when a ray crosses the boundary into a new pixel.
This can be illustrated by scanning a single ray across a detector. The universal plot below shows how the irradiance centroid on a detector changes with ray location.

One way to solve this problem is to use pixel interpolation. Instead of 100% of a ray’s energy being assigned to the single pixel struck, a fraction of the energy is apportioned to adjacent pixels based upon the location of the ray intercept inside the pixel. As a result, there is a noticeable change in the merit function as a system change causes a ray to move across a pixel.
Pixel interpolation can be enabled in the Object properties > Type tab.

If we scan a ray across a detector with pixel interpolation enabled, the change in irradiance centroid, and most other criteria, is continuous, and DLS can be easily used.

The irradiance centroid reported in the merit function is computed using the NSDD optimization operand. NSDD stands for non-sequential detector data, and is the most useful operand for reporting incoherent detector data. NSDC is the equivalent for coherent calculations. The syntax for the NSDD operand is as follows:
NSDD Surf Det# Pix# Data
Surf defines the non-sequential group surface (1 in pure NSC), Det# defines the desired detector from which to report data (it can also be used to clear one or all detectors), Pix# defines the specific pixel or computed value to return and Data defines whether to return flux, irradiance or intensity data. These arguments allow optimization of a number of criteria: minimum spot size (min RMS spatial width), maximum energy (total flux), spatial uniformity (standard deviation of all pixels), collimation (minimum RMS angular width), and more. For a detailed description of NSDD capabilities, see the Optimization chapter in the ZEMAX user’s guide.
As mentioned previously, NS solution space tends be discontinuous due to the pixelated nature of detectors. If the energy in a given ray is assigned to only one pixel, there is no quantitative difference when a system change causes the ray to shift anywhere within that pixel. As a result, optimization is difficult, with discontinuous derivatives in the merit function occurring when a ray crosses the boundary into a new pixel.
This can be illustrated by scanning a single ray across a detector. The universal plot below shows how the irradiance centroid on a detector changes with ray location.

One way to solve this problem is to use pixel interpolation. Instead of 100% of a ray’s energy being assigned to the single pixel struck, a fraction of the energy is apportioned to adjacent pixels based upon the location of the ray intercept inside the pixel. As a result, there is a noticeable change in the merit function as a system change causes a ray to move across a pixel.
Pixel interpolation can be enabled in the Object properties > Type tab.

If we scan a ray across a detector with pixel interpolation enabled, the change in irradiance centroid, and most other criteria, is continuous, and DLS can be easily used.

The irradiance centroid reported in the merit function is computed using the NSDD optimization operand. NSDD stands for non-sequential detector data, and is the most useful operand for reporting incoherent detector data. NSDC is the equivalent for coherent calculations. The syntax for the NSDD operand is as follows:
NSDD Surf Det# Pix# Data
Surf defines the non-sequential group surface (1 in pure NSC), Det# defines the desired detector from which to report data (it can also be used to clear one or all detectors), Pix# defines the specific pixel or computed value to return and Data defines whether to return flux, irradiance or intensity data. These arguments allow optimization of a number of criteria: minimum spot size (min RMS spatial width), maximum energy (total flux), spatial uniformity (standard deviation of all pixels), collimation (minimum RMS angular width), and more. For a detailed description of NSDD capabilities, see the Optimization chapter in the ZEMAX user’s guide.