aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H')
-rw-r--r--Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H56
1 files changed, 28 insertions, 28 deletions
diff --git a/Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H b/Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H
index 6f0eae476..b637f865a 100644
--- a/Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H
+++ b/Source/Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H
@@ -22,17 +22,17 @@ void UpdateMomentumBorisWithRadiationReaction(
amrex::ParticleReal& ux, amrex::ParticleReal& uy, amrex::ParticleReal& uz,
const amrex::ParticleReal Ex, const amrex::ParticleReal Ey, const amrex::ParticleReal Ez,
const amrex::ParticleReal Bx, const amrex::ParticleReal By, const amrex::ParticleReal Bz,
- const amrex::Real q, const amrex::Real m, const amrex::Real dt )
+ const amrex::ParticleReal q, const amrex::ParticleReal m, const amrex::Real dt )
{
using namespace amrex::literals;
//RR algorithm needs to store old value of the normalized momentum
- const amrex::Real ux_old = ux;
- const amrex::Real uy_old = uy;
- const amrex::Real uz_old = uz;
+ const amrex::ParticleReal ux_old = ux;
+ const amrex::ParticleReal uy_old = uy;
+ const amrex::ParticleReal uz_old = uz;
//Useful constant
- constexpr amrex::Real inv_c2 = 1._rt/(PhysConst::c*PhysConst::c);
+ constexpr amrex::ParticleReal inv_c2 = 1._prt/(PhysConst::c*PhysConst::c);
//Call to regular Boris pusher
UpdateMomentumBoris(
@@ -42,44 +42,44 @@ void UpdateMomentumBorisWithRadiationReaction(
q, m, dt );
//Estimation of the normalized momentum at intermediate (integer) time
- const amrex::Real ux_n = (ux+ux_old)*0.5_rt;
- const amrex::Real uy_n = (uy+uy_old)*0.5_rt;
- const amrex::Real uz_n = (uz+uz_old)*0.5_rt;
+ const amrex::ParticleReal ux_n = (ux+ux_old)*0.5_prt;
+ const amrex::ParticleReal uy_n = (uy+uy_old)*0.5_prt;
+ const amrex::ParticleReal uz_n = (uz+uz_old)*0.5_prt;
// Compute Lorentz factor (and inverse) at intermediate (integer) time
- const amrex::Real gamma_n = std::sqrt( 1._rt +
+ const amrex::ParticleReal gamma_n = std::sqrt( 1._prt +
(ux_n*ux_n + uy_n*uy_n + uz_n*uz_n)*inv_c2);
- const amrex::Real inv_gamma_n = 1.0_rt/gamma_n;
+ const amrex::ParticleReal inv_gamma_n = 1.0_prt/gamma_n;
//Estimation of the velocity at intermediate (integer) time
- const amrex::Real vx_n = ux_n*inv_gamma_n;
- const amrex::Real vy_n = uy_n*inv_gamma_n;
- const amrex::Real vz_n = uz_n*inv_gamma_n;
- const amrex::Real bx_n = vx_n/PhysConst::c;
- const amrex::Real by_n = vy_n/PhysConst::c;
- const amrex::Real bz_n = vz_n/PhysConst::c;
+ const amrex::ParticleReal vx_n = ux_n*inv_gamma_n;
+ const amrex::ParticleReal vy_n = uy_n*inv_gamma_n;
+ const amrex::ParticleReal vz_n = uz_n*inv_gamma_n;
+ const amrex::ParticleReal bx_n = vx_n/PhysConst::c;
+ const amrex::ParticleReal by_n = vy_n/PhysConst::c;
+ const amrex::ParticleReal bz_n = vz_n/PhysConst::c;
//Lorentz force over charge
- const amrex::Real flx_q = (Ex + vy_n*Bz - vz_n*By);
- const amrex::Real fly_q = (Ey + vz_n*Bx - vx_n*Bz);
- const amrex::Real flz_q = (Ez + vx_n*By - vy_n*Bx);
- const amrex::Real fl_q2 = flx_q*flx_q + fly_q*fly_q + flz_q*flz_q;
+ const amrex::ParticleReal flx_q = (Ex + vy_n*Bz - vz_n*By);
+ const amrex::ParticleReal fly_q = (Ey + vz_n*Bx - vx_n*Bz);
+ const amrex::ParticleReal flz_q = (Ez + vx_n*By - vy_n*Bx);
+ const amrex::ParticleReal fl_q2 = flx_q*flx_q + fly_q*fly_q + flz_q*flz_q;
//Calculation of auxiliary quantities
- const amrex::Real bdotE = (bx_n*Ex + by_n*Ey + bz_n*Ez);
- const amrex::Real bdotE2 = bdotE*bdotE;
- const amrex::Real coeff = gamma_n*gamma_n*(fl_q2-bdotE2);
+ const amrex::ParticleReal bdotE = (bx_n*Ex + by_n*Ey + bz_n*Ez);
+ const amrex::ParticleReal bdotE2 = bdotE*bdotE;
+ const amrex::ParticleReal coeff = gamma_n*gamma_n*(fl_q2-bdotE2);
//Radiation reaction constant
- const amrex::Real q_over_mc = q/(m*PhysConst::c);
- const amrex::Real RRcoeff = (2.0_rt/3.0_rt)*PhysConst::r_e*q_over_mc*q_over_mc;
+ const amrex::ParticleReal q_over_mc = q/(m*PhysConst::c);
+ const amrex::ParticleReal RRcoeff = (2.0_prt/3.0_prt)*PhysConst::r_e*q_over_mc*q_over_mc;
//Compute the components of the RR force
- const amrex::Real frx =
+ const amrex::ParticleReal frx =
RRcoeff*(PhysConst::c*(fly_q*Bz - flz_q*By) + bdotE*Ex - coeff*bx_n);
- const amrex::Real fry =
+ const amrex::ParticleReal fry =
RRcoeff*(PhysConst::c*(flz_q*Bx - flx_q*Bz) + bdotE*Ey - coeff*by_n);
- const amrex::Real frz =
+ const amrex::ParticleReal frz =
RRcoeff*(PhysConst::c*(flx_q*By - fly_q*Bx) + bdotE*Ez - coeff*bz_n);
//Update momentum using the RR force