This topic discusses the phase convention and describes two techniques for implementing circularly (or elliptically) polarized sources.
Solvers: FDTD, varFDTD
Phase convention
The sign convention used in FDTD Solutions for a forward propagating planewave is \(e^{-i w t+i k z}\), so when introducing a phase offset (\(\phi\)) to the source, you will get \(e^{-i w t+i k z+i \phi}\) for the forward propagating light.
Two sources in one simulation
Consider the file usr_polarization1.fsp. Here we have an x polarized plane wave source with its phase set to 0, and a y polarized plane wave source with its phase set to 90 degrees. This creates a forward propagating plane wave with phases:
$$\begin{array}{l}
\text { phase }\left(E_{x}\right)=+k z \\
\text { phase }\left(E_{y}\right)=+k z+\frac{\pi}{2}
\end{array}$$
Depending on which historical convention you use, this could be called either circular right or circular left.
Note: Normalization
When using multiple sources in a simulation, extra care must be taken to ensure you understand how the the results are normalized. In this case, with two orthogonal sources that each have an amplitude of 1, the monitor shows that the amplitude of both \(E_x\) and \(E_y\) are 1. This implies that \(|E|=\sqrt{2}(V / m)\). A power transmission monitor located in front of the sources would return 1 (not 2) because the transmission function is normalized to the sum of the source power from all sources. In this particular simulation, the standard normalizations give very sensible results with the two sources. However, in many simulations with multiple sources, the default normalization may not be appropriate. It may be necessary to disable the default normalization. This is particularly important if the sources start to have different frequencies, time offsets, etc, or if the sources can interfere with each other in any way.
Running usr_polarization1.lsf with usr_polarization1.fsp creates the following plots:
The analytically calculated phase of each field component (\(E_x\) and \(E_y\)) along the propagation direction shows a good agreement with the corresponding simulation result.
Comparison of the simulation results show that the the \(E_x\) and \(E_y\) components has identical amplitude of “1” and a constant phase difference of 90 degrees over the length of the propagation. The abrupt changes near \(z=0\) is due to the source injection area where the monitors can record unphysical results.
We can also take advantage of the vector plot feature to visualize the circular nature of the wave's polarization. Click to visualize the \(E\) field results of the \(Z\) monitor. Choose the vector plot option. you can edit the settings for more or fewer arrows in the plot using the downsampling option. The figure below was generated using a much finer mesh for more data points:
Summing the results from two simulations
It is possible to obtain the response of a system to a beam with arbitrary polarization by running two simulations.
Open usr_polarization2.fsp and run the script file usr_polarization2.lsf. The script will run two simulations (each with a single source) and save the data in temporary fsp files called usr_polarization2_0.fsp and usr_polarization2_90.fsp. After running the script file once, set the variable rerun_simulations to 0 and adjust the complex weighting factors weight_0 and weight_90 in usr_polarization2.lsf. This demonstrates how the response to an arbitrary source polarization can be created without having to rerun the simulations.
In the figures below, we show the results for elliptical polarization created by setting weight_0 to 1 and weight_90 to exp( 1i * 45 * pi /180), i.e. a 45 degree phase difference.