Skip to content

zjuyinge/Incoherent-Light-Simulation

 
 

Repository files navigation

Incoherent-Light-Simulation

DOI

This is a project that consists of a compilation of educative optical simulations with the goal of illustrating the concept of spatial coherence.

The simulations focus on visualizing the differences between the behavior of incoherent and coherent light propagation through different time scales: femtoseconds, picoseconds, and microseconds. When the time scale goes up and the field is averaged, the interferometric visibility of the fringes disappears, yielding a uniform distribution.

How the simulations are done

These simulations are performed by computing the field created by point sources with random phases and randomly placed inside the light source dimensions.

Time averaging is done using Monte Carlo integration.

Then, the simulation is represented and animated with matplotlib.

Check the video for the demonstration and the article for further explanation.

Installation

Just clone or download the repository. The package requeriments are:

  1. numpy
  2. matplotlib
  3. progressbar

Simulations

To perform the simulations, just run from the command prompt the corresponding Python scripts:

python simulation_femtoseconds.py

animation

python simulation_picoseconds.py

animation

python simulation_microseconds.py

animation

The double slit experiment finite-difference time-domain (FDTD) simulations reproduce the results of the Van-Cittert-Zernike theorem, showing how the interferometric visibility of the fringes varies due to the different parameters of the simulation.

Simulations of the double slit experiment with incoherent and coherent light.

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%