Optiland v0.2.0 Release Notes
Additions and Improvements:
- Refactor of 2D and 3D visualization to better include surface tilts/decenters
- FFT PSF visualization code optimized for speed
- Add the OperandRegistry for optimization operands. Improves optimization organization and simplifies adding new or user-defined operands.
- Updated documentation and new tutorials
- Tests added to improve package coverage
- SolveManager and PickupManagers added to handle solves and pickups, respectively, for a given Optic instance.
Breaking Changes:
This release introduces changes to the API that may affect existing code. Specifically:
- SolveManager and PickupManager Integration
- Methods for adding solves and pickups have been updated to use managers. This ensures a more modular and extendable design.
Example migration:
lens = CookeTriplet()
# v0.1.7 (Old)
lens.set_pickup(source_surface_idx=1, attr_type='radius', target_surface_idx=2, scale=-1, offset=0)
lens.clear_pickups()
lens.set_solve('marginal_ray_height', surface_idx=0, height=10)
lens.clear_solves()
# v0.2.0 (New)
lens.pickups.add(source_surface_idx=1, attr_type='radius', target_surface_idx=2, scale=-1, offset=0)
lens.pickups.clear()
lens.solves.add('marginal_ray_height', surface_idx=0, height=10)
lens.solves.clear()