Hello, I tried to do a simulation with a plane wave reflecting off a Sievenpiper structure, as previously discussed on the list:
http://www.mail-archive.com/[email protected]/msg00849.html I have a measurement point at some distance from the structure. For the reflection phase, I calculate the difference between the phase of the normally incident field and the reflected field. Plotting this one mainly sees the progressing phase of the path two times the distance between the measurement point and the reflecting surface. When one plots the phase this appears as a linear increase of the phase with frequency. To obtain the actual reflection phase characteristic it is not clear how one should subtract this progressing phase increase for reflectors with arbitrary shapes. For the case of a PEC mirror it is not hard to subtract out this progressing phase. But for the Sievenpiper structure there are different reflection surfaces (top of patch, top of groundplane), so it is not clear which path to subtract out to get the correct result. I tried to subtract the path until the ground plane, but then I see that some continuous phase change remains. And if I look what this remaining phase is, I find that is nearly just two times the path between the ground plane and the top of the patch. So it seems most of the frequencies are reflecting at the top of the patches. This means my structure seems to react nearly just as a shifted PEC mirror, which is quite different from the results in figure 7.3.2. of Sievenpiper's thesis, which shows a gradual progression of the phase from pi to minus pi over the wide frequency band of the measurement. Was anyone able to get similar results as the measurements in Sievenpiper's thesis with a simulation like this? If yes, how? You can find my scheme code on: http://pastebin.com/f4fe96a13 My complete matlab code for plotting the phase is on: http://pastebin.com/f4cb3e14d Comments about the matlab code: Steven Johnson recommended the following approach: N = length(R); Rangle = arg(fft(R - R0)); % in matlab, use "phase()" instead of "arg()" Rangle = Rangle(1:N/2); % frequencies above Nyquist are redundant freq = [0:length(Rangle)-1] / (N * dt); plot(freq, Rangle) This does not make sense to me. This only plots the progressing phase of the reflected pulse. What really is of interest is the difference between the phase of the incident pulse and the phase of the reflected pulse this is: phase(fft(R - R0))-phase(fft(R0)) The following plots the difference of the two phases minus the path, in degrees and Hz. ( In meep I used 1mm as a unit) Rangle=phase(fft(R-R0)); Rangle0=phase(fft(R0)); freq=[0:length(Rangle)-1]./(N*dt); path=2*5*360/30e9*(3e11.*freq); % my center wavelength is 30GHz and for this % frequency my measurement point is % 5 wavelengths from the ground plane plot(3e11*freq,(Rangle(1:N/2)-Rangle0(1:N/2))*180/pi+path') Thanks in advance for answering the question about how to get the expected reflection phase for a Sievenpiper structure. Regards Cecile _______________________________________________ meep-discuss mailing list [email protected] http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

