[Meep-discuss] frequency scaling in reflection spectrum

2009-01-29 Thread matt




Hello,

To compute transmission spectra, I recently tried two approaches that 
came to two different results.


The first approach is the standard way using flux planes as given in the 
meep examples on the webpage.


In the second approach, I store the time data for points in a plane in 
front of the scatterer.  I also do the same for a free space simulation. 
Then, using MATLAB, I analyze the transforms of the time data as 
follows:


- Matlab snippet
fstart = 195 * 1e12 / 3e8 / 1e6; % convert to meep units
fstop = 330  * 1e12 / 3e8 / 1e6; % convert to meep units
fcen = (fstart + fstop)/2;
samplerate = 1/fcen/50;  % field sampled at this rate in at-every

dt = samplerate*1e-6/3e8;% convert time back into physical units

% the following data comes from h5 files outputted by meep
EN = fft(noscat_ez); % Ez values along plane without scatterer
ES = fft(scat_ez);   % Ez values along plane with scatterer
HN = fft(noscat_hx); % Hx values along plane without scatterer
HS = fft(scat_hx);   % Hx values along plane with scatterer

POWS = real( sum(conj(ES - EN) .* (HS - HN) , 2)); % Scattered power
POWN = real( sum(conj(EN) .* HN , 2)); % Incident power
POW  = POWS ./ POWN;   % Reflectivity

f = (1/dt)/2*linspace(0,1,length(ES)/2+1);

plot(f,-POW(1:floor(length(POW)/2+1)),'k');
-


The attached plot shows a comparison of the two reflection spectra. 
There is an strong frequency shifting/scaling present.  This is 
unrelated to the resolution of the simulation.


This may be related to a previous unresolved discussion:
http://www.mail-archive.com/meep-discuss@ab-initio.mit.edu/msg02073.html
http://www.mail-archive.com/meep-discuss@ab-initio.mit.edu/msg00456.html


Previously Prof. Johnson wrote

When the pulse is this wide (in frequency), you can observe a 
computational detail: Meep's Gaussian pulse is not actually precisely a 
Guassian, it is the derivative of a Gaussian (this ensures that there is 
no net charge left in the computational cell after the pulse is gone, 
which prevents divergences in some cases with periodic boundaries). The 
difference between the two is small except for very broad Gaussians in 
frequency (short pulses in time).


Because the main reason to use a short pulse is to get a broad-spectrum 
response, and you have to normalize such a response by the input 
spectrum anyway as explained in the manual, the exact shape of the 
spectrum shouldn't actually matter.


As we can see in my example above, the normalization doesn't cure the 
problems caused by a shifting in the spectra (at least not in my matlab 
processing of the time data).


I'm not sure if this is a bug in meep or if there's something I don't 
understand in the processing of the time data.


Best Regards,
Matt




e2.png
Description: Binary data
___
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

[Meep-discuss] Meep error: Cannot split 0 grid points into 1 parts

2009-01-29 Thread asadollahbaik a. (aa306)
Dear Meep users,

I am calculating the band diagram of a 1D PC ( dielectric multilayer).

My computational cell is 10x1, and I have set the resolution to 40. I am also 
exploiting the mirror symmetry along the x direction (since the periodicity of 
my structure is along the y direction)

But unfortunately I am getting an error from meep saying:
 Cannot split 0 grid points into 1 parts

Why is that for?!?
How come it is saying the grid points is zero?!?!

Thanks for your help,
Asa


Asa Asadollahbaik
PhD Research Student
Materials Research Group

Room 2045, Building 25
University of Southampton
Highfield Avenue
Southampton
SO17 1BJ

Phone Number : +44 (0) 23 8059 8365



___
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss