Troubleshooting Ripple Effect and Peak Shifts in Transmission Simulation

Hello, all.

I am investigating the optical behavior of Au nanorods in solution, and I am finding it difficult to make sense of my transmission spectrum results.

Here is my simulation file:
Au_rod_kC2_water_mesh1nm_0 deg_Transmittance_r6_L30_orient0deg.fsp (314.7 KB)

Here is my transmission spectrum result:

Here is my transmission spectrum result, but converted to absorbance (A(λ) = -log10(-T(λ))):

Here are the experimental results which I am trying to get my simulation results to match (my simulation models a nanorod with dimensions matching those for experimental spectrum 3). These results are taken from Abidi et al. J. Phys. Chem. C 2010, 114, 14794-14803. DOI: 10.1021/jp104819c.

My spectra clearly look very different from those of Abidi et al. Large ripples obscure my peaks, and my long-wavelength peaks are shifted too far to the right. I have two questions.

  1. What could be causing the ripple-like features in my T spectrum (and how could I remove them)?

  2. Does anyone have any suggestions for why my peak positions are off? I’m not looking for someone to solve my problem for me - I’m looking to learn from whatever mistakes I’ve made here so I don’t make them again in future simulations. I have tried shrinking the mesh cell size, but that has not made much difference.

I understand that I could somewhat bypass this problem by using Power Absorbed Monitors, but my project calls for me specifically collect transmission data, so I would prefer to convert T to Absorbance, rather than measuring Absorbance directly.

Thanks for all your help.

I took a look into the paper (Abidi et al.) and your simulation, and I found a few discrepancies between the two setups:

  1. In Abidi et al., the experiment was done with the gold nanorods in a micellar solution of different compositions, while yours seem to have been done in, possibly, water. I know this, because the background index set in the FDTD simulation object is 1.33.
  2. The graph from the paper that you have attached and are trying to replicate are absorbance spectra of gold nanorods in micellar solutions with different amounts of Ag+ ion.

I believe these differences have a significant bearing on the outcome of your simulation.

Thank you, @1130344. I agree - there is definitely a discrepancy between my background index and the experimental RI which is caused by the presence of micelles and Ag complexes in the experimental samples. This is throwing off my peak position and width, and I will work to account for it.

However, I still don’t understand why my absorbance spectrum has large ripple-like features. Is it an issue with my simulation? Am I calculating absorbance incorrectly? Both?

Thanks again for your help.

Hi @jds34,

Ripples typically appear when the fields haven’t decayed enough by the end of the simulation. As we use a Fourier transform to get results in the frequency domain from the time domain result, if the fields are not weak enough at the end of the simulation (ideally we would like them to be 0), it creates artifacts in the results.

This is monitored by the auto shutoff level that represent the fraction of energy left in the simulation volume. When the level goes below a threshold (by default, it is 1e-5), the simulation is stopped.
Sometimes, the simulation time (default is 1000fs) is not enough to reach the threshold, and sometimes, the threshold is too high. The first case can be checked in the log file of the simulation. If the simulation runs up to 100% and the auto shut off is still high, you need to increase the simulation time (in the FDTD properties, “General” tab).


For the second case, it’s more tricky to detect. You can change the “auto shutoff min” in the “Advanced options” tab.

In your simulation, I think the second case is the one. Setting the auto shutoff min to 1e-8 reduces the ripples a lot.

Additionally, I noted some possible problems in the simulation:

  • FDTD size: considering the wavelength range (300nm to 1200nm), the simulation region seems quite small. You need to make sure it is big enough so the PML do not affect the evanescent fields. Typically, half the largest wavelength between the object and the PML is a good starting point, but some testing can be done to see how it affect the results.
  • Transmission: using the transmission through the monitors is not necessarily a good idea when using a TFSF source. The transmission is calculated by normalizing the power through the monitor by the source power.
    In the case of the TFSF, the power injected depends on the dimensions of the source. This is discussed in this KB page. For that reason, we often prefer to use the cross section instead, where we normalize the power to the source intensity.

Finally, to add to @1130344’s comments, the material properties (data and fit) used for gold will also affect the results. We have the data from 3 different sources, so it might be useful to compare the results for each.

1 Like

Thanks for your help, @gbaethge and my apologies for the very long delay in responding. Technical issues with our software and other projects kept me from continuing work on this project until now.

I tried adjusting the simulation size and autoshutoff level, and I received some promising results.

Here’s a comparison of the Transmission spectra yielded by the original simulation I shared above (“control”), the same simulation with the autoshutoff level decreased to 1e-8, and the same simulation with the size of the simulation increased (to 1200nm and 1500 nm). These size-increase trials also have the autoshutoff-level decreased to 1e-8.

Decreasing the autoshutoff minimum definitely eliminates the ripples, although increasing the size of the simulation does not seem to have much effect. In this close-up view of the spectra, the autoshutoff-decrease and size-increase trials overlap each other almost perfectly:

Both changes have only a minor impact on peak intensity, and essentially no impact on peak position:

It looks like your suggestions have totally resolved the ripple issue - thank you!

However, I would like to clarify your suggestion regarding my use of the transmission analysis box. Do you think I should keep my source as TFSF and measure cross sectional spectra (which I would then have to convert into transmittance), or do you think that I should switch to a source that would better suit my use of the transmission analysis box?

I should note that my goals sound similar to those discussed in @aminam’s post from this past April. I am looking to simulate the optical response of nanorods of different dimensions and then convert those spectra into RGB values. Power transmittance spectra are conventionally used for these calculations, which is why I want to measure power transmitted. My immediate goal is to ensure that my simulation setup accurately reproduces experimental results.

My material properties definitely play some role in the discrepancy between my results and Abidi et al.'s, but I want to make sure that I’m measuring things correctly before I try to adjust my material properties.

Thanks again for your help.

Hi @jds34,

No worries! Glad the ripple issue is solved!

As my colleague mentioned in the discussion you found, the TFSF is usually used for scattering simulation as it allows to record the scattered field only. In such application, the cross-section is the quantity of interest.
As discussed in the link I posted, the power injected by the TFSF is proportional to its size and, on top of that, the power flux through a box monitor can show some weird results (like a transmission greater than 1).

At the end, the choice of source and result depends on what is to be simulated and, if needed, what the simulation will be compared to. For example, you can use the absorption per unit volume.
If you are dealing with periodic structure, then the transmission (using plane wave as source) will be ok.
If you want to reproduce experimental results, then your should try and reproduce the illumination (note, not the source spectrum, but the geometry, etc.).

I hope this will help!