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