Prior to the May 4th, 2009 version, each Source had to be defined individually.  This means that if one was trying to define say a 10 by 10 array of sources, each source, 100 sources would need to be defined in the Non-Sequential Component Editor.  After the initial definitions, if a change needed to be made to adjust the array, once again each source would need to be edited, resulting in an extremely time consuming task.  Setting pickup solves on the following sources would alleviate some of the lost time; however, setting pickups on each parameter of a 99 source array is redundant and inefficient.  In addition, using an array of sources is far more efficient in terms of memory usage than multiple instances of the same source.  This is particularly true of sources defined by datafiles, where the individual file size is large.  For instance, with the Source array ZEMAX will read a single data file and replicate the definitions within the file for each source in the array.  Whereas using the prior definitions ZEMAX would need to read each individual data file for each source in the array and allocate enough memory to support the ray trace. 

The parameters used to define an array of Source objects are located under the Sources tab in the Object Properties dialog box.




There are several array types to choose from including the Rectangular, Circular, Hexapolar, and Hexagonal.  The Array Type Parameter allows you to define the combined shape of the sources.

 

Note that all properties of the source, such as power, layout rays and analysis rays, are replicated at each array point. Therefore, a 10x10 array of 1 W sources will have a total power of 100W; a setting of 20 layout rays will cause 2000 layout rays to be drawn, etc..