Compound prism design:

Compound prisms consists of a series of wedged optical elements placed in optical contact, and are commonly used to achieve direct-vision dispersion. We have written a set of algorithms in numerical python for prism design. At the moment, they are roughly organized, but consist of:

(1) a set of utility functions used in each of the files below. []
(2) a set of utility functions to read and interact with the glass refractive index information stored in Zemax' glass catalog format. []
(3) an individual file for each prism type for storing the design data in tabulated column format. [,,,,]
(4) a corresponding file for reading the design data for each prism type. [,,,]

Note that the files assume a specific location for the Zemax glass catalog. This needs to be modified for each user. The function of each design file is listed below: design singlet (i.e. non-compound wedge) prisms design doublet prisms (consisting of two wedges in optical contact) design triplet prisms design double-Amici prisms (triplets where the outer elements are mirror images of one another) design 5-element Janssen prisms (5-element prisms with mirror symmetry similar to that of the double-Amici)

The output of each design file is a long tabular dataset consisting of every glass combination for which the algorithm could obtain a valid design. The corrsponding reader function file will read in this table, sort it by merit function, and return a list of the top few designs. An example output file and two sorted lists from it (sorted respectively by dispersion nonlinearity and system thickness) are: report2_full.dat, report2_nonlin.dat, report2_anglesum.dat