Date: 27/11/2022
By: William Nguyen
Written and tested in Python 3.7
----- GETTING STARTED -----
-
import the classes and functions from the raytracer.py and optimisation.py
-
set up an optical system, which can consist of SphericalRefraction, AsphericRefraction and OutputPlane objects
-
use propagate_ray method to trace rays or a collimated beam
-
visualise the results with MatplotLib
-
For more detailed instruction, see example.py file
----- MODULES -----
-
raytracer.py contains the classes and functions required to model ray tracing
-
optimisation.py contains the methods to calculate RMS of different optical systems
----- SCRIPTS ------
-
example.py contains the example script on how to get started with the optical ray tracer
-
unit_test.py contains the script to check the operations of classes and functions
-
aspheric_surface_testing contains the unit tests for aspheric surface.
-
ray_tracing_investigation.py contains the script to perform Task 12 - 15 of the project.
-
biconvex_lens_optimisation.py contains the script to perform the lens optimisation task.
-
aspheric_surface_optimisation contains the script to optimise plano-convex and bi-convex lens with adaptive optics.
----- Sample outputs ------