Diverging simulation in nonlinear simulation of multilayer structure


I’m calculating transmission in nonlinear materials whose permittivity varies with respect to input intensity.
I hope to see the transmission variation with respect to input intensity. However, the simulation is diverged.
I don’t know why it is diverged. I even changed dt to 0.1, but it doesn’t work.

source.lsf (563 Bytes)
bistability_TM_increaing.lsf (6.2 KB)
14nm_14nm_430nm_180M.fsp (102.1 KB)

I attached my source code.
Please review this code.
Thank you

I solved problems.

Thank you

Hi @kimmh1028,

Great, I am glad you were able to solve the problem. I just wanted to point out a couple of things I found when testing your simulation file and scripts:

  1. Do you need to change the intensity of the field during the simulation as it was done in the optical bistability example? In the source.lsf script file you don’t change the amplitude of the source in time, so you are essentially simulating a CW source. If you don’t need to change the intensity during the simulation, I wouldn’t recommend using the custom source. You can use a regular plane wave source instead.
  2. I would also suggest starting with the linear simulation first, i.e. using the base material (“Ag”) without the chi2/chi3 coefficients. The advantage of doing this first is that you can find the analytical results for transmission and reflection using the stackrt command and validate your simulation results.
  3. I did a couple of tests for the linear simulation in 14nm_14nm_430nm_180M_modFG.fsp (142.8 KB) and I noticed that the results are very sensitive to the mesh. To speed up the tests, note that I reduced the x span of the simulation region to be two cells; this is possible here because your simulation is essentially 1D. I also made the mesh step dx and dy to be the same to avoid a huge aspect ratio of the mesh cells, which should be avoided if possible.
  4. After refining the mesh in the multilayer structure considerably, I was able to get close to the analytical results as shown in the plot below. You can use the script check_linear_with_stackrt.lsf (704 Bytes) to compare the simulation results with those from stackrt.

Hope this helps!