Adding Laser

Section author: Sergei Bastrakov

There are several alternative ways of adding an incoming laser (or any source of electromagnetic field) to a PIConGPU simulation:

  1. selecting a laser profile in laser.param

  2. enabling an incident field source in incidentField.param

  3. using field or current background in fieldBackground.param

These ways operate independently of one another, each has its features and limitations. All but the current background one are fully accurate only for the standard Yee field solver. For other field solver types, a user should evaluate the inaccuracies introduced.

The functioning of the laser (the first way) is covered in more detail in the following class:

template<uint32_t T_initPlaneY>
class BaseFunctor

Base device-side functor for laser profile implementations.

Stores common data for all such implementations. Implements the logic of contributing the stored value to the grid value of E. Has two modes of operation depending on T_initPlaneY: a hard and a mixed hard-soft source.

For the T_initPlaneY == 0 case, our laser is a classic hard source: E(y=0, t) = E_source(y=0, t). A notable disadvantage of hard sources is that they are not transparent for incoming waves (e.g. reflected from a target) while the laser is being generated as controlled by its pulse length. More details on hard sources are given in section 5.1 of the book A. Taflove, S.C. Hagness. Computational Electrodynamics. The Finite-Difference Time-Domain Method. Third Edition. Artech house, Boston (2005).

Generally, hard-setting E at a hyperplane y=0 generates E waves going in +y and -y directions. Those E waves will propagate to both sides symmetrically, both theoretically and in an FDTD solver. So the corresponding field (only part generated by the source) E(y) is even wrt y: E(y) = E(-y). Therefore the FDTD-solved resulting B field is odd: B(y) = -B(-y), and particularly B(0) = 0. These relations simply follow from the way of setting the source and properties of FDTD.

The above paragraph applies to a theoretical case of FDTD-propagating fields everywhere. However, it is not exactly what happens in a PIConGPU simulation. In PIConGPU, grid values to the left from the y = 0 plane are not updated by a field solver. So there will be no left-propagating wave in a simulation, only the right-propagating one. Note that it is only due to not applying a field solver, not because of a reflecting boundary. For the classic Yee solver, this scheme is completely fine. Updates for all grid values with y > 0 use only “good” values with y >= 0. These include Bx, Bz in the cell starting at y = 0 as they are located as y = dy/2. And Ex, Ez values at exactly y = 0 are overwritten with the hard source. However, this scheme is not fully accurate for wider stencils used in FDTD. In that case, some updates would use “bad” values from the y < 0 area, that are always kept 0. Thus, the laser with initPlaneY = 0 is only fully accurate with the classic Yee solver.

For the T_initPlaneY > 0 case, our laser is a mixed hard-soft source. It also only affects E, but following E(y=0, t) += coefficient * E_source(y=0, t). Beware a principle difference of this scheme from classic soft sources. Those are formulated using currents J, M derived from B_source, E_source. The soft source scheme (in equivalent TF/SF formulation) is implemented in incidentField and is explained there in more detail.

However, the laser in question operates differently. We merely fit the coefficient so that the combination of source application and field solver produces expected values in the y > T_initPlaneY area. Our coefficient value matches that in (33) with alpha = 2 in M. Mansourabadi, A. Pourkazemi. FDTD Hard Source and Soft Source Reviews and Modifications. Progress In Electromagnetics Research C, Vol. 3, 143-160, 2008. doi:10.2528/PIERC08032302. (However they unconventionally call this scheme simply “soft source”). Similarly to the hard source, the scheme implies the laser-induced B values are odd wrt the source. Same as in the previous case, all grid values with y >= 0 will be updated by a field solver. There will be a left-propagating wave in the 0 <= y < T_initPlaneY area generated by the source. This area should normally be excluded when analysing the results. A field absorber should be used at the y_min border to avoid significant influence of this region on the rest of the simulation volume. Note that unlike the hard source case, this source is transparent for incoming waves. Same as the hard-source case, this scheme is fully accurate only for the classic Yee solver.

Template Parameters
  • T_initPlaneY: laser initialization plane in y, value in cells in the global coordinates