How to properly set up an absorption simulation?


I am from University of Minnesota and is currently using FDTD to solve for a light absorption problem. The geometry looks like this:

Geometry: the gray area has x span = 22 um, y span = 15 um and it is 2D. The FDTD solver x span is 22 um with PML boundary condition on all size.

I had set the Gaussian beam with r = 6 um, amplitude = 1, pulse duration of 1 picosecond, and wavelength of 783 nm (a single wavelength only.) The diameter is less than the x span so I think I do not have to worry about boundary conditions.

My FDTD simulation time is 6000 fs.

Then I used solar generation analysis group to calculate the power absorption inside my materials. I used mesh accuracy of 7 and auto shutoff of 1E-6. The result looks like this:

I am wondering if I did everything correctly. This contour map does not look smooth as I would expect to see a smooth Gaussian shape contour map.

I am also curious how to give the Gaussian beam an absolute power amplitude. Right now I can only set an unitless amplitude of 1, but I would like to set an absolute amplitude (something like 20 mW.)

I also don’t know how to interpret the solar generation absorption result (Pabs). The Pabs has the unit of [fraction of source power/m^3] according to the comments in the script and this number is greater than 1, which is counter-intuitive since I would expect a fraction to be less than 1. Can I convert this number to an absolute power in unit of W?

Thank you for any help. Let me know if you need more specific information about how I set up the simulation.


Hi Wei,

Thank you for posting your questions in the KX, I am happy to provide some comments.

I would like to understand more about your experiment so that I give more advise on your simulation approach. Specifically,

  • Is this simulation supposed to be linear or not? If this is linear, you should not have to worry about the amplitude since you can bring it the actual power of the your light source at the end stage of post-processing.

  • Why do you want to use a Gaussian beam? Typically, we use a plane wave source in solar cell simulation.

  • It looks like you have a specific pulse width in your simulation, is there a reason for that? By default, the simulation results should be steady state response (when CWnorm is on). So the pulse width is too important to the simulation results. Are you trying to simulate some non-linear effects?

It will be good if you can clarify these points. Please reply this post and we will continue the conversation here. Ideally, if you can include a schematic of your experiment, maybe a publication that is similar to your experiment so that we can try to reproduce their results.

In the meantime, please also take a look at a solar cell getting started example. (


Dear Kam;

Thanks for the comments!
Here I will show you my experimental setup. The end goal of this simulation is to calculate the power/energy distribution inside the sample. Note this is not a solar cell simulation, I only used solar cell analysis group because it allows me to calculate power absorption.

The experimental instrument we used is TDTR. A similar setup is shown in figure 2 of this paper.

Ma, Weigang, Tingting Miao, Xing Zhang, Masamichi Kohno, and Yasuyuki Takata. “Comprehensive Study of Thermal Transport and Coherent Acoustic-Phonon Wave Propagation in Thin Metal Film–Substrate by Applying Picosecond Laser Pump–Probe Method.” J. Phys. Chem. C The Journal of Physical Chemistry C 119.9 (2015): 5152-159. Web.

I do not understand how you define linear. However I guess it should be linear in this setup.

I use a Gaussian beam because the laser source produces Gaussian beam laser with short pulses.

I used s specific pulse width because it is the pulse width that the laser source produced (1 ps). Does this affect the steady state response? Do I need to use other simulation approach?

I am not trying to simulate non-linear effect. The end goal is to know what is the power distribution in the sample.

Thank you and hope to hear from you soon.

Hi Wei,

If you are not simulating non-linear effect. I think your simulation is going to be linear and possibly CW (steady state).

In this case, I will encourage you to look at this Planar solar cell example (I know this is not a solar cell, but the simulation approach should be similar). You can focus on Optical Simulation on this example (

In simple words, you should start with plane wave, and the default pulse length. Then you can try to look at the results (steady state), see if it makes any sense to you. It should return the spatial power absorption profile to you.

Depending on the spot size and the size of your device, you may want to switch back to gaussian beam later. But for now, I think you can try to use plane wave.

Unfortunately, I do not have access to the paper you are referring to.

I am happy to continue the conservation to answer any question you may have.

I had already followed the exact steps in the planar solar cell example.

If the pulse duration is 1000fs, should I set FDTD simulation time to 1000fs or longer? I see very different result with different simulation time.

Thank you.

If the simulation is linear, the results should be unrelated to the pulse length you have used (if your simulation is set up properly and you are sticking with the default CWnorm state). I guess the reason why you had different results when you set 1000fs pulse length is that you did not have enough offset for the pulse to inject. In the screenshot, you can see the pulse is truncated. If you really want to test the pulse length, you should have say, at least 2000ps offset to make sure the pulse is not truncated. But as I said, it should make no difference to your results if you are using the default CW normalization.

If you attach your file here, I am happy to take a look at it and edit your file.

I cannot upload my file here because the size of the file is too big. You can grab the file from the following google drive link.

Again, I want to describe my case more clearly so you know what I am simulating.

Laser hits the sample with lambda = 783 nm and the pulse duration of this laser is 1 picosecond. The laser is a circular beam with Gaussian profile, and its diameter is 12 um. After 1 picosecond, I want to know the energy distribution inside both layer.

Thank you.

Hi Kam;

I also want to attach a paper for your reference. The experimental setup is shown at figure 1. Our experimental setup is very similar to this one except that both pump and probe laser are normal to the sample surface.
characterization-of-mechanical-and-thermal-properties-using-ultrafast-optical-metrology.pdf (834.0 KB)

Thank you.

So is your experimental laser only going to fire one pulse and then stops? And you want to study the amount of energy (in Joule) absorbed after this single pulse? I assume that you may be interested in spatial energy distribution? For linear simulations, most people care about power (Joule/second) instead.

Usually, there should be a repetition rate for the laser, that means the laser keeps firing pulses. In that case, people are usually interested in the steady state response of the system.

Can you clarify these points?

The experiment is a standard pump & probe technique call TDTR (time domain thermoreflectance). A pump laser pulse heats up the sample, and a probe laser pulse arrives at the sample surface after x amount of delayed time to measure the temperature change (x = 0 to whatever timescale we are interested in, say 4000 ps.) Given different time delay x, we can measure the temperature change at every time instance. The paper I attached can give you more detail in the experiment setup.

The laser has a repetition rate of 80 MHz; however, I am only interested in the spatial energy distribution of 1 laser pulse after the laser enters the sample. I want to know the amount of energy absorbed after this single pulse, and the spatial energy distribution.

Now, the reason that I am doing this simulation is because we are seeing something that we cannot explain from the experimental data. We want to run a simulation in FDTD to solve for energy distribution, and then see how this energy changes temperature over time. Then we will compare the simulation with experimental data. I think this can be done by using both FDTD(optical simulation) and DEVICE(heat transfer simulation), but FDTD is the first step.

My idea is that I can take the FDTD simulation (spatial energy distribution) results and plug it into some kind of thermal simulation software (DEVICE or Ansys) to analyze the transient heat transfer.

Regarding your questions:
In this sense, you can assume that the experimental laser only fire one pulse and then stops, even though it is actually repeating.
Yes, I want to study the amount of energy absorbed and the spatial distribution.

I see. The pabs analysis group was set up such that it can return the spatial power absorbed in the steady state. In your case, the pabs group will need some modification. I don’t know what modification is needed yet, but I think you might need to use a time monitor to record the instantaneous power during the pulse duration. And then sum up all the instant power for the energy absorbed at each point in space. This type of modification can involve quite a bit of work. I will need some time to think about it a little more and discuss that with my colleague, your clarification has helped me understand a problem a lot more. Thanks!

In the mean time, I think you can take a look at this example and see how we can possible calculate energy carried by a pulse. (

Hi Wei,

I have got a chance to talk to my colleague @aalam. If your goal is to analyze the transient heat transfer, then below is the simulation approach we have in mind:

Time scale

[quote=“zheng741, post:10, topic:3690”]
The laser has a repetition rate of 80 MHz; however, I am only interested in the spatial energy distribution of 1 laser pulse after the laser enters the sample. [/quote]

Laser pulse: 1 ps
Laser period: ~10 ns (repetition rate = 80 MHz)


The typical time scale for a thermal effect to reach steady state can be long as like micro-second. So we think that you might need to use the full laser period for the transient response (before the next pulse arises, obviously you can keep going in time and assume that the laser just stops after firing one pulse). In either case, the optical stimulus is going to be very fast (almost like instant) compared to the laser period. In a thermal simulation, it is not going to be efficient to run a simulation for 10ns while having small initial time steps to take care of the short laser pulse. Therefore, in overall consideration, we suggest the following approach.

Simulation approach/workflow

In FDTD Simulations, we are going to suggest you to run a simulation to return steady state results (CWnorm is on). Now we can make use of the normal Pabs (or Pabs_adv) analysis group to return the spatial power absorbed, and then pass that to the DEVICE Heat solver. In the Heat solver, you can then run a transient simulation and use a shutter to apply a step function to the CW input from FDTD, like the screenshot below. Once the Heat simulation is done, you can post-process the step response to the impulse response – which is what you are going to need to analyze the transient heat transfer. Eg, the spatial temperature distribution as a function of time. We do not have an example for Heat but we do have a VPD example for the Charge solver to demonstrate a similar idea (you can imagine replace current with temperature).

Transient optical simulation

I don’t mind furthering our discuss on this topic. However, based on the simulation goal that you mentioned, these quantities do not seem to be very useful in achieving it. If the above approach makes sense to you, I think we can focus our discussion on that.