How to simulate the temperature in plasmonic nanoparticles


Hi all,

I’m trying to simulate the temperature profile of an gold NP in air. The power absorption was generated with FDTD and imported into DEVICE. It’s my first time using DEVICE. I followed the tutorial for Photothermal Heating and the tutorial Cooling and Heating. However, the temperature profile generated does not makes any sense to me. I don`t know if I am doing something wrong with the interfaces or if I have to add boundary conditions. I have attached the simulation and I would be very grateful if anyone gives some advice and help with what is wrong in my simulation. Thank you!!

The simulation:
TSp.ldev (5.8 MB)

And the power absorption I used:
Pabs_NP.mat (1.2 MB)

Thanks again

Best regards,



Hi Gabriel,

I am not too familiar with the heat solver, but I had a look at your file. The simulation set up seems ok, but, when you load the data from the mat file, you need to select the attribute Pabs:

Then, it seems the simulation diverges so I am wondering if there’s a mistake in the input power that was set in the FDTD simulation (when Pabs is exported). I could get the simulation working by reducing the scale factor but it doesn’t make sense as I don’t know the input power of the illumination.

Other users with more experience of DEVICE HT may complete/correct my answers!



Thank you!

I can upload the FDTD simulation because maybe the error is there but I did not find it.




I think it would be helpful if you could upload the FDTD simulation. Also, in order to get some meaningful result that could be compared to measurement, we would need to know the specifications of the illumination. For instance, in the Photothermal Heating in Plasmonic Nanostructures example, we consider a 1mW beam with a FWHM of 19.5 micron.


I think that is actually a problem I have, the specifications of the illumination. How can I know the specifications, and also, how can I modify them?

sphere.fsp (2.5 MB)


Changing the power is quite easy, you just need to edit the properties of the pabs_adv analysis group, and change the value of “input_power”:

The power defined here comes from the example I mentioned. It was calculated by considering the 1mW beam is illuminating 2583 antennae (1/2583 mW = 3.87147e-07 W).
In your case, if you keep the same properties (beam radius, power), you can calculate the fraction of power that is illuminating the particle.


Thank you very much for your time.

If you refer to the input power I checked your advise but it only gives you a escalating factor. Keeping the same factor of the tutorial gives a total power absorption in the order of 10e-8 for the sphere, which still does not explains the problem in the DEVICE simulation. You also talked about FWHM but that is not included in the Power Absorption (advanced method) monitor. Do you refer to the light source, maybe a Gaussian beam?

Regarding the FDTD, I am confident that the monitor is good. However, I am not sure if I am using the right light source. I was using a TFSF which for power absorption maybe it is wrong. I uploaded it in the last comment so a look can shed light on the problem.

Additionally, I do not know DEVICE well so I think there has to be some errors here. I would appreciate any help regarding what do I need to know if I simulate photothermal heating in fluids.




In the example in the Knowledge Base, we consider a periodic distribution of nano-antennae, so we use a plane wave source with periodic boundary condition. We use the illumination information to determine how many antennae are illuminated by the beam, that allows us to calculate the power received by each antenna. The actual temperature elevation will depend on the illumination specifications.

In your case, the choice of the source depends on what you would like to model. If you illuminate the particle with a large beam, using a plane wave (or a TFSF, as it allows a finite size plane wave source) makes sense. One point regarding the TFSF source, it works better when using a uniform mesh in the directions normal to the direction of propagation.

Regarding the thermal simulation, it is a bit out of my scope, so I will let other add their comments.


If I want to model a particle which is bean illuminated with a laser beam of 1mW/um^2 (um is for micrometer) then the plane wave is still good? If I want to model a laser, which source is the best option?

This means that I cannot have a mesh override in that direction?

Thank you!




Hi @g.w.castellanosgonza, my apologies for the long wait. I have looked at your DEVICE file and here are my observations:

  1. The temperature of your nanoparticle is so high that the solver is failing to reach a self-consistent solution. I saw that in your file you have increased the “max. update” value to 1000 K. However this is still not enough. When I increased the “max. update” value to 10,000 K he simulation converges.

  2. I also noticed that the sphere does not look like a sphere (the mesh on the surface is too coarse). You can fix this by enabling the “override deflection tolerance” option. You can learn about this option in this KB page under the mesh tab:

Regarding the FDTD simulation I think @gbaethge already has it covered. If you still have any more questions just let us know.


Hi Ahsan,

Thank you! That helped a lot. The reason for the temperature to be so high, is it in the Pabs.mat file I am using? I think the temperature should be of only a few 10 K, or in the order of 100 K maybe but 10,000K?

I have a question regarding boundary conditions: if I have a metal object (for example a sphere) fully included in the simulation region (no solid:solver boundaries), and immersed in a fluid such as water, and the heat loss is only convective, are the interface boundary conditions enough? Or do I need to specify the other boundary conditions?




I think the reason the temperature is too high is because you are injecting a considerable amount of power into the nanoparticle. However, the only way heat is going out of the particle is through convection which is a very inefficient process. So you should expect the temperature to be quite high. However, one thing that just came to me is that at such high temperatures, radiation would be quite significant too so you should enable the radiation option in the interface property as well. This will probably reduce the temperature on the nanoparticle to some extent.

The boundary condition at the interface will be enough. However, as I’ve mentioned above, you might want to enable the radiation option along with the convection boundary condition.


Ok, the power is so high then because of the FDTD simulation. Then I would need to know how to control the power injected by the source. What are the best options for this? Plane wave and gaussian beam?

Another question coming to my mind: How does the import heat source work in DEVICE? It assigns the power geometrically to points of the space? Or just as point source?

Thanks a lot for your answers Ahsan, they are helping me a lot.




As @gbaethge mentioned in his post above, the easiest way for you to control the input power is to set the value of the variable “input power” in the power absorbed analysis group to the value you want. Since the optical system is linear, you can set this value to anything you want and get the absorbed power for that input.

A second option would be to set this value to 1 (Watt). The in the HEAT simulation when you import the data into an import heat source, the object will give you an option to scale the imported data using the “scale factor” variable.

As for the choice between plane wave (TFSF source) or Gaussian beam I agree with @gbaethge that it will depend on which source represents your physical system more accurately. With a nanoparticle this small I would guess that a plane wave or TFSF source should be ideal.

In your current FDTD file you have the input power set to ~4e-7 W which translates to an input intensity of about 1e6 W/m^2. This seems to be quite a large number and most likely that is why the temperature is going up too high in the thermal simulation.

The import heat source interpolates the values from the imported data onto every point of the finite element mesh that falls inside the span of the imported data. In your case, all mesh points inside the nanoparticle will get a finite value for imported heat which gets calculated by interpolation based on the data you have imported from FDTD.


Hi Ahsan,

Thanks a lot for the discussion, tomorrow I’ll work on integrating them to simulate again the temperature. I think now I understand better about DEVICE. Hope the simulations tomorrow work fine. Can I let you know if I have more questions?




Good luck with your simulation and yes if you have any questions going forward do post them in the forum so that other users like me can share their feedback/suggestions.


Hi Ahsan,

I have a couple of questions: when I define the material interface, for the heat flux and convection (constant) models I have to fill in a number. However, it seems to me that this number should not be arbitrary and would depend on the power absorbed for the heat flux and the material properties for the convection

That makes ask the second question: how does the other natural convection models work? Thanks!




Hi @g.w.castellanosgonza, you are right, the value of the convection heat transfer coefficient, h depends on the property of the fluid. You can find detailed information about the different convection models in this KB page: Material interface (under the “Thermal Interface” section).

The “heat flux” model is there (in my opinion) for the rare case where you know exactly how much heat is escaping the system (into the environment) and you want to model that.


Regarding convection though, which of the options is better? Because (except for the constant and forced options), I don’t see which one would be most suitable, since the options consider only flat geometries and in my simulation the particle could have an arbitrary shape (in this case a sphere).


@aalam in the last days I have been working in these simulations we discussed last time.

Some questions came while working on them. Particularly, regarding the steady-state solution: if I have a simulation in which the simulation is a 3D volume with only solid objects: water (modelling it as conduction) and a metal nanoparticle in the center. The ambient temperature temperature of water is 300 K. Which boundaries should I define: solver boundary or solid:solver boundary?

In addition, does the extension of the simulation region affects the final result? In my simulations this affects the result and I am not sure why. I attached one of the simulations without the Pabs file because otherwise it would be too heavy (I could send you the whole simulation by email). I would appreciate any help in this issue.

Intensity_50nm_8.ldev (6.2 MB)

Thanks a lot!

Best regards,