Introduction

Chirped pulse amplification technology in 19851 has made possible the generation of extremely powerful laser pulses2. When a solid, liquid or a gas is irradiated by such a powerful pulse, the ionization phenomena swiftly create a plasma at the surface of the material or within the gas. The development of applications such as inertial fusion3, laser-plasma accelerators4, laser materials processing2, X-ray lasers5 or nonlinear plasmonics at lower intensities6 requires laser plasma interactions modeling.

Hydrodynamic models are particularly useful to describe short pulse interaction with plasmas when each of the species can be assumed in local thermodynamic equilibrium7. The two-fluid plasma equations is the starting point of the hydrodynamic models8. This model describes the spatio-temporal evolution of the density, mean velocity and pressure of electrons and ions fluids. The two-fluid plasma equations therefore consist of two sets of Euler equations with source term, as well as Maxwell’s equations. The fluid description involves the assumptions of local thermodynamic equilibrium for each species (electrons, ions). The conventional hydrodynamic models, e.g., two-temperature plasma equations, single-fluid equations and MagnetoHydroDynamic (MHD) can be derived from the two-fluid plasma model by means of additional assumptions.

At present, solving the complete two-fluid plasma equations is a difficult challenge9. Their implementation is often complex for non-specialist groups since most of these codes are developed to be particularly robust for shock’s problems. A good example is given in Shumlak et al.10 which present an algorithm based on Roe-type Riemann solver11 for the two-fluid plasma model. The same group added the high-order discontinuous Galerkin method to improve the result’s accuracy12,13,14,15. References16,17,18,19,20 describe numerical methods well adapted for shock’s problems. In contrast, for problems without strong shocks, our group has recently proposed a relatively simple approach21, based on finite difference schemes and Fast Fourier Transform (FFT). This solver is based on the PseudoSpectral Time-Domain method (PSTD)22 to solve Maxwell equations and a composite scheme23 to solve the fluid equations. However, the PSTD is based on a temporally staggered grid, which requires temporal interpolations for the coupling with the fluid solver. Avoiding interpolation is desirable to reduce computation time, increase the technical implementation of the code and potentially increase the stability of the code because electromagnetic fields and fluid quantities are computed on the same grid points. In addition, the PSTD algorithm is numerically dispersive. It emits wave components that are faster than light.

Vay et al.24 proposed the PseudoSpectral Analytical Time-Domain (PSATD), and its application to pseudo-spectral Particle-In-Cell (PIC) simulations. In PSTD, the temporal integration is performed via finite differences, while in PSATD, the integration is analytical (except for the integration of current). Thus, unlike PSTD, the PSATD requires no temporal staggered grid and is free of numerical dispersion for transverse electromagnetic propagation in the absence of current (see Fig. 1 of Vay et al.24). This method is also particularly well adapted for laser pulse propagation. The algorithm is tested with laser-plasma interaction problems with intensities around \(10^{14}\) to \(10^{15}~{\hbox {W/cm}}^2\), since it is intended for the study of electron-hole plasma dynamics in solids. We model a plasma embedded in a medium of background relative permittivity \(\varepsilon _{\mathrm {r}}\).

Here, we build a two-fluid plasma solver based on PseudoSpectral Analytical Time-Domain PSATD for solving Maxwell’s equations. A schematic representation of our solver is given in Fig. 1. The integration of Maxwell’s equations is performed by using the PSATD method. The electromagnetic fields are transmitted to the fluid equations as a Lorentz force source term. The fluid equations are integrated by using a Strang splitting25. In the splitting, the homogeneous system is solved via a Lax Wendroff (LW) scheme, while the source terms are integrated with a fourth-order Runge–Kutta scheme (RK4). The updated fluid variables are used to calculate the current density, which is injected in Maxwell’s equations.

Figure 1
figure 1

Schematic representation of the solver’s structure.

This paper is divided in four main parts. We will first recall the two-fluid plasma model equations before summarizing the numerical integration. We will then validate the solver and demonstrate its benefits in terms of numerical dispersion and in the reduction of the constraint imposed on time-steps with the solver of reference21.

Results

Two-fluid plasma equations

The two-fluid plasma model equations consists of Euler equations with source term for each fluid, as well as Maxwell’s equations. This system of equations corresponds to continuity equations, motion equations and energy transport equations for electron and ion fluids. Following reference26, the fluid equations can be presented under the following form:

$$\begin{aligned} \frac{\partial }{\partial t} \underbrace{ \left[ \begin{matrix} \rho _{\mathrm {e}} \\ \rho _{\mathrm {e}} {\mathbf {u}}_{\mathrm {e}} \\ \epsilon _{\mathrm {e}} \\ \rho _{\mathrm {i}} \\ \rho _{\mathrm {i}} {\mathbf {u}}_{\mathrm {i}} \\ \epsilon _{\mathrm {i}} \\ \end{matrix} \right] }_{\equiv {\mathbf {U}}} + {\nabla } \cdot \underbrace{\left[ \begin{matrix} \rho _{\mathrm {e}} {\mathbf {u}}_{\mathrm {e}} \\ \rho _{\mathrm {e}} {\mathbf {u}}_{\mathrm {e}} \otimes {\mathbf {u}}_{\mathrm {e}} + p_{\mathrm {e}} {\mathbf {I}} \\ (\epsilon _{\mathrm {e}} + p_{\mathrm {e}}) {\mathbf {u}}_{{\mathrm {e}}} \\ \rho _{\mathrm {i}} {\mathbf {u}}_{\mathrm {i}} \\ \rho _{\mathrm {i}} {\mathbf {u}}_{\mathrm {i}} \otimes {\mathbf {u}}_{\mathrm {i}} + p_{\mathrm {i}} {\mathbf {I}} \\ (\epsilon _{\mathrm {i}} + p_{\mathrm {i}}) {\mathbf {u}}_{\mathrm {i}} \end{matrix} \right] }_{\equiv {\mathbf {F}}({\mathbf {U}})} = \underbrace{\left[ \begin{matrix} 0 \\ \frac{\rho _{\mathrm {e}} q_{\mathrm {e}}}{m_{\mathrm {e}}} ({\mathbf {E}} + {\mathbf {u}}_{\mathrm {e}} {\times } {\mathbf {B}} ) \\ \frac{\rho _{\mathrm {e}} q_{\mathrm {e}}}{m_{\mathrm {e}}} {\mathbf {u}}_{\mathrm {e}} \cdot {\mathbf {E}} \\ 0 \\ \frac{\rho _{\mathrm {i}} q_{\mathrm {i}}}{m_{\mathrm {i}}} ({\mathbf {E}} + {\mathbf {u}}_{{\mathrm {i}}} {\times } {\mathbf {B}} ) \\ \frac{\rho _{\mathrm {i}} q_{\mathrm {i}}}{m_{\mathrm {i}}} {\mathbf {u}}_{{\mathrm {i}}} \cdot {\mathbf {E}} \end{matrix} \right] }_{\equiv {\mathbf {S}}({\mathbf {U}},{\mathbf {E}},{\mathbf {B}})} \end{aligned}$$
(1)

where \({\mathbf {U}}\) is the fluid variables vector, \({\mathbf {F}}({\mathbf {U}})\) is the flux tensor and \({\mathbf {S}}({\mathbf {U}},{\mathbf {E}},{\mathbf {B}})\) is the Lorentz force source term. In this paper, i and e are indexes related respectively to the ion fluid and to the electron fluid. q is the charge, m the mass, \(\rho\) the mass density, \({\mathbf {u}}\) the mean velocity, p the pressure, \(\epsilon\) the fluid energy density, \({\mathbf {E}}\) the electric field and \({\mathbf {B}}\) the magnetic field. \(\otimes\) is tensor product and \({\mathbf {I}}\) is the identity matrix.

One more equation is required to close the system of equation, an ideal gas closure for each fluid k is used26:

$$\begin{aligned} \epsilon _{\mathrm {k}} \equiv \frac{p_{\mathrm {k}}}{\gamma -1 } + \frac{1}{2}\rho _{\mathrm {k}} {\mathbf {u}}_{{\mathrm {k}}}^2 \end{aligned}$$
(2)

where \(\gamma\) is the adiabatic index.

Electric and magnetic fields in the source term \({\mathbf {S}}({\mathbf {U}},{\mathbf {E}},{\mathbf {B}})\) are determined by the Maxwell equations. It is known that solving fluid equations and Maxwell’s curl equations together enforces the conservation of divergence properties of the fields27. Therefore, as long Maxwell’s divergence equations are satisfied at the initial time, they continue to be satisfied during the whole simulation because of the combined numerical resolution of fluid equations and Maxwell’s curl equations. Furthermore, Maxwell curl’s equations can be written by expressing the current density \({\mathbf {J}}\) as function of fluid variables:

$$\begin{aligned} {\nabla } {\times } {\mathbf {E}}= & {} - \frac{\partial {\mathbf {B}}}{\partial t} \end{aligned}$$
(3)
$$\begin{aligned} {\nabla } {\times } {\mathbf {B}}= & {} \mu _{\mathrm {0}} \underbrace{\left[ \frac{q_{\mathrm {e}}}{m_{\mathrm {e}}}\rho _{\mathrm {e}} {\mathbf {u}}_{{\mathrm {e}}} + \frac{q_{\mathrm {i}}}{m_i}\rho _{\mathrm {i}} {\mathbf {u}}_{{\mathrm {i}}} \right] }_{{\equiv {\mathbf {J}}}} + \frac{\varepsilon _{\mathrm {r}}}{c^2}\frac{\partial {\mathbf {E}}}{\partial t} \end{aligned}.$$
(4)

Here, \(\varepsilon _{\mathrm {0}}\) and \(\mu _{\mathrm {0}}\) are respectively the vacuum permittivity and permeability. \(c=(\varepsilon _{\mathrm {0}} \mu _{\mathrm {0}})^{-1/2}\) is the speed of light. \(\varepsilon _{\mathrm {r}}\) is the relative permittivity of the background medium: we do the assumption that this quantity is time and space independent. In this model, the plasma is also contained inside a medium of relative permittivity \(\varepsilon _{\mathrm {r}}\).

The numerical integration

The Maxwell solver

As mentioned in the introduction, the PSATD method24 is used for solving Maxwell curl’s equations. This method is simple to implement and does not need the staggering of spatial and temporal grids. This is in contrast with the Finite Difference Time Domain (FDTD) method28 which requires spatially and temporal staggered grids or in contrast with the PseudoSpectral Time-Domain (PSTD)22 which requires a temporally staggered grid. The PSATD is therefore more flexible to be coupled with another algorithm without interpolations. Moreover, in absence of current, PSATD induces zero numerical dispersion in contrast with FDTD or PSTD. An additional strong benefit is that the PSATD is not subject to a Courant condition for transverse electromagnetic field propagation in the absence of current. The PSATD algorithm is inherently periodic because it is based on FFT, but open systems can be modeled by using Perfectly Matched Layers (PML) as in Shapoval et al.29.

The PSATD algorithm provides the fields in the Fourier space24:

$$\begin{aligned} {\tilde{\mathbf {E}}}^{\mathrm {n+1}}= & {} C_{\mathrm {0}} {\tilde{\mathbf {E}}}^{\mathrm {n}} + i v S_{\mathrm {0}} \varvec{\kappa } \times {\tilde{\mathbf {B}}}^{\mathrm {n}} - \frac{1}{\varepsilon _0 \varepsilon _r} \frac{S_{\mathrm {0}}}{kv} {\tilde{\mathbf {J}}}^{\mathrm {n+1/2}} + (1-C_{\mathrm {0}}) \varvec{\kappa } \cdot (\varvec{\kappa } \cdot {\tilde{\mathbf {E}}}^{\mathrm {n}}) \nonumber \\&+ \frac{1}{\varepsilon _0 \varepsilon _r } \left( \frac{S_{\mathrm {0}}}{kv}-\Delta t \right) \varvec{\kappa } \cdot (\varvec{\kappa } \cdot {\tilde{\mathbf {J}}}^{\mathrm {n+1/2}}) \end{aligned}$$
(5)
$$\begin{aligned} {\tilde{\mathbf {B}}}^{\mathrm {n+1}}= & {} C_{\mathrm {0}} {\tilde{\mathbf {B}}}^{\mathrm {n}} - i \frac{S_{\mathrm {0}}}{v} \varvec{\kappa } \times {\tilde{\mathbf {E}}}^{\mathrm {n}} +i \mu _0 \frac{1-C_{\mathrm {0}}}{k} \varvec{\kappa } \times {\tilde{\mathbf {J}}}^{\mathrm {n+1/2}} \end{aligned}$$
(6)

where \({\tilde{\mathbf {a}}}\) is the Fourier transform of the quantity \({\mathbf {a}}\). Here \(C_{\mathrm {0}}=\cos \left( k v \Delta t\right)\), \(S_{\mathrm {0}}=\sin \left( k v \Delta t\right)\), \(\varvec{\kappa }= {\mathbf {k}}/k\) and \(v=\frac{c}{\varepsilon _r^{1/2}}\). The two main assumptions made in the PSATD method are: (1) the time-step \(\Delta t\) is enough small to assume that the current density is constant over a time-step (2) the background permittivity \(\varepsilon _{\mathrm {r}}\) is uniform. We note that the plasma permittivity is not limited by this constraint because it is taken into account via charge currents.

The fluid solver

For the fluid equations solver, we consider a similar solver as in reference21. Here, we simplified the solver by restricting ourselves to problems without discontinuities such that it becomes unnecessary to introduce numerical dissipation to make gradient smoother. Instead of using a composite scheme LWLFn as in reference21, we will use a simple two-step Lax–Wendroff (LW) scheme30 which is second order accurate and introduces less numerical dissipation than the two-step Lax–Friedrichs (LF) scheme31. The LW scheme solves the homogeneous part of Eq. (1), as we recall below.

First, we set \(L^{\mathrm {x}}\) the operator for the two-step LW along x direction:

$$\begin{aligned} L^{\mathrm {x}} ({\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}} ) = {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}} - \frac{\Delta t}{ \Delta x} \left[ \mathbf {F_x} \left( {\mathbf {U}}^{\mathrm {n+1/2}}_{\mathrm {j+1/2,l,m}}\right) - \mathbf {F_x}\left( {\mathbf {U}}^{\mathrm {n+1/2}}_{\mathrm {j-1/2,l,m}}\right) \right] \end{aligned}$$
(7)

with

$$\begin{aligned} {\mathbf {U}}^{\mathrm {n+1/2}}_{\mathrm {j+1/2,l,m}}= & {} \frac{1}{2} \left[ {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j+1,l,m}} + {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}} \right] - \frac{\Delta t}{2 \Delta x} \left[ \mathbf {F_x}\left( {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j+1,l,m}}\right) - \mathbf {F_x}\left( {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}}\right) \right] \end{aligned}$$
(8)
$$\begin{aligned} {\mathbf {U}}^{\mathrm {n+1/2}}_{\mathrm {j-1/2,l,m}}= & {} \frac{1}{2} \left[ {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}} + {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j-1,l,m}} \right] - \frac{\Delta t}{2 \Delta x} \left[ \mathbf {F_x}\left( {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}}\right) - \mathbf {F_x}\left( {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j-1,l,m}}\right) \right] \end{aligned}$$
(9)

where j, l and m are respectively indexes for x, y and z directions. Similar operations are done in y and z directions as reference21 to obtain \(L^{\mathrm {y}} ({\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}})\) and \(L^{\mathrm {z}} ({\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}})\). A basic spatially dimensionally-split scheme is used to obtain the value \({\mathbf {U}}^{\mathrm {n+1}}_{\mathrm {j,l,m}}\) from \({\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}}\)32:

$$\begin{aligned} {\mathbf {U}}^{\mathrm {n+1}}_{\mathrm {j,l,m}} = L^{\mathrm {x}} L^{\mathrm {y}} L^{\mathrm {z}} ( {\mathbf {U}}^{\mathrm {n}}_{\mathrm {j,l,m}} ) \end{aligned}$$
(10)

For the numerical integration of the source term \({\mathbf {S}}({\mathbf {U}},{\mathbf {E}},{\mathbf {B}})\) of Eq. (1), we use the Strang splitting technique presented by Strang25. The Strang splitting allows an estimation of current density \({\mathbf {J}}^{\mathrm {n+1/2}}\) at a half time step of PSATD. The concept of Strang splitting is shown on the steps 1, 2 and 4 in Fig. 2. We first integrate the source term with an RK4 scheme over \(\Delta t /2\), then the homogeneous system is integrated over \(\Delta t\) with an LW scheme, and finally source term is again integrated with an RK4 over time step \(\Delta t /2\).

Full two-fluid plasma solver algorithm

The full algorithm for the two-fluid plasma model is described in Fig. 2 and can be decomposed in 4 main steps:

  1. 1.

    Integration of the source term with an RK4 scheme over a temporal step \(\Delta t/2\) by using \({\mathbf {E}}^{\mathrm {n}}\), \({\mathbf {B}}^{\mathrm {n}}\) and \({\mathbf {U}}^{\mathrm {n}}\) to obtain the intermediate value of fluid variables \(\mathbf {U^*}\).

  2. 2.

    Integration of the homogeneous system with an LW scheme over a temporal step \(\Delta t\) using fluid variables vector \({\mathbf {U}}^{*}\) to obtain a new intermediate value \({\mathbf {U}}^{**}\).

  3. 3.

    Computation of the current density \({\mathbf {J}}^{\mathrm {n+1/2}}\) with densities and velocities from \({\mathbf {U}}^{**}\). Then, carry out a PSATD step with \({\mathbf {J}}^{\mathrm {n+1/2}}\) to calculate \({\mathbf {E}}^{\mathrm {n+1}}\) and \({\mathbf {B}}^{{\mathrm {n+1}}}\).

  4. 4.

    Integration of the source term with an RK4 algorithm over a temporal step \(\Delta t/2\) using \({\mathbf {U}}^{**}\), \({\mathbf {E}}^{\mathrm {n+1}}\) and \({\mathbf {B}}^{\mathrm {n+1}}\) to obtain the final value of fluid variables \({\mathbf {U}}^{\mathrm {n+1}}\).

The PSATD naturally represents all field values at the nodes of a grid, it also avoids temporal interpolation of the magnetic field that was necessary in reference21.

For the PSATD algorithm alone without currents, the sampling is in principle only limited by Nyquist theorem. However, in order to derive Eqs. (5) and (6), we make the assumption that the current is constant over the temporal step \(\Delta t\). Therefore, the temporal step is chosen small enough to make this assumption valid. The spatial step \(\Delta x\) is simply chosen to resolve the both plasma and electromagnetic waves.

Figure 2
figure 2

Schematic representation of the algorithm. The source term is integrated with an RK4 scheme while the homogeneous system is integrated with an LW scheme. Maxwell’s equations are solved with the PSATD method. The algorithm requires four steps shown in red to advance fluid variables and fields from a time step n to \(n+1\).

Validation of the numerical solver

S-polarized electromagnetic wave over a plasma ramp

In this first test, we check the conservation of momentum and energy during reflection of a s-polarized electromagnetic wave over a plasma ramp. The numerical setup is shown in Fig. 3. A laser pulse is propagating toward an overcritical plasma ramp with an angle of incidence \(\theta =15^\circ\). The initial plasma density profile is invariant in y and z directions, and the following initial density profiles, for electron and ion fluids, are used in x direction:

$$\begin{aligned} n_{\mathrm {e}} = n_{\mathrm {i}} = \left\{ \begin{array}{lll} 0 &{} \text {for } x>-5~\mathrm{\mu m}\\ 0.57 \times 10^{21} (5-x) &{} \text {for } -5~\mathrm{\mu m}\le x \le -10~\mathrm{\mu m}\\ 2.85 \times 10^{21} &{} \text {for } x < -10~\mathrm{\mu m} \end{array}\right. \end{aligned}$$
(11)

where \(n_{\mathrm {e}}\equiv \rho _{\mathrm {e}}/m_{\mathrm {e}}\) and \(n_{\mathrm {i}}\equiv \rho _{\mathrm {i}}/m_{\mathrm {i}}\) are given in \({\hbox {cm}}^{\mathrm {-3}}\). The length in x direction at which the critical density \(n_{\mathrm {c}} = 1.75 \times 10^{\mathrm {21}}~ {\hbox {cm}}^{\mathrm {-3}}\) is reached is \(L=3.08~\mu \hbox {m}\). We add a weak uniform background density of \(10^{17}~ {\hbox {cm}}^{-3}\) to avoid divisions by zero in the algorithm and too strong discontinuity at the ramp onset. In this test, the uniform background is vacuum: \(\varepsilon _r=1\). For the plasma, we take \(m_{\mathrm {e}}= 9.11 \times 10^{-31}~\hbox {kg}\), \(m_{\mathrm {i}}=1837m_{\mathrm {e}}\) and \(\gamma =5/3\). The initial mean velocities and pressure are zero.

The laser pulse is a spatially Gaussian beam with a waist \(w_0 = 4~\mu \hbox {m}\) and is described temporally by a single period of a \(\sin ^2\) function (period \(T = 40~\hbox {fs}\)). The free-space wavelength is \(\lambda = 0.8~\mu \hbox {m}\) and the amplitude in free-space is \(E_{0} = 4.3 \times 10^{10}~\hbox {V/m}\). We choose this electric field amplitude to demonstrate the possibility of working with high field amplitudes with this algorithm. Note that the beam is invariant along z direction.

The number of points in x and y directions is \(N_{\mathrm {x}}=N_{\mathrm {y}}=512\) and \(N_{\mathrm {z}}=2\) is z direction. PML (resp. open) boundary conditions in x and y directions for PSATD (resp. fluid algorithm) are implemented. For fluids and fields, periodic boundary condition are used in z direction. The spatial step is \(\Delta x = \Delta y= \Delta z= 60 ~\hbox {nm}\) and the temporal step is \(\Delta = 96~\hbox {as}\).

Figure 3
figure 3

Numerical setup: A laser pulse in oblique incidence is injecting toward an overcritical plasma ramp. The laser pulse is reflected at the turning surface such as density \(n=n_c \cos ^2 \theta\).

In Fig. 4a, we plot the different momenta in x direction as function of the simulation time. These momenta are normalized to the absolute value of the x momentum \(P_{\mathrm {0}}\) of the incident pulse. To measure the normalization factor \(P_{\mathrm {0}}\), we performed beforehand the simulation without the plasma, and we measure the x momentum of the pulse defined by the x component of the Eq. (12) integrated over the simulation window.

The density of electromagnetic momentum is defined by33:

$$\begin{aligned} {\mathbf {P}}_{\mathrm {em}}= \varepsilon _0 {\mathbf {E}} \times {\mathbf {B}} \end{aligned}$$
(12)

The dashed red curve of Fig. 4a corresponds to the normalized electromagnetic x momentum density integrated in the simulation window. The dashed dotted blue curve corresponds to the normalized fluids x momentum integrated in the simulation window. The momentum of fluids is defined by:

$$\begin{aligned} \mathbf {P_{\mathrm {f}}} = \rho _{\mathrm {e}} {\mathbf {u}}_{\mathrm {e}} + \rho _{\mathrm {i}} {\mathbf {u}}_{\mathrm {i}} \end{aligned}$$
(13)

The black line of Fig. 4a is the sum of the electromagnetic and fluids x momentum.

We observe three main sequences in Fig. 4a:

  • 1: Since the laser pulse goes from the right to the left, the electromagnetic momentum along x (red dashed curve) decreases as the pulse enters into the simulation window (between \(t=0\) and \(t<50~\hbox {fs}\)). At \(t=50~\hbox {fs}\), the pulse is completely contained in the simulation window and has not yet interacted with the plasma ramp. We see that the electromagnetic x momentum corresponds to the incident pulse x momentum \(-P_{0}\).

  • 2: In the temporal window 70–130 fs, momentum exchange with the plasma takes place: the fluids momentum decreases until \(-2P_0\), whereas the electromagnetic x momentum increases until reaches \(+P_0\). This is the signature that the laser pulse transfers twice its initial momentum to the plasma during its reflection, as can be expected.

  • 3: Between 170 fs and 210 fs, the reflected pulse leaves the simulation window, thus the electromagnetic momentum goes back to zero.

We see that the momentum is preserved over the temporal window over which the pulse is fully enclosed within the simulation window. The error on the conservation of the total momentum is around 1%. It is reasonable in view of the chosen spatial and temporal steps. The numerical algorithm also preserves the conservation of momentum with a good accuracy.

Figure 4
figure 4

(a) Conservation of momentum and (b) conservation of energy during s-polarized pulse reflection over the plasma ramp. In the central white area, the pulse is fully in the numerical window and conservation of momentum and energy are preserved.

In Fig. 4b, we plot the linear density of energy as function of simulation time. The dashed red curve correspond to the electromagnetic energy density33

$$\begin{aligned} U_{\mathrm {em}} = \frac{1}{2} \left[ \varepsilon _0 \mathbf{E} ^2 + \frac{1}{\mu _0}{} \mathbf{B} ^2 \right] \end{aligned}$$
(14)

that we have integrated over the \(x-y\) plane. The dashed dotted blue (resp. dashed green) corresponds to the electron fluid (resp. ion fluid) energy density given by Eq. (2) and then integrated over the \(x-y\) plane. The total energy plotted in black line is defined as the sum of electromagnetic, electron fluid and ion fluid energies. The linear density of energy of the input pulse in the \(x-y\) plane can be calculated analytically and is given by: \(E_{\mathrm {Laser}} = \frac{E_{\mathrm {0}}^2}{2} \sqrt{\frac{\varepsilon _{\mathrm {0}}}{\mu _{\mathrm {0}}}} \frac{3}{8} T w_0 \sqrt{\frac{\pi }{2}} = 0.19~\hbox {J/m}\). This analytical linear density of energy is shown as a black dotted line in Fig. 4b.

We observe the three main sequences in Fig. 4b:

  • 1: The electromagnetic energy increases as the pulse enters into the numerical window between \(t=0\) and \(t<50~\hbox {fs}\). At \(t=50~\hbox {fs}\), the pulse is completely contained in the numerical window and has not yet interacted with the plasma ramp. The electromagnetic energy corresponds to the predicted analytical value \(E_{\mathrm {Laser}}\).

  • 2: In the temporal window 70–130 fs, energy exchange with the plasma takes place (the electron energy increases).

  • 3: Between 170 fs and 210 fs, the reflected pulse leaves the integration volume and the electromagnetic energy decreases. No electromagnetic energy remains in the simulation window. This is expected for s-polarized wave.

We remark the conservation of the energy when the pulse is fully in the simulation window. The error on the conservation the total energy is around 0.1%. The numerical algorithm also preserves the energy conservation with a good accuracy.

Additionally, we show in Fig. 5 the error induced by the algorithm on the conservation of energy and momentum as a function of time step \(\Delta t\). The calculations of errors are performed from simulations of s-polarized electromagnetic wave over a plasma ramp. In Fig. 5, we remark for \(\Delta t < 150~\hbox {as}\) that the numerical error remains below 0.4% for energy conservation (blue curve), and below 2.8% for momentum conservation (red curve). Furthermore, we noted a loss of stability of PSATD/Hydro code for simulations if \(\Delta t\) exceeds 150 as with an input intensity of \(2.5 \times 10^{14}~ {\hbox {W cm}}^{-2}\) .

Figure 5
figure 5

Numerical errors induced by the PSATD/Hydro code on conservation of energy (blue curve) and momentum (red curve). The errors were calculated from simulations of S-polarized electromagnetic wave over a plasma ramp, with different time step \(\Delta t\). All other parameters are identical to those of Fig. 4.

Wave conversion on plasma density ramp

In this second test, we consider the same numerical setup as shown in Fig. 3, but we inject a p-polarized laser pulse.

The energy of the system is plotted as a function of time in Fig. 6a. In the central white area, the error on the conservation the total energy is around 0.1%. Furthermore, we observe for the sequence \(4\) that a fraction of the input energy remains in the simulation box while the laser pulse has left. This is due to the phenomenon of wave conversion onto a inhomogeneous plasma, i.e. conversion of an electromagnetic wave into a plasma wave which occur only for p-polarization34.

The conversion factor depends in particular on the plasma density gradient and the angle of incidence. Obtaining analytical solutions to this difficult problem usually requires a number of approximations. We performed a series of simulations with different angles of incidence, and we plot (blue circles) in Fig. 6b the factor of the energy conversion as function of the quantity \(\tau ^2 = \left( \frac{2 \pi L}{\lambda }\right) ^{2/3}\sin ^2\theta\).

We compare conversion factors obtained with the PSATD/Hydrodynamic code (this work) and results of the literature. The PSATD/Hydro conversion factor curve is quantitatively superimposable to the one obtained the PSTD/hydro simulation (blue crosses) obtained in reference21. Our results are also in good agreement with the analytical results of Speziale et al. who described only the asymptotic behaviors34 for \(\tau \rightarrow 0\) and \(\tau \rightarrow \infty\), with the results of Hinkel-Lipsker et al.35 obtained for any value of \(\tau\) and also with those of Forslund et al. who have used Particle-In-Cell (PIC) simulations36. The fact that we injected a short pulse (polychromatic) gaussian beam instead a monochromatic plane wave can explain the tenuous differences. In addition, the analytical results of references Speziale et al.34 and Hinkel-Lipsker et al.35, have carried out assumptions that are not exactly fulfilled in our numerical test, such as the linearization of fluid equations. But overall, the results we obtained with the present solver are in good agreement with the state of the art.

Figure 6
figure 6

(a) Evolution of electromagnetic energy, fluid energy, and total energy as function of time for p-polarized incident pulse. In the central white area, the pulse is fully enclosed within the numerical window and the conservation of the total energy is preserved. (b) Mode conversion factor as a function of \(\tau ^2 = \left( \frac{2 \pi L}{\lambda }\right) ^{2/3}\sin ^2\theta\). Green circles are our numerical results with PSATD/Hydrodynamic code. Results from others references are shown for comparison: Hinkel-Lipsker analytical model (dotted black line)35, Speziale asymptotes (solid blue lines)34, Forslund PIC simulations36 (dashed orange line) and PSTD/Hydrodynamic (Blue crosses)21.

Discussion

In this section, we compare the benefits and drawbacks of PSATD/Hydro solver compared to PSTD/Hydro solver. We numerically simulate a single cycle pulse plane wave in normal incidence onto a plasma ramp. The laser wavelength and plasma parameters are identical to the ones of Fig. 3. The pulse amplitude is \(E_{\mathrm {0}}=4.3\times 10^{10}~\hbox {V/m}\). The computation is performed in 3D, with the same numerical sampling parameters as in Fig. 3. We use the periodic boundary conditions in y and z directions. For the PSTD/Hydro solver, the time-step is fixed to \(\Delta t =50~\hbox {as}\) since we are constraint by Courant Friedrichs Lewy (CFL) conditions22. In contrast, the time-step for the PSATD/Hydro solver is set to \(\Delta t =200~\hbox {as}\), as it is only constrained by the sampling of the laser and the plasma wave frequencies.

In Fig. 7a, we show a snapshot during propagation of the laser pulse with the different solvers. The snapshot is taken when the pulse has propagated through vacuum and just reaches the onset of the plasma ramp. We see that the PSATD/Hydro solver result (solid blue line) is precisely superimposed on the analytical solution in black dashed line. In contrast, the PSTD/Hydro solver (red dashed-dotted line) exhibits distortion of the laser pulse. Indeed, pre-pulses are generated by numerical dispersion of the PSTD algorithm. The amplitude of the last artifact pre-pulse (located at \(x\approx -5~\mu \hbox {m}\)) reaches around 15% of the amplitude of the main peaks.

In Fig. 7b, we plot the velocity component \(v_{\mathrm {z}}\) of the electron fluid at the same time of the snapshot of Fig. 7a. We observe that the laser pulse has not yet interacted with the plasma in the PSATD/Hydro simulation (blue line). However, in the PSTD/Hydro simulation (red dashed-dotted line), the artifact pre-pulses already interact with the plasma and accelerate the electrons to velocities around \(10^5~\hbox {m/s}\). This effect is obviously undesirable, particularly in the case of the simulation of few cycle laser pulses with plasmas37.

We also obtained better results in the PSATD/Hydro simulation whereas the time-step \(\Delta t\) was 4 times greater than those in PSTD/Hydro simulation.

The PSATD/Hydro solver is well suited to pulse propagation. Specifically, the fact that PSATD is not constrained by the CFL condition, releases the strong numerical link between spatial and temporal sampling. The computational gain is therefore particularly significant in the case where high spatial resolution is required together with less demanding temporal resolution. We finish this section by reminding that the PSATD method requires that the background medium permittivity is uniform.

Figure 7
figure 7

(a) Single-cycle pulse propagation with PSTD/Hydro solver (red dashed-dotted line) and with PSATD/Hydro solver (solid blue line). The laser pulse interacts in normal incidence on a plasma ramp starting at \(x \le -5~\mu \hbox {m}\) as shown in light blue on the figure. The PSATD/Hydro curve is superimposed on the analytical solution shown as a black dashed line. We observe artifact pre-pulses generated by numerical dispersion of PSTD in the plasma region. (b) Velocity component \(v_{\mathrm {z}}\) of electron fluid at the same time.

As a conclusion, we have developed a solver for the two-fluid plasma model based on a relatively simple technique, which does not necessitate staggered grids and which benefits of fundamentally having no numerical dispersion for the propagation of electromagnetic waves in absence of current. The algorithm relies on the PseudoSpectral Analytical Time-Domain (PSATD) technique which is a powerful method for propagating laser pulses, and on a combination of two-step Lax–Wendroff (LW) and fourth-order Runge–Kutta (RK4) for the fluid equations. We have demonstrated that the PSATD/Hydro solver preserves momentum and energy during a test with s-polarized laser pulse incident over a plasma ramp. The tests of wave conversion on plasma ramps have demonstrated an excellent quantitative agreement with numerical and analytical results of the state of the art. We have shown that PSATD/Hydro solver has two main advantages compared to the PSTD/Hydro solver: the pre-pulses generated by numerical dispersion are removed and the time-step is not constraint by CFL conditions. For simulations which require low temporal resolution and high spatial resolution, the gain in terms of computational resources with PSATD/Hydro solver can be really significant. The PSATD/Hydro solver is a computationally inexpensive but powerful tool for the study of laser-plasma interaction. An interesting future development would be the extension of the PSATD algorithm to take into account the dispersion of background permittivity \(\epsilon _{\mathrm {r}}\) with frequency.

Methods

Simulations were performed with Nvidia Tesla K40 GPU card. This card has 12 GB memory size, 2880 CUDA cores and 745 MHz processor core clock.