The Achromat Optimization Tool is a set of CCL procedures that allow general achromat optimization in OSLO.
File achroptim.ccl needs to be added to the private ccl directory. File a_list.ccl needs to be appended to an existing file of that name in the same private ccl directory (or to start that file). Compilation is then accomplished with < Tools >< Compile CCL... >. The default compilation should suffice.
Using the Achromat Optimization Tool is quite similar to the built-in optimization tools, with one set-up procedure, "achr". After that, modification of the operand weights and optimization iteration is the same.
Command "achr" is the basic set-up command. It has input arguments:
Optimization is broken into three passes. In pass 0, other than general geometric constraints, only nulling of Seidel aberrations is considered. In pass 1, specific weighted goals of coma and spherical aberration are considered. In pass 2, zonal correction of spherical aberration is also considered.
In a specific design, the user may wish to keep certain groups of lenses the same semi-diameter. The achrgroupC argument expresses that. The digits of this integer give the number of surfaces (minus 1) of each group, expressed in smallest digit first. For example, a group code of 1130 implies 1, 4, 2 and 2 surfaces, respectively, will be grouped. This could possibly mean a singleton stop surface, an air-spaced doublet, and two singlets.
This argument is the goal f/# of the design. Note that achr is only used for focal systems. Wavelength 1 is used to determine this.
The system must have at least three wavelengths. Typically, an achromat has longitudinal color error curve that would be described as "parabolic". Wavelengths 2 and 3 are somewhat aligned at the root(0.5) aperture zone (70.7%). "Somewhat" in that achrGLong is used to modify the goal. Nominally, a balanced value of 0.5 will optimize specifically to the matched goal. A value of achrGLong less than 0.5 will shift the base of the parabola toward wavelength 2, while a value of achrGLong greater than 0.5 will shift the base toward wavelength 3.
Other than in pass 0, Offense against the Sine Condition (OSC) is optimized by weighing the error at the root(0.5) aperture zone against the error at the edge aperture zone. Argument achrOSCPhase determines the exact relationship in a sinusoidal vs. cosinusoidal way -- the weight applied to the edge aperture zone is proportional to the sine of achrOSCPhase, while the weight applied to the root(0.5) aperture zone is proportional to the cosine fo achrOSCPhase.
Spherical aberration is also optimized by weighing the error at the root(0.5) aperture zone against the error at the edge aperture zone (again, other than in pass 0). Argument achrSphAbPhase is the corresponding sine/cosine argument.
In pass 2, an attempt is made to actually null a certain aperture zone. Argument achrOSZCorr is that zone (in percent).
The goal Seidel aberration value is achrGAstig.
Some systems allow minimization of lateral color. Argument achrLatOff is the goal lateral position difference of wavelengths 2 and 3 at the root(root(0.5)) field zone, expressed in parts per million (relative to the position of wavelength 1).
Default values are supplied for all arguments. These are applied independent of the pass. For each argument, there is also a command (of the same name) that can be used to modify the current value of an input argument. Each takes the same input argument type and has the same default value as the main set-up command. For arguments of type double, there is preceding argument that determine the method of change: "{set}Set", "{inc}Increment", or "{dec}Decrement".
Lens grouping can also be set up with command "achrgroupS". The command will set up grouping based on the separation of the lenses. Its input argument is the maximum air-space allowed after a lens group before that group is considered "completed".
After any of these input argument commands, the full set of input argument values can be retained in the .len file. Direct modification of the Ocm array is discouraged -- but, if you must, command achrGenDoc will record changes. Also included is command achrerase. This procedure can be used to export the .len file to others, who may not be using the same optimation procedure.
The Achromat Optimization Tool can also be used to generally aim for physically moderate lens thicknesses. To do this, each lens is subjected to a Minimum Thickness Ratio criterion. This ratio is the ratio of the thinnest part of the lens to the semi-diameter of the lens. For a convex lens, the minimum thickness ratio occurs at the edge; for a concave lens, at the center.
For space reasons, only the first nine lenses are examined.
If the thickness goals provided are insufficient, "tweaking" can be performed with the procedure "cmd achrMTRD( int achrMTRDSet, int achrMTRDLens, double achrMTRD, double achrDelt )". Argument achrMTRDSet indicates whether to list the offsets for the lenses in the system or to actually change a value. Argument achrMTRDLens is the lens number (starting at 1). Note that the numbering of lenses is different than the numbering of surfaces.
The goal values for these offsets are not remembered in the .len file.
Given the lens grouping, recommends a semi-diameter for each lens. A negative lens grouping indicates use of the existing grouping.
Given the lens grouping, indicates the baseline Minimum Thickness Ratio. A negative lens grouping indicates use of the existing grouping.