Source definition in FDTD



I have some questions about the source defined in Lumerical FDTD, especially on how source term in Lumerical relates to the FDTD governing equations in the code. I will use an example to explain my questions.

First question I have is: what the signal I see in “Source” object really is. Say I choose a dipole source in FDTD, and set the parameters as Fig 1. Since this is a dipole source, it should be a vector. However, in the “signal vs time” panel, it seems that the raw source signal is a scalar, changing in time. So is the signal actually the normalized amplitude of dipole source? The vector dipole moment in time is just the directional unit vector of the dipole multiply this signal?

Now, there are two ways to connect this source to electric field, charge source (Eqn 1 in Fig 2) or current source (Eqn 2). These two quantities are connected by the continuity equation, Eqn 3. Normally, I would think that the dipole moment is defined as usual by the charge source as in Eqn 4. But the governing equation of electric field in FDTD normally uses J (from Eqn 2) as source (governing equation Eqn 5). So my second question is: the source signal we defined in Fig 1 and the line we see in the “signal vs time” panel in Fig 1, are they rho as in Eqn 1 or J as in Eqn 2?

Third question is related to the second. I need to get the data for the source signal I use in my FDTD calculations, so I use a script provided by the Lumerical website (, shown in Fig 3. The parameters (namely frequency, pulselength, and offset) are obtained from the settings in Fig 1. The The third question is very similar to the second question: the “pulse” term calculated in this script, is it the same as what we see in the “signal vs time” panel in Fig 1? Is it rho as in Eqn 1 or J as in Eqn 2?

Thank you very much.

Fig 1:

Fig 2:

Fig 3:

Scale bar in surface plot units

Hi Wendu,

I will do my best to clarify how the dipole source works in FDTD Solutions.

The frequency / wavelength tab that you show in Fig. 1 is common to all sources in FDTD Solutions (mode, Gaussian, dipole, etc.). The signal that you see here sets the time domain behaviour of your source but it does not set the spatial behaviour of your source. The spatial behavior will depend on the type of source you pick.

An electric dipole source only exists at a single point in space, but it is continuous in time. You can think of an electric dipole source as having two parts: a modulation signal S(w), which is a function of the angular frequency w, and a constant vector E0, which determines the field polarization. The source term in Maxwell’s equation corresponding to this point source would then be constructed as follows:

J(x,y,z,w) = j w epsilon0 S(w) E0 delta_fun(x-x0,y-y0,z-z0)

where (x0,y0,z0) are the coordinates of the point where the dipole lives. What you see in the frequency / wavelength tab is just the modulation signal S(t) and its corresponding Fourier transform S(w). The constant vector E0 is defined by two angles (theta and phi) and an amplitude value. These three values (theta, phi and amplitude) are set in the general tab. There is also a phase input in the general tab, which can be used to add an extra phase offset to E0.

If you look at the raw data in the result view for the electric dipole in an FDTD Simulation, you will find E0 and S(w). You can also find there the equivalent dipole moment. The vector E0 is scaled so you get a particular value of the total output power. That is explained here:


Thank you very much for the reply. I still need a couple of points to be clarified.

In your equation, what is the lower case j? Is it imaginary unit? Since FDTD is a time-domain method and I need to obtain time-domain info, could you please rewrite your equation in time-domain?

In addition, what is the governing equation in Lumerical FDTD? In other words, how does J in your equation fit in the governing equation? Is it the same as J_source in Eqn 5 in my original post?

Since S(t) is just a modulation, does that mean if I want to get rho(t) in Eqn 1 in my original post, I simply do rho(t)=rhoS(t); and if I want to get J(t) in Eqn 2, I do J(t)=JS(t); and if I want to get the dipole moment changing in time, I do p_dipole(t)=p_max*S(t). Simply put, this time modulation S(t) is not specifically restricted to any certain physical quantity, but is, using your words, the time domain behaviour for all physical quantity related to the source. Am I right?

Thank you.


Hi Wendu,

J is the source term on the right hand side of Ampere’s law. Yes, the letter j is just the imaginary unit and w is the angular frequency. To get J(t) you just need the inverse Fourier transform of the equation that I provided. This basically means taking the inverese Fourier transform of j w S(w) which is the time derivative of S(t).