Git Product home page Git Product logo

rafael-fuente / incoherent-light-simulation Goto Github PK

View Code? Open in Web Editor NEW
161.0 7.0 24.0 70.37 MB

Simulation of the propagation of incoherent light, aiming to illustrate the concept of spatial coherence.

Home Page: https://rafael-fuente.github.io/visual-explanation-of-the-van-cittert-zernike-theorem-the-double-slit-experiment-with-incoherent-and-coherent-light.html

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
simulation physics physics-simulation optics animation fdtd incoherent-light optics-simulation photonics

incoherent-light-simulation's Introduction

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.

incoherent-light-simulation's People

Contributors

rafael-fuente avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

incoherent-light-simulation's Issues

Ytdx

Deleted because it's spam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.