Using Laser pulses
Introduction
Users may optionally define an arbitrary number of laser pulses to be added to the simulation. Each laser pulse is added through a call to the sim_add_laser()
routine:
void sim_add_laser( t_simulation* sim, t_emf_laser* laser)
This routine should be called inside sim_init()
, somewhere after the call to sim_new()
, e.g.:
void sim_init( t_simulation* sim ){
//...
// Initialize Simulation data
sim_new( sim, nx, box, dt, tmax, ndump, species, n_species );
// Add laser pulse (this must come after sim_new)
t_emf_laser laser = {
.start = 17.0,
.fwhm = 2.0,
.a0 = 2.0,
.omega0 = 10.0,
.polarization = M_PI_2
};
sim_add_laser( sim, &laser );
// ...
}
Laser pulse parameters - 1D
Laser pulse parameters are specified by a t_emf_laser
variable supplied to the sim_add_laser()
function. In 1D the t_emf_laser
structure has the following fields:
Laser parameters | Description |
---|---|
type | PLANE for a plane wave or GAUSSIAN for a gaussian beam |
start | Front edge of the laser pulse |
fwhm | FWHM of the laser pulse duration |
rise, flat, fall | Rise / flat / fall time of the laser pulse |
a0 | Normalized peak vector potential of the pulse |
omega0 | Laser frequency |
polarization | Laser polarization angle, 0 aligns $E$ field along $x_2$ |
W0 | Gaussian beam waist |
focus | Focal plane position |
axis | Position of the optical axis |
All parameters are in normalized simulation units except for the normalized peak vector potential, $a_0$, which is adimensional.
Using the fwhm
parameter will override the rise
, flat
and fall
parameters. Specifically, it sets rise = fwhm/2
, flat = 0
, and fall = fwhm/2
.
The following example launches a laser starting at position 17.0, with a (temporal) full width at half max of 2.0. The peak normalized vector potential is 2.0, and the laser frequency is 10.0. The polarization degree is $\pi/2$, which aligns the $E$ field along the $x_3$ direction. All values are in normalized simulation units.
t_emf_laser laser = {
.start = 17.0,
.fwhm = 2.0,
.a0 = 2.0,
.omega0 = 10.0,
.polarization = M_PI_2
};
sim_add_laser( sim, &laser );
Laser pulse parameters - 2D
In 2D ZPIC also supports Gaussian beam laser pulses (besides plane wave pulses). The t_emf_laser
structure has the additional fields:
Laser parameters | Description |
---|---|
type | PLANE (default) for a plane wave or GAUSSIAN for a gaussian beam |
W0 | Gaussian beam waist |
focus | Focal plane position |
axis | Position of the optical axis |
All parameters are in normalized simulation units. The following is a 2D example of a gaussian laser pulse. It uses the same parameters as the previous example, set the beam focus waist to $W_0=4.0$, the focal plane position to $x=20.0$, and the propagation axis to $y=12.8$.
t_emf_laser laser = {
.type = GAUSSIAN,
.start = 17.0,
.fwhm = 2.0,
.a0 = 2.0,
.omega0 = 10.0,
.W0 = 4.0,
.focus = 20.0,
.axis = 12.8,
.polarization = M_PI_2
};
sim_add_laser( sim, &laser );