Question on the Mode Overlap function
See original GitHub issueHello,
I am a student researcher trying to use your software to design dielectric waveguides. I was hoping someone could please share some insight on the mode overlap function, as I think I may be using it incorrectly. I understand the mode overlap to be the coupling efficiency.
Specifically, I had a concern when simulating a straight waveguide. It is clear that the mode propagates across the waveguide, but the dB10 value of the mode overlap is about -50dB. This value practically stays the same, even as I move the probe (output port) closer to the source. I am using the functions defined in the example notebooks, (e.g., 02_Invdes_intro.ipynb).
The design:
The efficiency as I move the probe closer to the source:
The mode overlap function:
def mode_overlap(E1, E2):
"""Defines an overlap integral between the simulated field and desired field
"""
return npa.abs(npa.sum(npa.conj(E1)*E2))
What is wrong?
Thanks, Ricardo Sendrea
Issue Analytics
- State:
- Created 2 years ago
- Comments:13 (1 by maintainers)
Top GitHub Comments
Yeah this is the best way to do it. You can see from the field plot that the source is not perfectly injected into the waveguide. By normalizing using the amplitude of the waveguide mode right after the source, you’re now really looking at what you want: the power transmission of that mode between the two measurement points.
The goal of the study is to observe the change of transmission (power) of a design in a frequency sweep, using the same source (fundamental mode source). I see now, that as I insert a source to the design, a mode is calculated at each iteration, i.e., the excited mode changes, as shown in my previous post.
To set this up properly, I look to use the FDTD tool offered by Ceviche. In this scenario, I can define a Gaussian source based on the same calculated eigenmode from the desired frequency and then look at the spectral power. My problem is how would I do this correctly using Ceviche?
I went ahead and put together a solution based on various examples from your packages, including using the Angler libraries. Could someone point me in the right direction, and share if I am setting this up properly?
Thanks! I appreciate your help!