Downloads

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. [prism_misc.py]
  2. a set of utility functions to read and interact with the glass refractive index information stored in Zemax' glass catalog format. [read_zemax.py]
  3. an individual file for each prism type for storing the design data in tabulated column format. [prism1.pyprism2.pyprism3.pyprism3a.pyprism5j.py]
  4. a corresponding file for reading the design data for each prism type. [prism2_reader.py, prism3_reader.py, prism3a_reader.py, prism5j_reader.py]

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:

prism1.py: design singlet (i.e. non-compound wedge) prisms
prism2.py: design doublet prisms (consisting of two wedges in optical contact)
prism3.py: design triplet prisms
prism3a.py: design double-Amici prisms (triplets where the outer elements are mirror images of one another)
prism5j.py: design 5-element Janssen prisms (5-element prisms with mirror symmetry similar to that of the double-Amici)
cmlplot.py

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 corresponding 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.datreport2_nonlin.datreport2_anglesum.dat