aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/ElementaryProcess/QEDPairGeneration.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/ElementaryProcess/QEDPairGeneration.H')
-rw-r--r--Source/Particles/ElementaryProcess/QEDPairGeneration.H51
1 files changed, 13 insertions, 38 deletions
diff --git a/Source/Particles/ElementaryProcess/QEDPairGeneration.H b/Source/Particles/ElementaryProcess/QEDPairGeneration.H
index 45e71a583..e90b2e5c3 100644
--- a/Source/Particles/ElementaryProcess/QEDPairGeneration.H
+++ b/Source/Particles/ElementaryProcess/QEDPairGeneration.H
@@ -106,14 +106,6 @@ public:
{
using namespace amrex;
- constexpr ParticleReal me = PhysConst::m_e;
- constexpr ParticleReal one_over_me = 1._prt/me;
-
- const ParticleReal w = src.m_rdata[PIdx::w][i_src];
- const ParticleReal ux = src.m_rdata[PIdx::ux][i_src];
- const ParticleReal uy = src.m_rdata[PIdx::uy][i_src];
- const ParticleReal uz = src.m_rdata[PIdx::uz][i_src];
-
// gather E and B
amrex::ParticleReal xp, yp, zp;
m_get_position(i_src, xp, yp, zp);
@@ -130,43 +122,26 @@ public:
m_dx_arr, m_xyzmin_arr, m_lo, m_n_rz_azimuthal_modes,
m_nox, m_galerkin_interpolation);
- const auto px = ux*me;
- const auto py = uy*me;
- const auto pz = uz*me;
-
- auto e_w = 0.0_rt;
- auto p_w = 0.0_rt;
- auto e_px = 0.0_rt;
- auto e_py = 0.0_rt;
- auto e_pz = 0.0_rt;
- auto p_px = 0.0_rt;
- auto p_py = 0.0_rt;
- auto p_pz = 0.0_rt;
-
//Despite the names of the variables, positrons and electrons
//can be exchanged, since the physical process is completely
//symmetric with respect to this exchange.
- m_generate_functor.operator()<1>(
- px, py, pz,
+ const auto& ux = src.m_rdata[PIdx::ux][i_src];
+ const auto& uy = src.m_rdata[PIdx::uy][i_src];
+ const auto& uz = src.m_rdata[PIdx::uz][i_src];
+ auto& e_ux = dst1.m_rdata[PIdx::ux][i_dst1];
+ auto& e_uy = dst1.m_rdata[PIdx::uy][i_dst1];
+ auto& e_uz = dst1.m_rdata[PIdx::uz][i_dst1];
+ auto& p_ux = dst2.m_rdata[PIdx::ux][i_dst2];
+ auto& p_uy = dst2.m_rdata[PIdx::uy][i_dst2];
+ auto& p_uz = dst2.m_rdata[PIdx::uz][i_dst2];
+ m_generate_functor(
+ ux, uy, uz,
ex, ey, ez,
bx, by, bz,
- w,
- &e_px, &e_py, &e_pz,
- &p_px, &p_py, &p_pz,
- &e_w, &p_w);
-
- dst1.m_rdata[PIdx::w][i_dst1] = e_w;
- dst1.m_rdata[PIdx::ux][i_dst1] = e_px*one_over_me;
- dst1.m_rdata[PIdx::uy][i_dst1] = e_py*one_over_me;
- dst1.m_rdata[PIdx::uz][i_dst1] = e_pz*one_over_me;
-
- dst2.m_rdata[PIdx::w][i_dst2] = p_w;
- dst2.m_rdata[PIdx::ux][i_dst2] = p_px*one_over_me;
- dst2.m_rdata[PIdx::uy][i_dst2] = p_py*one_over_me;
- dst2.m_rdata[PIdx::uz][i_dst2] = p_pz*one_over_me;
+ e_ux, e_uy, e_uz,
+ p_ux, p_uy, p_uz);
src.m_aos[i_src].id() = -1; //destroy photon after pair generation
-
}
private: