Vortex Phase Plate
NOTE: The original version of this article was posted on LinkedIn.
In Kansas City, where I live, I'm told that the Polar Vortex has made things quite cold outside. As someone relatively new to the Midwest, I'll take their word for it. I have no intention of going outside today to validate that experimentally. Coming from Arizona, I still have trouble processing temperatures below 50 degrees Fahrenheit.
However, I did think this would be a good excuse to do some raytrace modeling in FRED to celebrate my first "you'll get frostbite in less than ten minutes" weather event. Polar Vortex, meet Optical Vortex!
To be honest, I've never had any particular reason to work with vortex phase plates myself but I have been asked by customers in the past how to go about modeling them. Here is one method I came up with this morning.
If you create a custom Detailed Source in FRED you have the option to apply a spatially varying Amplitude/Phase mask. This is found on the Power tab of the source dialog, where you would choose the Amplitude/Phase Mask on Rectilinear Grid option for the type of Position Apodization function.
You can populate the Amplitude/Phase mask grid in a variety of different ways (mask data import, bitmap import, load from a complex field file, etc.) but I have chosen to use Excel to generate the amplitude/phase mask data and then saved the worksheet data out to a text file for import back into FRED. In my Excel spreadsheet, I have simply defined a unit amplitude field with a 1 turn spiral phase variation that is constant in azimuth. A header is added to the text file so that FRED knows how to interpret the incoming data. Each x,y position in the grid has two associated values (i.e. two columns per position), amplitude and phase.
Now that I have the text file defining the apodization mask, I right mouse click in the data grid and choose to read in my file data. This populates the data grid and sets the physical dimensions of the grid to the value specified in the header (1x1 in this case).
The other usual parameters of the source need to be specified as well: wavelength, power, coherence, starting ray distribution, etc.
Once I have the source configured, I use an Analysis Surface grid at the source plane to verify the starting phase. The starting rayset is generated, I calculate the Scalar Field and view the Phase.
Okay, well, it's not perfect. I've clearly got some sort of discontinuity there on the right hand side that I wasn't expecting. Things could be worse - like having my nose frozen off if I open my front door. We proceed anyways.
Now we need to take this starting complex field and propagate. I added an Ideal Lens type Element Primitive to my model operating at F/2 and bring the field to focus. Then I calculate the Irradiance distribution at my focal plane.
The asymmetry is probably due to the discontinuities in my phase mask noted previously, but otherwise this doesn't look too bad for my first try. I'll just claim that the asymmetry is an intentional homage to the inequality of the Polar Vortex that is sparing our friends on the left coast.
If you're wondering what the Irradiance distribution looks like when we remove the phase mask, well, it's just your standard run of the mill Airy function. See how boring it is without vortices?
Stay warm, raybenders!
Example FRED File: vortex.frd
Excel workbook: vortex.xlsx
Amplitude/Phase Mask file: vortex.txt