Jones Matrix Polarization Rotator
Rotation of a polarized ray through an arbitrary angle can be accomplished using the "Polarizer/Waveplate (Jones matrix)" coating type and using the General Matrix option. The real components of the Jones matrix define conversion of an input polarization state [Ux Uy] to an output polarization state [Ux' Uy'] by rotation through an angle THETA in the following way (the rotation defined here is counter clockwise):
Ux' = cos(THETA)*Ux - sin(THETA)*Uy
Uy' = sin(THETA)*Ux + cos(THETA)*Uy
The Jones matrix elements are then J00 = cos(THETA), J01 = -sin(THETA), J10 = sin(THETA) and J11 = cos(THETA).
The example file below contains a coating node called "RotationCoating" which is defined as a General Matrix type of Polarizer/Waveplate coating definition. The rotation angle of the coating can be set by going to Tools > Edit/View Global Script Variables, setting a desired value for the Current Angle of the g_alpha global variable and hitting Apply on the dialog. The g_alpha rotation angle is automatically applied to the coating definition through a Pre-Update script, which can be viewed by going to Tools > Edit/View Pre-Update Script. Information is printed to the output window whenever the coating is modified via the pre-udpate script.
A source node is defined with a single ray having a linear polarization state along the X axis. The RotationCoating is applied to an Air/Air dummy plane located between the source and the detector. After performing the raytrace and calling Analyses > Polarization Spot Diagram, the linear polarization state of the ray can be seen to have been rotated counter-clockwise by an angle THETA.
Example FRED file: polarizationRotator.frd