FlattenedGaussianPulse#

class wake_t.physics_models.laser.laser_pulse.FlattenedGaussianPulse(xi_c, a_0, w_0, tau, N=6, z_foc=0.0, l_0=8e-07, cep_phase=0.0, polarization='linear')[source]#

Class defining a flattened Gaussian pulse.

The laser pulse is defined such that the transverse intensity profile is a flattened Gaussian far from focus, and a distribution with rings in the focal plane. (See Santarsiero et al., J. Modern Optics, 1997) Increasing the parameter N increases the flatness of the transverse profile far from focus, and increases the number of rings in the focal plane.

Parameters:
xi_cfloat

Initial central position of the pulse along xi in units of m.

a_0: float

The peak normalized vector potential at the focal plane.

w_0float

Spot size of the laser pulse, in units of m, at the focal plane.

taufloat

Longitudinal pulse length (FWHM in intensity) in units of s.

Nint, optional

Determines the “flatness” of the transverse profile, far from focus. Default: N=6 ; somewhat close to an 8th order supergaussian.

z_focfloat, optional

Focal position of the pulse.

l_0float, optional

Laser wavelength in units of m. By default, a Ti:Sa laser with l_0=0.8e-6 is assumed.

cep_phasefloat, optional

The Carrier Envelope Phase (CEP) in radian. This is the phase of the laser oscillation at the position where the envelope is maximum.

polarizationstr, optional

Polarization of the laser pulse. Accepted values are ‘linear’ (default) or ‘circular’.

Methods

envelope_function(xi, r, z_pos)

Return the complex envelope of the laser pulse.

evolve(chi, n_p)

Evolve laser envelope to next time step.

get_envelope()

Get the current laser envelope array.

get_group_velocity(n_p)

Get group velocity of the laser pulse for a given plasma density.

initialize_envelope()

Initialize laser envelope arrays.

set_envelope_solver_params(xi_min, xi_max, ...)

Set the parameters for the laser envelope solver.