Quick MPB question/clarifiation #2622
Replies: 3 comments
-
I've come back to this problem, but I still don't feel like I've really wrapped my head around it. The basic question is, if I put an eigenmode source in a waveguide, how do I know the effective index, group velocity, and TE/TM type? I can tell the strip waveguide MPB example is meant to cover that, but there's so much information in the output that I don't know how to read it. Here's an example of what I mean: if you run that code, the word "velocity" appears four times, and after each are a set of Vector3's. This makes sense because it was set to find four bands, and each band would have its own group velocity. The problem is that the number of Vector3's that appear after each "velocity" are different (there's one vector after band 1, two after band 2, etc.), and no two vectors are equal. How am I supposed to interpret these numbers? Also, is the method I laid out above (doing run, run_te, and run_tm and matching the k values) a valid way of getting the TE/TM information? Because just looking at the display_(y,z)parity output and seeing if they're odd or even doesn't tell you that. |
Beta Was this translation helpful? Give feedback.
-
The graph doesn't make sense, since the "all" should match either TE or TM – it should be whatever the lowest band is. I suspect that you're using "TE" and "TM" in a case where you shouldn't be. In MPB, these are synonyms for z-even and z-odd modes – modes that are even/odd with respect to a z=0 mirror symmetry plane of the structure. (In 2d, this gives purely polarized modes. In 3d, there generally is no such thing as purely polarized modes). I'm guessing your 3d structure doesn't a have z=0 mirror symmetry plane, so MPB is giving you garbage if you ask for "TE" or "TM" modes. |
Beta Was this translation helpful? Give feedback.
-
I believe that I do have mirror symmetry at z = 0 in my system, because the only geometrical object is That figure is not the best way to identify a mode's parity, I did it as sort of an experiment, but the values do align -- for example, omega_{all, band 1} = omega_{TE only, band 1}, omega_{all, band 2} = omega_{TM only, band 1}, etc. I guess I should be a bit more careful with my language, since "effective index" is something that only appears in certain contexts (like waveguides) and MPB doesn't make use of such a term; similarly, TE and TM have specific definitions in waveguides, but here they only refer to the z-parity of the calculated mode. Nevertheless, MPB can give you phase and group velocities of the modes at a specific frequency (or wavelength) using find_k, correct? Could you please explain a little more on how to interpret the group velocity data (each band gives a different number of Vector3's)? Thank you very much for the help, I appreciate it. |
Beta Was this translation helpful? Give feedback.
-
I just wanted to confirm some things about MPB to make sure I’m using it correctly. I’m studying a rectangular waveguide (similar to this but without the substrate) and I want to generate the fundamental TE and TM eigenmodes in a 3D waveguide in MEEP using EigenModeSource. To figure out which source band I need to pick, should I make something like the figure below? This was made by running MPB’s mode solver with ms.run (“all”), ms.run_te (“TE only”) and ms.run_tm (“TM only”) at a single k value across multiple bands. To figure out which band in the “all” curve corresponds to TE or TM, you check that they have the same omega value, correct? So in this case, bands 1 and 3 are TE and band 2 is TM, meaning that I pick those corresponding values for EMS’s eig_band option?
Also, I want to confirm that all k and omega values in MPB are entered as multiples of 2pi, correct? That is why the example above defines omega as 1/1.55 instead of 2pi/1.55 at line 78? And because of this, the value “kmag” in the mode solver output will always be 1/wavelength?
Thank you for your help.
P.S. The instruction manual at ReadTheDocs is very helpful, but I think it would be a good idea to mention ms.all_freqs on the “user interface” page, since that is a pretty useful tool.
Beta Was this translation helpful? Give feedback.
All reactions