Diverging simulations with oblique angles

Dear all,
I’ve validated the spectral absorbance (Fig. 7) of the following paper: https://www.osapublishing.org/oe/abstract.cfm?uri=oe-21-S6-A1078

The structure works good at the oblique angles below 75. However, I have a diverging 3D simulation at oblique angles: 75, 80 and 85

I tried almost everything (with the following link) but the problem is same https://kb.lumerical.com/layout_analysis_diverging_simulations.html

How I can solve this problem? validation.fsp (284.5 KB)

Hey @g-ghabdellatif,

Thanks for posting and welcome to the community. It is always interesting to see what applications people are interested in. I would refer you to the KB on the BFAST source. This source is fundamentally different than other sources in FDTD, so special care is required. In particular it is more numerically unstable than the FDTD solver, as discussed in the link I posted. It seems you have had success with it but divergence becomes an issue at stepper injection angles. The believe the issue is related to the PML, since I was able to get your simulation to converge at 75 degrees by using steep angle PML.


One other thing that you should consider is the bandwidth of your simulation. Typically we recommend an order of magnitude or less, and so the 200-4000nm is likely too broad. I looked at the material explorer and the multi coefficient fit for Tungsten was not very accurate.


To properly model some of the important interactions the paper mentions, such plasmon-polariton or band-gap resonance, you should try and improve the fit. Reducing fit tolerance, and increasing number of coefficients will help. Also this would be easier if you split the bandwidth in two simulations.


Check out this other post for a good discussion on the BFAST source.

Thank you @ trobertson for your help. I take my time to get proper results but the simulation still doesn’t work especially at 80 and 85 degrees. I’ve changed “fit tolerance” and "number coefficient"as mentioned above, bfast dt multiplier, split the bandwidth as you recommended, increasing number of PML layers in steep angle tab up to 64, increasing the ratio alpha / sigma in a PML costume tab for more stable.

I’ve changed the bfast source to Plane wave and increasing mesh accuracy up to 8.

I also ask how I can adjust the reflection coefficient of PML layers?

Could you help me to get the proper results?

Thank you in advance

Hey @g-ghabdellatif,

Are you using steep angle PML? Could you share your diverging project file?


Hello @g-ghabdellatif,

Thank you for sharing your files privately. I took a look at your simulation, and the log file is throwing flags regarding the material fit. The log file is a text file located in the same folder as the simulation. It is helpful for debugging diverging simulations.

Meshing complete in 0.078125 seconds of CPU time
Numerical discretization of material 'W (Tungsten) - Palik Copy 1' might be unstable! Max. imaginary part of epsilon is 0.0016891!
Numerical discretization of material 'SiO2 (Glass) - Palik Copy 1' might be unstable! Max. imaginary part of epsilon is 0.000715378!

I believe that the material instability is a result of trying to fit the material for very broadband 0.2-4$ \mu m$. I was able to get the simulation to converge by limiting the bandwidth from 0.2-0.8$ \mu m$. Maybe split this bandwidth into a handful of simulations?

Let me know if you have any further questions.