Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 3.5 KB

EXT_LaserEnvelope.md

File metadata and controls

65 lines (47 loc) · 3.5 KB

Domain-Specific Naming Conventions for a laser envelope profile

openPMD extension name: LaserEnvelope

Introduction

This extension is specifically designed for modeling the propagation of laser beams and pulses.

Mesh Based Records (Fields)

Naming Conventions for mesh records (field records)

The laser pulse is represented as a single complex field $\mathcal{E}$, describing the envelope of the laser electric field, either in temporal representation:

$$\begin{aligned} E_x &= \mathrm{Re}\left( \mathcal{E} e^{-i\omega_0t}p_x\right)\\\ E_y &= \mathrm{Re}\left( \mathcal{E} e^{-i\omega_0t}p_y\right)\\\ \end{aligned}$$

or in spatial representation:

$$\begin{aligned} E_x &= \mathrm{Re}\left( \mathcal{E} e^{ik_0z}p_x\right)\\\ E_y &= \mathrm{Re}\left( \mathcal{E} e^{ik_0z}p_y\right)\\\ \end{aligned}$$

where $\mathrm{Re}$ stands for real part, $E_x$ (resp. $E_y$) is the laser electric field in the x (resp. y) direction, $\mathcal{E}$ is the complex laser envelope described in the standard, $\omega_0 = 2\pi c/\lambda_0$ is the angular frequency defined from the laser wavelength $\lambda_0$, $k_0$ is the corresponding wavenumber $k_0=2\pi/\lambda_0$ and $(p_x,p_y)$ is the (complex and normalized) polarization vector. The polarization state (linear, circular, elliptical) is controlled by the phase of the polarization vector. For instance, if $arg(p_x) = arg(p_y)$, the polarization is linear. If $arg(p_x) = arg(p_y) + \pi/2$, the polarization is elliptical. Alternatively, the stored array can represent the normalized vector potential $a_{x/y} = eA_{x/y}/(m_ec)$ where $A_{x/y}$ is the vector potential of the laser, related to the electric field by $E_{x/y} = -\partial_tA_{x/y}$.

When added to an output, the following naming conventions shall be used for complex electric field mesh records.

  • <laser envelope name>/
    • type: (complexX)
    • scope: required
    • description: Scalar field for the envelope (as a field strength). See above for description. The name is arbitrary, allowing a single series to store multiple laser pulses.
    • unitDimension = (1., 1., -3., -1., 0., 0., 0.) $(V/m = kg . m / (A . s^3))$ if envelopeField is electric_field, dimensionless (0., 0., 0., 0., 0., 0., 0.) otherwise.

Additional attributes on the mesh record named <laser envelope name>

On the series object, set the following attributes:

  • envelopeField

    • type: (string)
    • scope: required
    • description: physical quantity used to represent the laser envelope field.
    • allowed values:
      • electric_field The mesh represents the envelope of the transverse electric field $E_{x/y}$ of the laser pulse.
      • normalized_vector_potential The mesh represents the envelope of the transverse vector potential of the laser pulse. This quantity is normalized (to be dimensionless), as commonly used in laser-plasma interaction literature: $eA_{x/y}/(m_ec)$.
  • angularFrequency

    • type: (floatX)
    • description: angular frequency $\omega_0$ at which the laser envelope is defined (rad/s).
    • scope: required
  • polarization

    • type: 1-dimensional array containing 2 (complexX)
    • description: polarization vector, 2 values for the 2 transverse components x and y. This vector is normalized (so its modulus is 1) and contains all information to account for polarization states and carrier-envelope phase (CEP).
    • scope: required