Transient Heat Simulation Using FDTD Pabs as Import Heat Source

HMarksHMarks Member Posts: 1

Hi,

I am trying to use Lumerical FDTD alongside Lumerical HEAT to simulate the photothermal heating and cooling of a nanocylinder. Following from this example in plasmonic nanostructures (Photothermal heating in plasmonic nanostructures – Lumerical Support), I have first simulated a single nanocylinder on a substrate in FDTD with a TFSF laser source to determine the absorbed power(Pabs) (using the Pabs adv analysis group) within the cylinder. As in the example, I have been able to plot the spatial distribution of Pabs within the cylinder as a result of the laser.

My problem now is within HEAT, as I am struggling to adapt the example simulation to allow for transient heat simulations. Currently, I am able to use the FDTD Pabs data as the imported heat source, and I can simulate the temperature distribution as a result of this imported heat source, but only in a steady state situation. When I try to use the transient heat solver I am told there is an error; from my understanding, the only way to use the transient heat solver is to set a temperature of power boundary condition, choose 'bc mode: transient', and set a changing temp or power in timesteps (as detailed here: Transient heat flow in a graphene-coated glass – Lumerical Support).

In my situation, the aim is to import the Pabs data within the cylinder as a pulsed heat source, and to simulate the heating/cooling that occurs in time after the heat source, i.e., to import the Pabs data as a single source of energy rather than a rate/power. Is it possible to import the heat source as an energy and then plot the time-dependent heating and cooling as a result of this pulsed energy gain? I can see from the steady-state simulation the rough temperature that my nanocylinder should reach, so I can possibly make a crude estimate of the initial temperature and see how this changes in time through transfer to the substrate etc, but I am unsure how to go about this as I do not want to set my own transient temperature/power boundary condition.

Any help or advice is greatly appreciated! Thanks :)

Answers

  • kghaffarikghaffari Posts: 80Ansys Employee

    Hi,

    Thanks for reaching out. Great question. For transient HEAT simulation it is also possible to apply the transient change to the imported HEAT source. For this you would need to use the settings available in the transient tab of the HEAT solver. The shutter function (e.g. pulse on) will be applied to the heat source imported from the FDTD simulation. This should allow you to model the transient thermal effects of a pulse incident light. In addition to the shutter settings, you would need to adjust the min, max time step settings such that the rise of temperature as a function time can be seen in the results. You can start with a step function to find the best settings easier, and then switch to pulse.

    Let us know if you have any questions as you make progress.

    Best regards 

  • HMarksHMarks Posts: 3Member

    Hi,

    Thanks very much for your help! I have managed to perform a transient simulation now, though there are a number of further questions I now have! I have managed to simulate the cooling as a result of the imported pulsed heat source, but the results are not quite what I had expected and I am slightly confused about some technical details.

    First, I have been trying to understand the role of the pulselength in my simulation. By using the shutter function I have performed the simulation with a range of t_off times (250fs < t_off < 1e+6 fs). Regardless of the pulse duration, my results appear to be the same (the maximum temperature reached by my nanocylinder, Tmax = 310K; the cooling time for the nanocylinder to reach the temperature of the substrate, t_cooling = 150ns). So, it seems to be that the duration of the pulsed heat source is not impacting the simulation in any way? Is this the case? If so, how can the pulselength be taken into consideration? If this is not the case, what might I be doing wrong that is causing my simulations to all reach the same temperature and therefore require the same cooling time?

    Another issue I am having difficulty understanding is the way in which the power should be scaled when transferring data from FDTD to HEAT. Following from the photothermal heating tutorial (Photothermal heating in plasmonic nanostructures – Lumerical Support), in which the input power is scaled to be 1mW for the entire array which covers 2583 antennae (they scale by 1e-3/2583), I am trying to understand how to scale for my simulation in which there is only one nanocylinder completely covered by the beam. The beam radius is 5 micron, and the nanocylinder radius is 300nm, so I thought maybe I could normalise by finding power density as a ratio of the beam and nanocylinder radius. Not sure if this makes any sense, but I cannot see how else to scale the input power of my simulation as I am not using a unit cell/array setup as in the example.

    The final question I had was regarding the transient setup. The only way I can make my simulation run is by setting a transient temperature boundary with timesteps similar to what I expect in my simulation. As I don't want the temperature boundary to change, this seems odd to me as I am adding timesteps with the same temperature condition. Is this required to allow a transient simulation to be performed?

    Thanks in advance for any help!

    Best wishes,

    Hollie

  • kghaffarikghaffari Posts: 80Ansys Employee

    Hi Hollie,

    Again, very good questions.

    Here, the optical simulation the data is exported from, is run in steady-state. There should be a rise time in HEAT (indicating the thermal response of the system), however past a certain pulse width, the maximum temperature increase will be the same; since the maximum absorption is set through the imported data in FDTD. To replicate the behavior of increased time leading to increased temperature, using the shutter tslew value (in the transient settings) can be helpful. The absorption will be increased gradually and in the time span specified in this field; until reaching the maximum absorption that is followed by the maximum temperature increase.

    For scaling factor, I agree with your suggested approach. You can determine the ratio of the power absorbed in the cylinder and set the scaling factor accordingly, while considering the incident beam’s power (e.g. 1mW).

    I understand your point about the boundary condition. Having at least two time steps is necessary when running the transient simulation. As you mentioned, here the steps will have the same temperature. Setting the time steps can be helpful in specifying simulation time. The simulation will run until the largest time set in the simulation; either in the boundary or in the transient tab settings.

    All the best,

    Khashayar

  • HMarksHMarks Posts: 3Member

    Hi Khashayar,

    Thanks for your quick response to those questions! I am definitely getting closer to completing my simulation, but I have one major issue with the scaling factor which is preventing me from doing so at the moment, and a quick clarification on your previous response.

    • My main issue at the moment relates to the scaling factor being used for the input_power parameter in the Pabs analysis group in FDTD. As I proposed to you, I am scaling by using the ratio of the cylinder size (r_cylinder = 300nm)and the beam size (r_beam = 5micron), and correcting such that the total beam power is 150mW.

    Initially, this gave me an input power of 3.6e-6:

    1mW * r_cylinder^2 / r_beam^2 = 1e-3 * 300^2 * 1/5000^2 = 3.6e-6

    And this is then multiplied by a scale factor of 150 when used as the import heat source in HEAT, to scale the input of the laser to 150mW.

    This factor allows the simulation to run and the Pabs plots look reasonable, but I realised that this does not take into account the repetition rate of the laser, and so is not using the correct power value for one pulse, but instead uses the average power of the laser for the duration of one pulse of 250fs. So I tried to take this into account:

    The laser I am trying to simulate has an average power of 150mW (i.e. the power rating if it were a continuous wave laser). The repetition rate is 25.19MHz, and the pulselength is 250fs. In order to ensure that FDTD is using the peak power (i.e. the power per pulse), rather than the CW power (= average power = 150mW), I included another factor to adjust the previous scale factor of 3.6e-6:

    pulselength = delta_t = 250fs = 250e-15s (this is the time per pulse)

    T = 1/rep rate = 1/25.19e6 = 40ns = 40e-9s (this is the time per pulse if the wave was continuous)

    I know the energy per pulse can be found by dividing the average power (P_cw = 150mW), by the repetition rate (=25.19MHz):

    Epulse = P_cw / rep rate = 150e-3 / 25.19e6 = 6nJ

    Therefore each pulse should carry 6nJ of energy, in one pulselength (= delta_t = 250fs), so I can then find the power per pulse (i.e. peak power of laser):

    P_peak = Epulse/pulselength = 6e-9/250e-250 = 24000 W = 24kW.

    So I find that the peak power per pulse is 24kW, and in one pulselength of 250fs, this should transfer 6nJ of energy, as expected.

    When I put this factor into my simulation (i.e. input_power = 24kW * r_cylinder^2/r_beam^2), I find that the Pabs plots reach very high values (~10^21), which then cause the HEAT simulation to diverge and fail to run. I am expecting Pabs values of ~10^14, based on analytical calculations of the heat absorbed, so the Pabs values reached when scaling for the peak power of the laser do not seem reasonable, but I cannot intuitively see any other way to scale the power.

    The peak power of my laser at the repetition rate I am using is 24kW, and so it seems sensible to use this value as the input power of my Pabs analysis; this power should then be used for a pulse of 250fs, as set in the source object, giving a total energy transfer of 6nJ. I am wondering if I am missing something here, as the Pabs values seem way too high. Have I misunderstood the different parameters? Is it correct to be using the peak power of the laser? And is it right to assume that the pulselength is being used in this way? Perhaps there is another issue going on with my source (e.g. Gaussian beam waist being much larger than the simulation region?) that might be causing Pabs to be much larger than expected. I am wondering if an issue like that may be the reason that the Pabs values are shooting up, or if it is more likely to be an issue with the scaling?


    • And briefly, relating to the question of pulselength, I also wondered if I could clarify with you my understanding is correct. From your previous response:

    Here, the optical simulation the data is exported from, is run in steady-state. There should be a rise time in HEAT (indicating the thermal response of the system), however past a certain pulse width, the maximum temperature increase will be the same; since the maximum absorption is set through the imported data in FDTD. To replicate the behavior of increased time leading to increased temperature, using the shutter tslew value (in the transient settings) can be helpful. The absorption will be increased gradually and in the time span specified in this field; until reaching the maximum absorption that is followed by the maximum temperature increase.

    I have understood that the pulselength I set in FDTD is the ultimate pulselength being used in my simulations (i.e. the pulselength in HEAT is arbitrary). I gather this because, as you explain, the maximum absorption is set in FDTD in steady-state, from the pulselength I set for the source. In this way, the maximum absorption as given by the FDTD results is for the given pulselength (in my case, 250fs), and so the maximum absorption as reached in HEAT, and therefore the maximum temperature that my cylinder reaches in HEAT, is determined by the pulselength in FDTD, not HEAT. I hope I have understood this correctly?


    Thanks in advance for any advice you may have on these issues!

    Best,

    Hollie

  • kghaffarikghaffari Posts: 80Ansys Employee

    Hi Hollie,

    I understand the approach you’ve taken in your calculations. Based on the information you provided on pulse length, average power, and frequency the calculated input power of ~24KW seems correct to me. I am not familiar with the analytical calculations you do for Pabs, so I can’t comment whether the value 10^21 is too high; one note that this value has a unit of W/m3 for 3D and W/m2 for 2D simulations.

    To address the convergence issue in HEAT, you can try modifying the settings in the advanced tab of the solver (e.g. increasing iteration limit and max update temperature). In any case, if the convergence issue is resolved you will still end up obtaining very high temperatures in the simulation results.

    Finally, I think your understanding about maximum temperature increase is correct. This is primarily determined by the optical simulation. In HEAT the pulse length demonstrates the transient rise/fall response; past a certain point an increase in HEAT pulse length doesn’t further increase the temperature.

    All the best,

    Khashayar

Sign In or Register to comment.