It is possible that you are not running for long enough and thus the fields 
have not yet fully converged. Try reducing the tolerance in the 
stop_when_fields_decayed run function or simply increase the run time.

For reference, see this new tutorial example on computing the angular 
reflectance spectrum of a planar interface:

http://meep.readthedocs.io/en/latest/Python_Tutorials/Basics/#angular-reflectance-spectrum-of-a-planar-interface


> On May 18, 2018, at 6:22 AM, Christoph Kleinhans <christ...@kleinhans-web.de> 
> wrote:
> 
> Hello Meep users,
> 
> using the Python interface, I simulate a scatter-problem with PML in 
> y-direction and a grating with periodic boundary conditions in x-direction. 
> The periodic structure is made of silver.
> 
> The distance between source and scatterer is high enough to not influence the 
> LDOS at the source location. Also the padding between scatterer and PML is 
> high enough.
> 
> My target is to measure the reflectance by letting a p-polarized plane wave 
> propagating in different angles (from 10 to 35 degree) on the scatterer and 
> then plot the reflectance over the angles. Right now I am doing for every 
> degree a simulation without scatterer (for normalisation) and with the 
> scatterer.
> 
> Between 10 and 20 degree the measured reflectance looks good and almost 
> matches the measured reflectance of a component build at the university 
> laboratory (I am using the specifications of that component to verify the 
> simulation set up).
> After 20 degree to 35 degree the reflectance get messed up (see attachment if 
> you like). At 25 degree the reflectance drop off, but it should be about 1, 
> the same at 33 degree.
> 
> I use the plane wave amp function build by Steven G Johnson with specifying 
> the kdir-vector for the incident angle (math is m and cmath is cm).
> 
> wavelength = 0.6328
> fcen = 1/wavelength
> df = wavelength
> phi_pw = (2*m.pi/360)*rot_degree
> 
> def pw_amp(k, x0):
> def _pw_amp(x):
> return cm.exp(1j * k.dot(x + x0))
> return _pw_amp
> 
> kdir = mp.Vector3(m.sin(phi_pw), m.cos(phi_pw))
> k = kdir.unit().scale(2 * m.pi * fcen)
> sources = [mp.Source(mp.GaussianSource(fcen, fwidth = df),
> component = mp.Hz,
> center = mp.Vector3(0,0.4*y),
> size = mp.Vector3(x,0),
> amp_func=pw_amp(k, mp.Vector3(y = 0.4*y)))]
> 
> 
> Now it is not exactly like the pw-example by Steven G Johnson. I have only 
> ONE source at the +y boundary. In my Simulation the computational cell got 
> the size of x = 0.8 and y = 2.2 (without PML) and I don’t know how exactly I 
> can implement the pw source with two interfer sources like this:
> https://github.com/stevengj/meep/blob/master/python/examples/pw-source.py
> 
> Can please anyone help me to set up my source so in the cell to get the right 
> incident angles.
> 
> Best Regards
> Christoph
> <Plot of Ref.pdf>
> 
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to