In this example, we show how to decompose the transmitted or reflected fields of a periodic structure into plane waves and propagate them an arbitrary distance through homogeneous material using Grating Projection (GP). We will compare the results of a projection with a direct FDTD simulation of the same near field region, to demonstrate that this method can work well even over small distances. In practice, the user would normally only simulate a small volume around the periodic scattering structure.
This technique is useful in some lithography applications.
Setup
The example simulation file contains a thin film of gold on glass with a circular etch hole in it. The simulation volume represents one unit cell of a periodic structure which has a period of 1.5 microns in both the x and y directions. The source covers a wavelength range of 0.4 to 0.6 microns, and is polarized with the E field along the xaxis. We take advantage of the symmetry of the structure to reduce the simulation volume to 1/4 of the unit cell.
Analysis
The script file uses the grating script commands to decompose the field recorded at the monitor called "transmission" onto a basis state of plane waves. The plane waves can then be propagated to any distance and summed up to calculate the E field at any distance. In principle, this approach is straightforward, but in practice, it can be somewhat complicated. It is important to test your analysis against known results to ensure there are no mistakes in your analysis.
This summing is most conveniently done using the chirped ztransform, or czt, script function. There are a number of amplitude and phase correction factors in the script that must be correctly taken into account, however, the idea of the plane wave decomposition and is quite simple and involves 2 steps:
Step 1: The E field at the "transmission" monitor surface is decomposed into a sum of plane waves
$$\overrightarrow{E}(x,y,z_0)=\sum_{n,m}\overrightarrow{E}_{n,m}{exp}(ik_{x,n}x+ik_{y,m}y)\\k_{x,n}=\frac{2n\pi}{a_x}\\k_{y,m}=\frac{2m\pi}{a_y}$$
where kx,n and ky,m are the inplane wave vectors associated with the (n,m) diffracted order and ax, ay are the x and y periods respectively. The En,m coefficients are calculated using the gratingvector script command.
Step 2: The E field at any distance z can then be constructed simply by taking the sum
$$\overrightarrow{E}(x,y,z)=\sum_{n,m}\overrightarrow{E}_{n,m}{exp}(ik_{x,n}x+ik_{y,m}y+ik_{z,n,m}z)\\k_{z,n,m}=\sqrt{k^2k^2_{x,n}k^2_{y,m}}$$
and this final sum is most easily accomplished uzing the czt script function.
Results
The script file propagate_periodic_test.lsf is used to test this projection method by comparing it to simulated FDTD results. After running the file propagate_periodic.fsp, running the script file will generate the following figures.
The near field, where it is recorded by the FDTD monitor
The electric field intensity in the xz plane for the first 10 microns of propagation, as calculated by FDTD


The electric field intensity in the xz plane for the first 10 microns of propagation, as calculated by the plane wave decomposition and projection. 
A comparison of the electric field intensity vs z at (x,y)=(0,0)
A comparison of the Ex vs z at (x,y)=(0,0)
We see that there is good agreement between the projected fields and the fields as calculated by FDTD. There is some discrepancy which increases as the propagation distance increases. This difference is due to grid dispersion (the speed of light on the FDTD mesh is slightly different than free space as well as being anisotropic) and therefore we can expect that the projected result is in fact more accurate for long propagation lengths. Here, we show a plot based projection and postprocessing, for up to 100 um. To obtain this plot below, set test=0 in solvers_propagate_periodic.lsf and run the script.