{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Refraction: lens\n", "\n", "The main role of this simulation is to look at the the **phase imprinting property of a lens** or **lens refraction**\n", "see Sec. 2.15-2.18 of Opticsf2f.\n", "We shall add rays which follow the **law of Ibn Sahl**, Sec. 2.7. This allows us to compare ray optics and\n", "wave optics, at least for the case of a small lens.\n", "For a simpler case of refraction, see also \n", "\n", "an example using a prism, PrismRefraction.ipynb\n", "\n", "The simulation makes use of some topics covered in later Chapters: For example, we shall propagate the electric \n", "field using the **hedgehog equation**, Sec. 6.4.\n", "Also the input field is a **gaussian beam**, see Sec. 11.3. However, we do not necessarily need to understanding exactly how \n", "the simulation is construction in order to understanding the basis properties of lens. Also important to note is \n", "that the propagation code is paraxial so we can expect significant errors\n", "when the angle between the propagation direction and the surface normal is greater than about 30 degrees.\n", "\n", "First we explore the physics using an **interactive figure**.\n", "\n", " \n", "\n", "Below we shall include the code that produces the images. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many cools results in this simulation. A few of my favourites are:\n", " \n", "1. The rays do not all converge on a single point due to **spherical aberrations**. The rays closer to the optical axis converge\n", "at the focus. \n", "2. Looking at the field, we can see how the waves compress inside the lens. \n", "3. And how the lens imprints wavefront curvature.\n", "4. Note how the focus of the gaussian beam (beam waist) is 'upstream' of the ray focus.\n", "5. Note how the wavefronts are curved in the focal plane (indicated by the ray focus). \n", "6. Note how the field and intensity distributions are asymmetric upstream and downstream of the focus.\n", "\n", "At least three of these, we miss if we only plot intensity!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we look at the code that generates the images above. You can run the code in your browser. Note that the first two cells that import\n", "python packages may take up to 10 s each depending on your platform.\n", "\n", "The Jupyter Notebook is LensRefraction.ipynb see\n", "\n", "https://github.com/opticsf2f/Opticsf2f_CodeBook\n", "\n", "