Tolerancing can be one of the most time consuming aspects of optical design. In fact, oftentimes tolerancing takes longer than all of the other stages of optical design combined!

 

One of the reasons why tolerancing can be so time consuming it is traditionally an “all-or-none” type of process.  In other words, if you change the range for a single tolerance perturbation and want to determine the sensitivity, ZEMAX will recompute the sensitivity of all tolerance perturbation operands. In a typical optical design, there may be dozens of tolerance operands.  As such, it often takes several minutes or more to compute the sensitivity of all of the perturbation operands. Often, the only computations that need to be performed are for the one tolerance operand that has been changed.

 

Using the cache features available in ZEMAX, the tolerancing process can be greatly streamlined in many circumstances.  In the “Set-Up” tab of the Tolerancing dialog, there is a “Cache” drop-down setting with three options:

Tolerancing dialog showing Cache options

When sensitivity or inverse sensitivity analysis is run, the criterion values for the max and min of each tolerance operand are saved in a cache in memory. If the “Cache” setting is set to “Recompute All” for the next tolerancing run, the criterion values are once again calculated for each tolerance operand as usual.  If “Cache” is instead set to “Recompute Changed”, the criterion values are only computed for the tolerance operands that have been changed or added since the last tolerancing run.  This can greatly speed up the tolerancing process.  Likewise, “Cache” can be set to “Use Polynomial” to make use of polynomial fits to speed up the tolerancing process.  For more information on this option, please see the Knowledge Base article, “What is Polynomial Sensitivity Tolerancing?"
 

ZEMAX will automatically clear the cache if any of the tolerancing settings (i.e. criterion choice or sampling settings) are changed. ZEMAX will not, however, reset the cache if changes are made to the lens data in a given file.  The cache should only be used when no changes have been made to the lens system that is being toleranced. If changes are made, set the “Cache” setting to “Recompute All” in the next tolerancing run.

 

When using the cache feature, compensator data are not displayed in the tolerancing summary at the end of each tolerancing run (though the criterion values shown do consider the effects of compensation). Likewise, separation of data by fields and configurations is not supported when using the cache feature.