Simulating the far-field radiation pattern of third harmonic generation


Instead of spectrum (fft of the time signal), I wounder if it is possible to simulate the third harmonic generation radiation pattern of gold nanostructure, or field distribution at THG wavelength? If it can be simulated, how should I set the simulation setup?

Thank you for your time.

I believe that you should be able to get the far field pattern at the third harmonic frequency by using a frequency domain power or profile monitor similarly to for linear simulations. However, you would need still need to use the “nonorm” normalization state similarly to the harmonic generation simulation example here:

You would also need to set up the monitor to record data at the specified harmonic frequency. There’s a description about how to do this under the “recording data outside the source spectrum” section on this page:

The above page has other additional setup tips for nonlinear simulations too. Let me know if you’re able to get the result you’re looking for!


Thank you for your reply. I have followed all the instructions from the given websites in order to perform the THG simulation.

It works well when I performed the simulation using simple nonlinear nanostructure with 2D simulation region. However, after I added a substrate underneath the nonlinear material and changed the simulation region into 3D, the simulation didn’t work out. The electric field didn’t converge so that the spectrum didn’t show any fundamental or THG signal. I have no idea how to improve the simulation setup further.

The 2D and 3D simulation files are shown as the following:



Could you please help me check the problems and give me some advises? Thank you!

1 Like

I didn’t get a chance to fully test this today, but I think the problem could be that there is some small amount of high frequency signal being injected, and a minimum mesh step size is required for this light to propagate, so it is being trapped in the fine mesh region of the mesh override region. This problem could be avoided by having less difference in the mesh step sizes in the simulation region either by making the mesh outside the mesh override region smaller or having a coarser mesh in the mesh override region.

You could test if this is the problem by first trying a uniform mesh everywhere. If you’re still seeing the problem, please reply and let me know and I will look into it further.


I’m trying to do something similar for SHG and have managed to get my 3D simulations to converge and the spectrum monitor shows a peak in the SHG range. I’m simulating a metallic rod being excited by a plane wave and my problem is that the nonlinear fields are asymmetric (in intensity) at the rod apexes, which doesn’t make sense as the source, rod and mesh are all centered at the same point. Could someone give me a hand?


I would expect the results to be symmetric. Could you attach a copy of your file?

Sure, here you go: NLR130x50_r25_Au_PW50fs_400-800nm_mesh4_gb1.fsp (273.6 KB)

I did some testing of the settings by increasing the monitor sampling rate, using the Chi3/Chi2 material model which Chi3 set to 0 instead of using the Chi2 material model, and these did not make any difference.

I also tried using a finer mesh which did affect the results. Although the results look a bit more even with a finer mesh over the nonlinear structure, I’m still unsure as to what the source of the asymmetry is. I may ask my colleagues if they have any input.

Thank you for your efforts and please let me know what your colleagues have to say about this issue.

Edit: I’ve found that increasing the simulation mesh accuracy (from 3 to 8 in this case) greatly improves the symmetry of the second harmonic fields, though they’re still not completely symmetric. Could it be that this increase in mesh accuracy reserves more memory for the fields at each cell? There are a finite number of bits reserved for recording the fields and as the nonlinear fields have extremely low amplitudes compared to the incident fields, perhaps perhaps reserving more memory is causing fewer rounding errors in the nonlinear fields.

I don’t believe that there would be an increase in the memory - I believe that the numbers are always double precision in the simulation. However, it may be something related to rounding or interpolation of the fields. This issue has been reported to the developers to look into further, but hopefully in the meantime, increasing the mesh accuracy is a sufficient workaround.

I’ve attempted to further reduce the mesh size but unfortunately the asymmetry is enough that the simulations are currently useless for my needs. Has there been any news from the developers?

There hasn’t been any fix yet, but you can let me know your email address (either by sending an email about this to, or sending me a private message through the KX) and I can make a note that you should be emailed once the issue has been investigated or resolved. Thanks for your patience with this!