Two-level one-electron model for saturable absorption?

Dear all,

I want to simulate a substrate uniformly embedded with GaAs quantum dots and would like to approximately consider the quantum dots as two-level systems with the saturable absorption effect. Now I am trying to find a material model in FDTD to simulate such a system and I found this “Two-level one-electron example” in “Available material models” under “Advanced Material models” page in Lumerical Knowledge Base as shown below.

But in simulations this model didn’t show any change in the system’s index of refraction for any different source intensity(I set omega0=2e15=input source frequency, gamma=1e11, gamma10=1e9, Nd= Ie21).

So could you please provide a more detailed formula to describe the index of refraction this model can give in terms of these input parameters? Also, can this model be used to simulate a saturable absorption material? If not, what model should I use? Thank you so much!

Hello @yuq1zhao1,

Thanks for posting and welcome to the community. This is an advanced material so please refer to this video for a thorough discussion on the model. In fact here they discuss a saturable absorber. Since you did not see any effect could it be that the .dll was not linked correctly? Is the source set-up to properly introduce non-linearity into the system?

It seems you have defined an electron energy level corresponding to E ~ 942nm; is this within you simulation bandwidth? Secondly you have set your damping coefficients very low, with $\tau \approx 100ps $; does your simulation run this long?

There are not simple analytic solutions for the change of index since you need to solve the rate equations which depends on a number of inputs. Simulation is the best way of extrating these dynamic quantities.

Best Regards,

Hi @trobertson ,

Thanks for your reply! The video also helps a lot, I can understand this model better now. But I still have several confusions.

  1. If I want such nonlinear material to reach steady-state, are there any suggestions on the source and FDTD settings? Is it correct that I should set the source pulse length longer than both the damping and transition time?

  2. It seems that I cannot use an index monitor to obtain the refractive index versus wavelength.(the index it shows is always just the background index) Could you please help me check what is going wrong? Or what else approach should I use to monitor the refractive index if the index monitor is not feasible?

  3. I followed the video you attached and checked the N1(normalized population of upper level), which is storage_Ex_2 of time monitor in my case. But no matter how I increase the input source amplitude or increase the pulse time, the N1 is always close to 0. Could you please help me find out why?

The .fsp file for questions 2&3 is attached below. Thank you so much!
two-level one electron model.fsp (283.9 KB)

Best,
Yuqi

Hello @yuq1zhao1,

Sorry for the delayed reply.I lost track of this thread.

  1. In time domain it is most efficient use a short pulse. For linear time invariant systems this is equivalent to looking at the impulse response, which immediately tells you about the steady state response. Nonlinear systems are much more complicated, and are not even guaranteed to have a steady-state response. Typically you should use a custom time signal to model your experimental pulse or just ensure that the wavelengths of interest are included in the default pulse, or use a pump-probe type set-up. This would be application specific and you should use physical insight and testing to define your pulse. In your case I think that it would be OK to look at a very long pulse for CW and ensure that the populations have stopped changing i.e. input energy is balanced by losses. Steady-state will obviously depend of the frequency and amplitude of the source.

  2. If you refer to the screenshot you posted it explains that only the linear/default material values are available in the index monitor.To look at the nonlinear advanced material parameters you should set these values up in your material model c++ file as storage fields.

  3. From what I can tell you have not set the object material or defined the plugin material in the time monitor. Also since you input is z polarized, should the storage value not be _Ez_2?

I hope this helps.

Best Regards,