FRED Version 16.41 Released
Photon Engineering, LLC is pleased to announce the release of FRED 16.41, which is now available for download from our website. This is a major version release which offers new features designed to make optical system engineering in FRED even more usable, diverse, and efficient.
We would like to offer a big thank you to all of our FRED users who participated in the V16.40.0 developmental download program. As a result of your feedback, we have added a couple of new enhancements and minor bug fixes to the official V16.41.0 release. Please see the remarks below, discussing enhanced ray buffer preference settings and importance sampling scatter ancestry criteria.
New Features Summary
Rays and Raytracing
- FRED Optimum will now use up to 63 threads for multi-threaded raytracing and analyses.
- FRED can now raytrace up to 2^63 rays. The previous limit was 2^31 rays.
- The ray buffer preference settings have been modified so that the 64-bit version of FRED can store up to 1 billion rays in RAM at a single time (additional rays beyond this limit are stored in pagefiles on disk). The previous limit was 250 million rays stored in RAM at a single time. Additionally, the ray buffer preferences dialog now reports additional information about the total ray counts allocated by the current settings and the total amount of RAM available on the computer. This additional information makes specifying the ray buffer RAM allocation settings more convenient.
- A new option has been added to scatter importance samples that allows them to be applied only when the scatter rays being generated meet a scatter ancestry level requirement. This option is useful when a scattering surface supports multiple scattering paths that are differentiated by their scatter ancestry.
Model Loading and Update
- Large FRED files saved in this development version will now load significantly faster than in previous versions. Note that you must save your file in the current version before you will see this increased file load speed.
- Sources have been modified so that the ray fluxes do not need to be recalculated each time the source is created (i.e. when you ask FRED to perform a raytrace). Users should notice a reduced lag time between a raytrace request and the start of the raytrace computation.
- Previous versions of FRED only allowed a single diffraction efficiency specification to be applied to a grating that was independent of the direction of incidence of a ray on a grating surface. In this development version there are two diffraction efficiency tables that can be specified to account for the direction of an incident ray relative to the local grating surface normal.
- A new volume hologram efficiency feature has been added based on Kogelnik’s 1969 paper, “Coupled wave theory for thick holographic gratings”. This efficiency calculation supports polarized rays in both reflection and transmission.
- 300 lenses have been added to the Edmund catalog and 27 lenses have been added to the Qioptiq/Linos catalog.
- The dialog for composite curves has been modified to include nine additional columns of data that allow the user to quickly assess whether the starting and ending points of adjacent curves are aligned to each other.
- Raytrace paths now allow the user to redraw every N’th ray along the path instead of forcing all rays on the path to be redrawn, which could obscure the visualization view when the path contains many rays.
- Raytrace path scripting commands have been modified to support negative indexing so that the last event along a path could be specified as -1, the second to last event as -2, etc.
The following script commands have been added or modified.
|SpatiallyResampleScalarField2||Spatially resample a scalar field with control over the adjacent beamlet overlap factor.|
|SpatiallyResampleVectorField2||Spatially resample a vector field with control over the adjacent beamlet overlap factor.|
|GetNURBCurveControlPtCount||Retrieve the number of control points in a NURB curve.|
|GetNURBSurfControlPtCount||Retrieve the number of control points in a NURB surface.|
|GetNURBSurfControlPtCount2||Retrieve the number of control points in a NURB surface using (i,j) control point indexing.|
|GetNURBSurfControlPt||Retrieve the x,y,z position and weight of a specific control point from a NURB surface.|
|SetNURBSurfControlPt||Set the x,y,z position and weight of a specific control point for a NURB surface.|
|GetNURBSurfControlPt2||Retrieve the x,y,z position and weight of a specific control point from a NURB surface using (i,j) indexing.|
|SetNURBSurfControlPt2||Set the x,y,z position and weight of a specific control point for a NURB surface using (i,j) indexing.|
|GetGratingKVector||Retrieve the k-vector and local frequency from a grating surface at a specific x,y,z position.|
|SetDiffractEfficiencyVolHOE||Specify the parameters of a primary volume HOE efficiency specification.|
|GetDiffractEfficiencyVolHOE||Retrieve the parameters of a primary volume HOE efficiency specification.|
|SetDiffractEfficiencyVolHOESecondary||Specify the parameters of a secondary volume HOE efficiency specification.|
|GetDiffractEfficiencyVolHOESecondary||Retrieve the parameters of a secondary volume HOE efficiency specification.|
|SetDiffractEfficiencyTableSecondary||Specify the parameters of a secondary simple efficiency table.|
|GetDiffractEfficiencyTableSecondary||Retrieve the parameters of a secondary simple efficiency table.|
|SetDiffractEfficiencyFileSecondary||Specifies the parameters of a secondary full efficiency table.|
|GetDiffractEfficiencyFileSecondary||Retrieves the parameters of a secondary full efficiency table.|
|AddCatalogLensReversed||Adds a catalog lens with the ordering of the surfaces reversed from their definition in the catalog.|
|PathEvent2||Retrieves all parameters of an event from a raytrace path with additional information about diffracted orders (compared to PathEvent).|
|PathEventIsDiffract||Queries a path event to see if it is a diffraction event.|
|Path Script Commands||The path script commands have been modified to use negative indexing so that the last event is given by index -1, second to last event is -2, etc.|
|ImpSampGetScatterLevel||Retrieve the scatter level ancestry criteria for an importance sample specification.|
|ImpSampSetScatterLevel||Set the scatter ancestry level criteria for an importance sample specification.|
Miscellaneous Upgrades and Bug Fixes
In addition to the major new improvements described above, this release contains many smaller feature additions and bug fixes. Please refer to the developer Release Notes found on the Help menu inside FRED.
A complete list of the new FRED 16.41 features can be found in the developer release notes, accessible from the Help menu after installation.