Skip to content

Commit

Permalink
adding the circular polarization case
Browse files Browse the repository at this point in the history
  • Loading branch information
EyaDammak committed Dec 19, 2024
1 parent ec3c0cc commit ca1fda7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/laser/MultiLaser.H
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ public:
/** Get the geometry of the Laser Box */
const amrex::Geometry& GetLaserGeom () const { return m_laser_geom_3D; }

/** If the polarization is linear or circular */
bool LinearPolarization () const { return m_linear_polarization; }

/** If the laser geometry includes this slice
* \param[in] islice slice index
*/
Expand Down
8 changes: 7 additions & 1 deletion src/particles/plasma/PlasmaParticleContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,7 @@ LaserIonization (const int islice,
wp * PhysConstSI::m_e * PhysConstSI::c / PhysConstSI::q_e : 1;
const amrex::Real lambda0 = laser.GetLambda0();
const amrex::Real omega0 = 2.0 * MathConst::pi * phys_const.c / lambda0;
const bool linear_polarization = laser.LinearPolarization();

int * const ion_lev = soa_ion.GetIntData(PlasmaIdx::ion_lev).data();
const amrex::Real * const x_prev = soa_ion.GetRealData(PlasmaIdx::x_prev).data();
Expand Down Expand Up @@ -570,7 +571,12 @@ LaserIonization (const int islice,
std::pow(Ep, adk_power[ion_lev_loc]) *
std::exp( adk_exp_prefactor[ion_lev_loc]/Ep );

amrex::Real w_dtau_ac = w_dtau_dc * std::sqrt(Ep * laser_adk_prefactor[ion_lev_loc]);
amrex::Real w_dtau_ac;
if (linear_polarization) {
w_dtau_ac = w_dtau_dc * std::sqrt(Ep * laser_adk_prefactor[ion_lev_loc]);
} else {
w_dtau_ac = w_dtau_dc;
}

amrex::Real p = 1._rt - std::exp( - w_dtau_ac );

Expand Down

0 comments on commit ca1fda7

Please sign in to comment.