Viewing two light sources through a gradient index lens
Channel: Nils Berglund
Date: 2024-04-09

Several recent videos on this channel, such as https://youtu.be/CdpTq3dSrXA and https://youtu.be/aYvsBgyJgIE , showed planar waves crossing a gradient index lens. In this video, we look instead at two light sources that are located quite close to the lens. The lens is indeed able to focus the light on two spots located in the focal plane. In practice, one seldom has light sources located so close to the lens (except perhaps in macro photography), but this set-up was better suited to the simulation method used here. To be able to get such a small focal length, the refractive index has been chosen rather large in the center of the lens, with a value of 1.82. 
The videos are inspired by Huygens Optics' recent short https://youtube.com/shorts/VGd3Ajnp6e0 showing the principle of a gradient index lens.
Lenses focus incoming rays of light by delaying them more near the center of the lens than at its periphery. This is often done with a material of constant index of refraction, by making the lens thicker near the center, as shown for instance in the simulation https://youtu.be/rrJJBh9ubUE . However, one can also build lenses of constant thickness, by making the index of refraction of their material depend on the location in the lens. In this simulation, the index decreases like sqrt(n0² - a*r²), where r is the distance to the axis of symmetry. This results in the incoming waves being focused at two points in the (estimated) focal plane, marked by a vertical line. The plot to the right shows a time-averaged value of the field along that plane. 
This video has two parts, showing the same evolution with two different color gradients:
Wave height: 0:00
Averaged wave energy: 1:12
In the first part, the color hue depends on the height of the wave. In the second part, it depends on the energy  of the wave, averaged over a sliding time window.
There are absorbing boundary conditions on the borders of the simulated rectangle. The display at the right shows the signal along the focal plane, which is indicated by a vertical line. 

Render time: 38 minutes 12 seconds
Compression: crf 23
Color scheme: Part 1 - Twilight by Bastian Bechtold
https://github.com/bastibe/twilight
Part 2 - Inferno by Nathaniel J. Smith and Stefan van der Walt
https://github.com/BIDS/colormap

Music:  "Jupiter One" by Riot

See also https://images.math.cnrs.fr/Des-ondes-dans-mon-billard-partie-I.html for more explanations (in French) on  a few previous simulations of wave equations. 

The simulation solves the wave equation by discretization. The algorithm is adapted from the paper https://hplgit.github.io/fdm-book/doc/pub/wave/pdf/wave-4print.pdf 
C code: https://github.com/nilsberglund-orleans/YouTube-simulations
https://www.idpoisson.fr/berglund/software.html
Many thanks to Marco Mancini and Julian Kauth for helping me to accelerate my code!

#wave #lens #gradient_index