Direct Propagation

This is the real "work horse" of simulations, and is worth while familiarizing oneself with its operation. This module permits you to look at the effect of light traveling from one plane to another. It permits changes of the scale on the second plane so that you can zoom in or out by changing the pixel pitch at one of the planes. The center of the second plane can be changed as well. This works well at nearly all distances even within one mm and at large magnification.

For a faster calculation I use the chirp icon in the lower right corner of the button matrix. But even more commonly I use a combination of inverse Fourier, lens function (with multiply and duel settings), and another Fourier transform. This "fast Fresnel" transform works with no magnification or offset, but its fast, and you can work with a very tiny pitch using the non paraxial option. So you have some choices. The Fast Fresnel algorithms are have the unfortunate property that what goes off the edge of the array comes back on the other side like the old asteroids game. This does not happen with the direct propagation. I like to use the one below best for its ability to magnify.

This given an electric field distribution at plane P1 this does a reasonable job of calculating the electric field of the same polarization at plane P2 we assume an a separation between pixels (field 2 square array) where each pixel has size specified in field 3. At plane 2 you have the option of choosing whatever pixel spacing you choose (field 4), so you can zoom in on some point of your choice. The bottom two fields permit you to offset the center pixel of plane P2. These offset coordinates are in units of pixels. So consider the pixel spacing of P2.

The calculation is done using the following formula.

The symbols have the following meanings: d1 pitch in mm/pixel on plane P1, d2 pitch in mm/pixel on P2, p and q are the offsets of the origin of the coordinates in plane P2, d is the size of pixels on plane P1, Z is the separation distance (step) and lambda is the wave length.

The calculation is done without the speed of a fast Fourier transform but is done with matrix multiplication after computation of a transformation matrix. So it can take a few seconds or minutes with a large array.

When used in the scripting language

When this window appears when setting up a script, an additional items appear next to the "step" field.
if the "Batch file" box is clicked, when you select hide, you will then be asked to select a text file which should contain a table of numbers which will be read one field at a time in turn as the icon is called by the script. These numbers in each field will be used in the 7 white text boxes of the window filling them from top to bottom. When the list is exhausted the execution of the script will branch or stop. If the "show progress" button is selected, the most recent step value will be placed near the bottom of the script window as the script progresses.

When using symbols in the scripting language

Symbols from the Symbol list icon can be used in this window by just clicking "ok Symbols" and choosing which fields to used for a symbol.