For a complete list of additions and updates in this version, please see the release notes in the user manual. Here, we highlight a few important items:
Here’s a language-checked and slightly refined version of your text, focusing on clarity, conciseness, and professional tone for a release note/manual:
For a complete list of additions and updates in this version, please see the release notes in the user manual. Here, we highlight a few important items:
Afocal Mode
A new system parameter, focal_mode
, has been introduced. Its default value is "FOCAL"
. This parameter can be changed to "AFOCAL"
for systems where the goal is to collimate rays instead of focusing them. An example would be the objective in an infinity-corrected microscope design. In AFOCAL mode, the inbuilt cost function is calculated from ray direction cosines instead of ray positions. A minimum cost function implies good collimation. Consider the example below, which shows a parabolic mirror collimating an on-axis field.
blank()
change_surf("s 2", "conic")
s[2].rfr = "reflect"
s[2].gls2 = "n-bk7|schott"
s[2].cony = -1
s[2].rdy = -2
s[2].thi = -2
print("Cost in focal mode: " .. get_cost())
set("focal_mode", "afocal")
print("Cost in afocal mode: " .. get_cost())
Collimated image space
Cost in focal mode: 107823.19535757
Cost in afocal mode: 4.0184052045281e-26
With out any argument, the function freeze()
will freeze the entire system.
The order of operation for the repositioning mode "REVERSE"
has been updated so that the surface is first placed and then the repositioning is applied. This change assists in realising a tilted plate, for example.
blank()
-- Wavelengths
set("WL W 1", 0.5)
set_pwl(1)
-- System settings
set("P_VAL", 5, 1)
-- Sequential surfaces
set("THI S 1", 100000000000.0);
set("THI S 2", 5.0);
ins_surf("S 3", {type = "SPHERE", glass = "N-BK7|SCHOTT", rdy = 0.0, thi = 1.0})
set_label("S 3", "in")
set("REPOS S 3", "BASIC", 1)
set("ALPHA S 3", 45, 1)
ins_surf("S 4", {type = "SPHERE", glass = "AIR", rdy = 0.0, thi = 5.0})
set_label("S 4", "out")
set("REPOS S 4", "REVERSE", 1)
set("ALPHA S 4", 45, 1)
set_stop(2)
Tilted plate using the reverse repositioning.
An update has been applied to how reference rays are launched. With this change, object surface can now be curved.