by Jessica Ramella-Roman

Download | Revisions

This web page was created in support of the papers "Three Monte Carlo programs of polarized light transport into scattering media: part I & 2". The three Monte Carlo programs described in the papers are available here for download along with basic instructions for their use.

Unpolarized Light Monte Carlo programs have been around for some time; some are available here.

The Polarized Light Monte Carlo programs described here keep track of the status of polarization of light traveling through a scattering media. In the Monte Carlo programs presented here the scatterers are microspheres. These codes use a Mie scattering program to calculate the scattering coefficients of the scattering matrix.

An important issue in Polarized light Monte Carlo is the tracking of the polarization reference frame. We show three different methods to do so

Installing and running the programs

These programs were developed in C programming language, they were compiled and tested in Red Hat Linux 7 and MacOsX-Unix (we were also able to run them in a Knoppix environment)

Here are step by step instructions on how to run these programs

  • Download the Monte Carlo code you want to try

  • Unzip it or untar it


    >untar -cf -iquv.08.03.tar

  • Read the README file that has a lot of information I will not repeat here

  • Open a terminal window

    For mac users it looks like this

    mac terminal

    You can also find the terminal in Applications/Utilities/

  • Find the directory where you put the Monte Carlo program

  • Make the program by typing make at the prompt

  • mac terminal example
  • Ignore the warnings

  • You are now ready to run your Monte Carlo program, just type ./iquv the propt

    IQUV picture

  • You are done! This program produces 16 images. Launch H corresponds to a field whose status of polarization is parallel to the reference frame (Stokes Vector [1 1 0 0]), Launch V is for perpendicular (Stokes Vector [1 -1 0 0]), Launch P is for 45 degrees (Stokes Vector [1 0 1 0]), and Launch R is for right circular polarized (Stokes Vector [1 0 0 1]).

  • For every launched Stokes vector 4 images are created corresponding to the reflected 4 elements of the Stokes vector IQUV, so for Launch H you will have HI.dat HQ.dat HU.dat HV.dat, Launch V you will have VI.dat VQ.dat VU.dat VV.dat, and so forth