Plasmonic effect of metal nanoparticles



I am trying to analyze the plasmonic effect with the Silicon substrate. regarding to this I need some suggestion:

  1. I am using an array of Ag nanoparticle over the both surface of the substrate. for this I have added a mesh override region. is it enough to add one mesh override region for the whole array?

  2. I also want to add an antireflection coating over the substrate and bellow the nanoparticle array. should I add a one more mesh override region for this?

  3. I used the mesh refinement method “staircase”. what would be the effect if i use conformal variant 0 or conformal variant 2? and which one would be the best for my simulation?

  4. At PML settings i used “profile:standard”. what would be the effect if i use the other options?

  5. While measuring the transmission and the total absorption, the output is not smooth enough. there is some spike like curve. I want to make the output smooth. but when I increase the frequency point (100 point) of the surface monitor, it takes a long time to perform the simulation. sometime FDTD stops working. With the present design it takes 1hr to complete the simulation. can you please tell me what is the way to make the output smooth?

Your opinion would be very helpful for me.
Thanks in advance.

E field profile of an array of nanoparticles

Hi Rokeya,

There are many good examples in the Knowledge Base that can help you get started with simulations of plasmonic devices; a good example, very close to the setup you described, is this plasmonic solar cell. Also, there is a thorough description of this type of simulations in this video.

I have some suggestions regarding your questions:

  1. It is a good idea to use a mesh override region for the nanoparticles; see for example the plasmonic solar cell. As shown in that example, the mesh override only covers the nanoparticle since we expect the fields to change rapidly with position near its surface. If the particles are close to each other it might make sense to have a mesh override that covers also the space in between them.
  2. For the anti-reflection coating it is also a good idea to use a mesh override region since this would typically be a very thin layer. However, I would suggest only refining the mesh in the direction normal to the surface (for example if the surface is on the XY plane, only override z mesh).
  3. The conformal mesh technology helps to simulate more accurately structure boundaries with a coarser mesh. It is a good idea to use it as described here. We suggest starting with the default “conformal variant 0”. Since your simulation includes metals you might want to try “conformal variant 1”; however, if you are not using the “conformal variant 0”, it is important to check convergence carefully. This would be something to do once you are comfortable with the overall results from your simulation and want to focus on the fine tuning.
  4. If you are using periodic boundary conditions for your simulation I suggest using the “steep angle” settings as explained in this posting: Choosing the most appropriate profile for PML boundary conditions
  5. If the spike in the transmission and absorption spectrum seems suspicious, I would suggest checking the simulation setup before increasing the number of frequency points. It is possible that the spike is due to some numerical artifact and this will not go away by increasing the number of frequency points. Some important things to check are for example: the distance from the structure to the PML, an early termination of the simulation, etc.

A related post you can look at is the following:

Hope this helps. If you want to share your simulation file I can make more specific suggestions.

Transmission for finite number of cells

Many thanks for your prompt and clear suggestions.
i have attached the bottom surface design.Ag_bottom.fsp (296.9 KB)
i want to measure transmission from the bottom monitor. My queries are:

  1. i have defined a mesh override region for Ag particle. but when i change the radius and period of the nanoparticles, is it necessary to reconfigure the mesh override region? with the change nanopartices get closer.
  2. as the nanoparticles are embedded within the dielectric layer, how should i use another mesh override for the layer?
  3. from the design my desired output is to have decreased transmission from the bottom monitor. but with the present design, transmission increases at the longer wavelength range. i want to reduce this transmission.
  4. if i use another nanoparticle shape such as: hemisphere or rectangle… what should be the specifications of the mesh override?
    can you explain these pls…


@ariful: You are welcome! Before answering your new questions, I just wanted to check one important thing that I noticed in your simulation file. As you have it now, the periodic array of spheres would look something like this:

Is this what you want? Is the gap between groups of 3x3 spheres intended? Or do you want to simulate a periodic array like the one below (without that gap)?


i want to simulate the last one, the periodic array (without gap). but the problem is that when i increase the radius or decrease the period they get closer…it looks like that they are overlapping.


@ariful: Yes, I noticed that the spheres are overlapping. If you want to avoid this it is necessary to set the diameter of the spheres to be larger than the period. Also, it is necessary to make the x and y span of the FDTD region to be the same as the period; that way you enclose only one unit cell of the structure and you get the periodic array without gaps. Please take a look at the modified simulation file Ag_bottom_modified.fsp (311.0 KB).

Regarding your earlier questions (see the modified file for these too):

  1. Since it seems like you are considering a situation where the spheres are close to each other, you might as well use a mesh override with the same x and y span as the FDTD region.
  2. I don’t think you need an additional mesh override for the SiO2 layer, at least initially.
  3. You might have to tune your design to achieve this, but before that I would suggest to make sure the setup is correct.
  4. Depending on the geometry of the nanoparticle it might be necessary to refine more or less the mesh. If there are small geometrical features you might need a finer mesh step. However, it is always a good idea to start with a coarse mesh to check your simulation setup; then you can start refining the mesh as needed.

Some additional observations:

  1. Since the spheres are embedded in SiO2, it is necessary to make sure you have set the right precedence for the overlapping materials. This can be done by using the mesh order or by moving the “Ag_spheres” down in the Objects Tree so that they appear after SiO2. Otherwise, the spheres won’t be simulated at all. It is always a good idea to use the index preview from an index monitor to check that the structure is what you expect; with this in mind I added the monitor “index_spheres” to your simulation.
  2. There is a small space between substrate and SiO2. Is this intended? A mesh override for this small gap is a good idea. I aligned the one you had with the gap.
  3. For the PML settings I think you should use “steep angle”. See this posting for details:

Hope this helps!


Many many thanks for your important suggestions.

  • As you have said, it is necessary to make the x and y span of the FDTD region to be the same as the period…if I place periodic array at the both surfaces, top and bottom and want to keep different period what would be the x and y span of FDTD region and mesh override region? For example, if the period of front array is 0.1um and the period of bottom array is 0.2um. what should be the x and y span then?
  • It would be helpful for me if you also explain the function and simulation criteria of “field time” monitor. Where should I place a field time monitor and what should be the specifications?


@ariful: You are welcome! Regarding the last two questions:

  • If the periods of the arrays on top and bottom are different, you need to find the unit cell that reproduces the overall periodicity. For example, if the top and bottom spheres look like in the image below, where the period of one array is double the period of the other, you can use the unit cell enclosed by the dashed line as the FDTD region.

  • The field time monitors provide you the E and H fields, and the Poynting vector as they evolve in time; you can also get the Fourier transform of the fields. This is explained in more detail here. One example of an application of the field time monitors is to check if fields have decayed enough by the end of the simulation; you can place a bunch of point field time monitors randomly in the FDTD region for this purpose.


Thanks for your explanation.
I’ll try it.


I am facing problem to define the unit cell in this filediff_spacing_sphere.fsp (302.8 KB)
As you said in your previous reply, I can’t find out a unit cell that reproduces the overall periodicity.
I want to keep a constant radius of 90nm at both surfaces. and the rear surface spacing is 50nm and front surface spacing is 175 nm.
Can you please tell me what should be the x span and y span of FDTD?


@ariful: I am not sure if by spacing you mean the period because in the file that you attached you used different values for the period. Assuming that the periods are 50 and 175 nm these would be some considerations for your simulation:

  1. The sphere radius for the rear surface is too large and will cause the spheres to overlap. I reduced the radius to 20nm.
  2. For finding the minimal unit cell you can simplify the ratio between the periods 50/175 = 2/7. This means that the minimal unit cell must include 2 front surface spheres and 7 rear surface spheres for each direction, x and y. You can see this in the attached simulation file: diff_spacing_sphere_modified.fsp (337.5 KB). Note that there are 7x7 grey spheres and 2x2 blue spheres in the FDTD region (the spheres on the edges count as half).

For convenience, in the attached file I included parameters for the number of spheres in the x and y directions (nx and ny) and adjusted the script accordingly.