Laser block

Laser block#

This block contains information about laser boundary sources. See EPOC++ input deck for more information on the input deck.

Laser blocks attach an EM wave source to a boundary which is set as simple_laser.

begin:laser
   boundary = x_min
   id = 1
   intensity_w_cm2 = 1.0e15 * gauss(time, 40.0e-15, 40.0e-15)
   lambda = 1.06 * micron
   polarisation_angle = 0.0
   phase = 0.0
   time_start = 0.0
   time_end = 80.0e-15
end:laser

As already mentioned in the discussion of laser boundaries in the boundaries block, lasers are attached to compatible boundaries here in the initial conditions deck.

  • boundary - The boundary on which to attach the laser. In 1D, the directions can be either “x_min” or “x_max”. In 2D, “y_min” and “y_max” may also be specified. Finally, 3D adds “z_min” and “z_max”.

  • amplitude - The amplitude of the \(E\) field of the laser in \(V/m\).

  • intensity - The intensity of the laser in \(W/m^2\). This may be a function of space and time. There is no need to specify both intensity and amplitude and the last specified in the block is the value used. It is mandatory to specify at least one. The amplitude of the laser is calculated from intensity using the formula amplitude = sqrt(2*intensity/c/epsilon0).

  • intensity_w_cm2 - This is identical to the intensity parameter described above, except that the units are specified in \(W/cm^2\).

  • id - An id code for the laser. Used if you specify the laser time profile in the EPOC++ source rather than in the input deck. Does not have to be unique, but all lasers with the same id will have the same time profile. This parameter is optional and is not used under normal conditions.

  • omega - Angular frequency (rad/s not Hz) for the laser. This may be a function of space and time.

  • frequency - Ordinary frequency (Hz not rad/s) for the laser. This also may be a function of space and time.

  • lambda - Wavelength in a vacuum for the laser specified in \(m\). This may be a function of space and time. If you want to specify in \(\mu m\) then you can multiply by the constant “micron”. One of lambda or omega (or frequency) is a required parameter.

  • polarisation_angle - Polarisation angle for the electric field of the laser in radians. This parameter is optional and has a value of zero by default. The angle is measured with respect to the right-hand triad of propagation direction, electric and magnetic fields. Although the 1D code has no \(y\) or \(z\) spatial axis, the fields still have \(y\) and \(z\) components. If the laser is on x_min then the default \(E\) field is in the \(y\)-direction and the \(B\) field is the \(z\)-direction. The polarisation angle is measured clockwise about the \(x\)-axis with zero along the \(E_y\) direction. If the laser is on x_max then the angle is anti-clockwise.
    Similarly, for propagation directions:
    y_min - angle about \(y\)-axis, zero along \(z\)-axis
    z_min - angle about \(z\)-axis, zero along \(x\)-axis
    y_max - angle anti-clockwise about \(y\)-axis, zero along \(z\)-axis
    z_max - angle anti-clockwise about \(z\)-axis, zero along \(x\)-axis

  • polarisation - This is identical to polarisation_angle with the angle specified in degrees rather than radians. If both are specified then the last one is used.

  • phase - The phase profile of the laser wavefront given in radians. Phase may be a function of both space and time. The laser is driven using \({\rm{sin}}(\omega t + \phi)\) and phase is the \(\phi\) parameter. There is zero phase shift applied by default.

  • time_start - Start time for the laser in seconds. Can be set to the string “start” to start at the beginning of the simulation. This is the default value. When using this parameter, the laser start is hard. To get a soft start use a ramped time profile in the amplitude parameter to ramp the laser up to full strength.

  • time_end - End time for the laser in seconds, can be set to the string “end” to end at the end of the simulation. This is the default value. When using this parameter, the laser end is clipped straight to zero at \(t > time\_end\). To get a soft end use a damped time profile in the amplitude parameter to ramp the laser down to zero.

If you add multiple laser blocks to the initial conditions file then the multiple lasers will be additively combined on the boundary.

In theory, any laser time profile required is possible, but the core FDTD solver for the EM fields in EPOC++ produces spurious results if sudden changes in the field intensity occur. This is shown below. The pulse shown on the left used a constant amplitude and used time_end to stop the laser after 8fs. Since the stopping time was not an exact multiple of the period, the result was to introduce spurious oscillations behind the pulse. If the laser had a finite phase shift so that the amplitude did not start at zero, a similar effect would be observed on the front of the pulse.

A laser pulse with a sharp cutoff shows numerical artefacts behind thepulse.

A laser pulse with a smooth temporal profile shows noartefacts.

The second figure instead used a Gaussian window function with a characteristic width of 8fs as well as using time_end to introduce a hard cutoff. It can clearly be seen that there are no spurious oscillations and the wave packet propagates correctly, showing only some dispersive features.

There is no hard and fast rule as to how rapid the rise or fall for a laser can be, and the best advice is to simply test the problem and see whether any problems occur. If they do then there are various solutions. Essentially, the timestep must be reduced to the point where the sharp change in amplitude can be accommodated. The best solution for this is to increase the spatial resolution (with a comparable increase in the number of pseudoparticles), thus causing the timestep to drop via the CFL condition.