Hi Doug, Your structure will be, by definition, periodic. The periodicity will be whatever the spatial extent of the geometry that you defined is.
Your fields will also be periodic, by definition, unless you specify bloch periodic boundary conditions - which introduce a phase offset at the boundary. If you set the k-point to be the k-vector of your plane wave, this phase offset will match the phase in the way you want. In other words, you don't have to do anything to make your structure repeating: this is automatic. You also don't have to tell MEEP that this periodicity goes on forever, this is already true. You *do* need to implement bloch-periodic boundary conditions in order to phase match the fields for an arbitrary input wave. If you set the k-point to be the input plane wave k-vector, you should be good to go *for any input angle*. You do not need to manually choose the angles to get the phase to match: this is the advantage of Bloch periodic boundary conditions. Hope this helps. Joe On Tue, May 8, 2018 at 12:43 PM Doug McKnight <d...@mcknight.to> wrote: > Joe, > Thanks for the reply. Maybe this is the source of my confusion: > In the docs, the k_point vector defines the periodicity of the *fields* at > the boundaries. But, I want to have a repeating structure with a, possibly > different, periodicity. > > For instance (2-D case), if I make a thin diffraction grating which is > repeats every *n* units in y then, intuitively, it seems I should make my > computation cell of size *n* units in the y direction, and somehow tell > Meep that it repeats forever... > > Then, if I illuminate it with a plane wave at some arbitrary angle, the > Bloch condition isn't necessarily satisfied, right? > > Is this what you mean by forcing "true periodic boundary conditions", I > need to manually choose the angles to get the phase to match? > > Apologies if I'm being dense. > > > Doug > > > > > On 5/8/2018 12:54 PM, Joe Lowney wrote: > > Doug - > > If you've defined a general plane wave (kx ky kz), then the bloch vector, > k-point, can be set to (kx ky kz) / (2 * pi). This should automatically > handle phase matching at the boundaries for an arbitrary angle of > incidence. You shouldn't have to replicate any unit cells or anything > complicated. > > The discrete angle choices would be required if you were trying to > force-match true periodic boundary conditions, but this shouldn't be > necessary with bloch-periodic BCs, which allows your incident angle to be > completely arbitrary. > > Joe > > > > > On Tue, May 8, 2018 at 11:41 AM Doug McKnight <d...@mcknight.to> wrote: > >> Ian and Joe, >> Thanks, yes, that's the sort of approach I'm attempting to take. It's >> just a little slow while I find my way into the Meep way of thinking... >> It would probably help if I was a "real programmer". >> >> I was presuming that, at least initially, I'd need to phase-match my >> incident wave at the boundary. To achieve a more fine-tuned choice of >> incident angles I could replicate n copies of my unit cell within the >> bloch-periodic simulation region. Then the phase-matching condition >> would still force discrete angle choices, but they'd be more closely >> spaced. >> >> If there's a more elegant approach, I'm all ears. >> Thanks >> Doug >> >> >> >> On 5/8/2018 11:42 AM, Ian Sage wrote: >> > > so far, I'm happily sending an oblique plane wave at a block of >> > glass, and seeing it refract/reflect as expected. >> > >> > > I'd like to transform my finite block of stuff to be infinitely long >> > and specified in terms of a unit cell, (and the same for the >> > > plane-wave source) so that I can construct diffraction-grating-like >> > features. >> > >> > So, you want to use an oblique source with cyclic boundary conditions? >> > Are you working in 2d or 3d? >> > >> > Either way, you'll need to remove the PML from the axis/axes along >> > which you want periodicity, using the direction parameter, and specify >> > a k_point vector. Both points are covered in the Python UI docs. >> > >> > If you want off-axis incidence, you'll also need to adjust the >> > wavelength/simulation dimension/incidence angle to ensure smooth phase >> > matching across the cyclic boundary (unless a real expert knows a >> > better way). >> > >> > Is that what you wanted to know? >> > >> > Ian >> > >> > >> > _______________________________________________ >> > meep-discuss mailing list >> > meep-discuss@ab-initio.mit.edu >> > http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss >> >> >> _______________________________________________ >> meep-discuss mailing list >> meep-discuss@ab-initio.mit.edu >> http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss > > >
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss