How to debug a double-pass lens file

Due to the fact that the sequential ray tracing system traces rays from one surface to the next in a specific order, modeling a double pass system requires that the optical system be modeled twice; once for each pass. This article describes an easy way to test whether a double-pass lens file is correctly set up or not, and to identify where any errors are.

Authored By Mark Nicholson


Article Attachments


In sequential mode, rays are traced from one surface to another in a specific order. This means that modeling a double pass system requires that the optical system be modeled twice; once for each pass. Different solve types, such as position and pickup, should be utilized, as they are essential for making sure that the optics are mapped appropriately for the return path of the beam. Great care should be taken to ensure the model has been setup correctly - especially for tolerancing or whenever there are tilted or decentered components - because the return path must be identically perturbed compared to the first pass.

How to debug a double-pass lens file

In the provided sample file, we have a simple singlet lens file (Double Pass.zar) used in double pass:

The resulting spot is highly aberrated:

How do we know that this aberration is correct, and not just an artifact of some setup error we made? The answer is surprisingly simple.

OpticStudio supports a 'Retro Reflect' surface type which acts like a plane mirror except that instead of reflecting rays using Snell's law, rays are reflected exactly back along the path they came in on. Therefore, on the second path the ray should follow the exact path it came in on. This means that it should be re-imaged to a perfect, unaberrated spot. In this system, we will make surface 3 a Retro Reflect surface.

With this surface type selected, the aberrations are cancelled on the second pass, resulting in a perfect point image:

Even better, if you have made some mistake and you do not see perfect aberration correction, you can use Analysis...Rays & Spots...Single Ray Trace to trace a ray. The ray-trace data should be exactly the same on either side of the Retro Reflect surface, and when you identify a pair of surfaces that are not exactly the same, you have identified the setup problem:

When tolerancing, do a test tolerancing run in which the double-pass mirror is made a retro-reflector and tolerance for RMS spot size. If your system and tolerance operands are correctly set up, no matter what the tolerances are, the tolerancing criterion should be identically zero for all operands and all Monte-Carlo files. Any non-zero results indicate setup errors in either the lens itself or the tolerance operands. It is generally recommended that you save sensitivity analysis files and Monte-Carlo files. The SAVE operand can be used to save sensitivity analysis files.

Don't forget to reset to a real mirror surface after doing these tests!


Was this article helpful?
2 out of 2 found this helpful



Article is closed for comments.