Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ParaxialSurface type implementation for first order layout #63

Open
7 of 12 tasks
HarrisonKramer opened this issue Feb 5, 2025 · 0 comments · May be fixed by #88
Open
7 of 12 tasks

ParaxialSurface type implementation for first order layout #63

HarrisonKramer opened this issue Feb 5, 2025 · 0 comments · May be fixed by #88
Assignees

Comments

@HarrisonKramer
Copy link
Owner

HarrisonKramer commented Feb 5, 2025

Description

A paraxial surface is defined solely by its focal length (assumed in air). It can be used at the start of a lens design to build a first order model, after which thicknesses can be added and a complete design can be built and optimized.

Requirements

  • Create a new ParaxialSurface type (subclass of Surface)
  • ParaxialSurface has a planar geometry
  • Implement tracing logic within the class
  • Implement paraxial tracing logic
  • Add optical path to rays that pass through the (infinitesimally thin) surface by treating the lens as a phase transformer
  • Add logic for adding a paraxial surface in the surface factory
  • Update visualization of the new surface type
  • Add documentation
  • Add one example in the learning guide
  • Add examples in the gallery
  • Add unit tests
  • (optional) consider how the surface can easily be converted into a thick lens, perhaps with a "convert_to_thick_lens" method.
@HarrisonKramer HarrisonKramer self-assigned this Feb 5, 2025
@HarrisonKramer HarrisonKramer linked a pull request Mar 9, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant