Questions regarding varFDTD: source bandwidth

I am using varFDTD to simulate a bus waveguide coupled to a (half) ring. The idea is use power monitors located at one end of the half ring and one end of the bus waveguide and take that ratio to obtain the coupling coefficient.

I have some concerns about varFDTD. First, unlike in MODE FDE, it appears, I cannot increase the number of trial wavelengths used. In MODE, I could be able to have many test modes or many number of wavelengths in the set analysis, and do a frequency sweep, even track a selected desired mode. With varFDTD I can’t do any of these things; it also appears that the number of wavelengths sampled (when defining the source to start and stop at some arbitrary wavelengths) is 5 (when I export the data with python API and look at the monitor dict). Is it possible to increase this number? I am also confused in the varFDTD menu, I can select between “narrowband” and “broadband,” yet the source can still be defined from the arbitrary start and stop wavelengths…what does narrow band mean? How narrow? It is clear that selecting “broadband” uses those start and stop wavelengths as defined in the source settings, but I am still not sure…

Another related question. I think this has to do with your nicely written article but I guess I would like to know more about the mechanics of it…if I take a pulse and send it into a waveguide, dispersion will cause that pulse to broaden. In that case, how then does this method (as you describe here) of obtaining the impulse response allow you to basically model broadband behavior? It seems you are claiming that this method gives the same result as doing an experiment in which I am sending a different CW beam with a different frequency into the waveguide mode, repeating for each frequency, and recording fields. I don’t see how that is equivalent, again because of the pulse dispersion I mentioned. I also don’t see how, just by observing the monitors, you have a discrete number of frequency points even though you sent in continuous pulse…sorry if I am simply missing some basic concepts here.

Thanks!

Hi @dheydari,

Thank you for the questions.

First, unlike in MODE FDE, it appears, I cannot increase the number of trial wavelengths used. In MODE, I could be able to have many test modes or many number of wavelengths in the set analysis, and do a frequency sweep, even track a selected desired mode.

It is important to remember that varFDTD, unlike FDE, is a time domain simulation. That is why, in general for a varFDTD simulation, you do not have options to perform frequency sweeps. The time domain pulse contains a spectrum of frequencies, so you can obtain results for a range of frequencies with a single simulation using Fourier transforms.

This can be a bit confusing when you are using a mode source or mode monitors, because modes are defined in the frequency domain. The mode source defines the spatial distribution of the input pulse based on the mode profile at a given frequency (generally the centre frequency of the pulse). If you are using a broadband source, it may be a good idea to calculate the mode profile at multiple frequencies (see this post for more information: Mode source in broadband simulations).

With varFDTD I can’t do any of these things; it also appears that the number of wavelengths sampled (when defining the source to start and stop at some arbitrary wavelengths) is 5 (when I export the data with python API and look at the monitor dict). Is it possible to increase this number?

You can set the number of wavelengths/frequencies you would like to sample in your monitors by editing the monitors properties:


Or you can set the number for all monitors using the global monitor settings.

I am also confused in the varFDTD menu, I can select between “narrowband” and “broadband,” yet the source can still be defined from the arbitrary start and stop wavelengths…what does narrow band mean? How narrow? It is clear that selecting “broadband” uses those start and stop wavelengths as defined in the source settings, but I am still not sure…

You can choose between “standard” and “broadband” pulse types if you are defining the time domain of the pulse. I would recommend you set the frequency/wavelength range and let the source automatically choose between these two options. The “broadband” pulse type applies a chirp to the pulse, as discussed here:

You can also get more information about this under the “Frequency/Wavelength” tab of this page: Mode source.

if I take a pulse and send it into a waveguide, dispersion will cause that pulse to broaden. In that case, how then does this method (as you describe here) of obtaining the impulse response allow you to basically model broadband behavior? It seems you are claiming that this method gives the same result as doing an experiment in which I am sending a different CW beam with a different frequency into the waveguide mode, repeating for each frequency, and recording fields.

This has to do with the fundamental fact that (unless nonlinear materials are involved) optical systems are linear time-invariant (LTI) systems. A finite pulse in the time domain is a superposition of complex exponentials (continuous waves). This basically means that we are simultaneously injecting a spectrum of CW beams into our simulation with a single pulse. Due to the linearity of the system, and the fact that complex exponentials are eigenfunctions for LTI systems, we can extract results for all of these individual CW beams in a single simulation using Fourier transforms of the time domain signals.

I don’t see how that is equivalent, again because of the pulse dispersion I mentioned. I also don’t see how, just by observing the monitors, you have a discrete number of frequency points even though you sent in continuous pulse

As I mentioned above, we obtain the results for the individual frequencies using Fourier transforms of the time domain signals recorded by the monitors. To obtain results at more frequency points we just have to perform more Fourier transforms (also, note that time is discretized in an FDTD simulation, so it is technically a discrete pulse in the time domain as well).

I hope this helps. Let me know if you have any questions.

Thanks @kjohnson!
So, then what limits the maximum number of frequency points I can sample? I guess this depends on how you construct your discrete time input pulse…

Also, I am sweeping different gap distances between the ring and the bus in python code. I want to make sure that for each different gap distance, Lumerical selects the fundamental mode every time. I don’t know how to do this programatically; I can do this in the GUI by inspecting the mode at each simulation, but for a large sweep space this is very inconvenient. Is there a way I can “track [the] mode” even after running a new run with a different set of geometric parameters? I guess this is a similar issue to this.

So, then what limits the maximum number of frequency points I can sample?

I am not sure if there is a fundamental mathematical limit, but if there is a limit it should be way higher than the number of frequency points you would need for any practical purpose. Sampling more frequency points will increase your simulation time, however, so practically this will limit the number of frequency points you measure.

I want to make sure that for each different gap distance, Lumerical selects the fundamental mode every time. I don’t know how to do this programatically; I can do this in the GUI by inspecting the mode at each simulation, but for a large sweep space this is very inconvenient. Is there a way I can “track [the] mode” even after running a new run with a different set of geometric parameters?

If all you do between simulation is revert to layout mode, change the position of the ring, and then run the simulation again, the mode source should use the same input mode every time. As long as it starts with the fundamental mode selected, this shouldn’t change between simulations as the gap distance will not affect the modes in the bus waveguide.

Appreciate it!
One last thing. I am trying to really understand varFDTD so I made the following lms file to test out the monitors and sources and such. If you have a look at the monitor labelled “monitor” and you look at the Power tab, you will see what I believe to be nonsense. I just don’t see how launching into a simple, fundamental mode would distribute itself like that throughout the simulation. I was under the impression that looking at power for such a “birds-eye view” monitor is like looking at a long exposure picture…

I would appreciate some assistance here. I made sure that my source and my effective index mode looked fundamental, but still I get weird results.test_varfdtd.lms.zip (5.6 MB)

  1. Keep in the mind that the PML is part of the simulation region. You need to make sure that your structures extend through the PML boundaries, otherwise, they will form a Fabry-Perot cavity structure.
  2. In a varFDTD simulation, the polarization of the mode you are using as a source must match the polarization of the slab mode. You are using a TM mode, so your slab mode must also be a TM mode:

    Note in the above image that I had to extend the z span of your simulation, because this TM mode is poorly confined in the z direction.

Once you make these changes, these are the (much more reasonable) Poynting vector results:

image

Wonderful! What is strange to me though is that if we do TM slab (and TM source), as we see in your snapshot, the slab mode looks pretty ugly…and if we do TE slab (TE source), while the slab mode looks nice, the source mode has a kink at the interface, but still looks reasonably nice (“nice” here means fundamental looking, Gaussian like distribution). Why does the mode look like that? Is that kink a computational error that can be smoothed out?

Thanks!

The mode has those discontinuities due to the boundary conditions at the edges of the waveguide. The normal component of the electric field is not continuous at the interface between two materials with different permittivities, so the mode profile has discontinuities.

The slab modes are confined in the z direction. The TM slab mode primarily consists of the Ez component, so it is discontinuous. This is very obvious in this case because the waveguide thickness (200 nm) is small compared to the wavelength (~2600 nm), which means there is a strong field at the edges of the waveguide. The TE slab mode (primarily Ey) is continuous because Ey is transverse to the z direction.

However, the source modes are confined in the y direction, so the TM source mode is continuous and the TE source mode is discontinuous. So there is nothing wrong with these results, and these discontinuities are not computational errors.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.