7#ifndef WARPX_PARTICLES_PUSHER_PUSHSELECTOR_H_
8#define WARPX_PARTICLES_PUSHER_PUSHSELECTOR_H_
41 amrex::ParticleReal& uy,
42 amrex::ParticleReal& uz,
43 const amrex::ParticleReal Ex,
44 const amrex::ParticleReal Ey,
45 const amrex::ParticleReal Ez,
46 const amrex::ParticleReal Bx,
47 const amrex::ParticleReal By,
48 const amrex::ParticleReal Bz,
50 const amrex::ParticleReal m,
51 const amrex::ParticleReal a_q,
55 const amrex::Real t_chi_max,
59 amrex::ParticleReal qp = a_q;
65 if constexpr (do_sync) {
69 if (chi < t_chi_max) {
#define AMREX_FORCE_INLINE
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void doParticleMomentumPush(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 int ion_lev, const amrex::ParticleReal m, const amrex::ParticleReal a_q, const ParticlePusherAlgo pusher_algo, const int do_crr, const amrex::Real t_chi_max, const amrex::Real dt)
Push momentum for a single particle.
Definition PushSelector.H:40
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdateMomentumBoris(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::ParticleReal q, const amrex::ParticleReal m, const amrex::Real dt)
Push the particle's positions over one timestep, given the value of its momenta ux,...
Definition UpdateMomentumBoris.H:16
AMREX_GPU_HOST_DEVICE AMREX_INLINE 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::ParticleReal q, const amrex::ParticleReal m, const amrex::Real dt)
Definition UpdateMomentumBorisWithRadiationReaction.H:21
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdateMomentumHigueraCary(T &ux, T &uy, T &uz, const T Ex, const T Ey, const T Ez, const T Bx, const T By, const T Bz, const T q, const T m, const amrex::Real dt)
Push the particle's positions over one timestep, given the value of its momenta ux,...
Definition UpdateMomentumHigueraCary.H:22
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdateMomentumVay(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::ParticleReal q, const amrex::ParticleReal m, const amrex::Real dt)
Push the particle's positions over one timestep, given the value of its momenta ux,...
Definition UpdateMomentumVay.H:20
ParticlePusherAlgo
Definition WarpXAlgorithmSelection.H:79
@ Boris
Definition WarpXAlgorithmSelection.H:79
@ HigueraCary
Definition WarpXAlgorithmSelection.H:79
@ Vay
Definition WarpXAlgorithmSelection.H:79
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real chi_ele_pos(const amrex::ParticleReal px, const amrex::ParticleReal py, const amrex::ParticleReal pz, const amrex::ParticleReal ex, const amrex::ParticleReal ey, const amrex::ParticleReal ez, const amrex::ParticleReal bx, const amrex::ParticleReal by, const amrex::ParticleReal bz)
Definition QedChiFunctions.H:53
__host__ __device__ void ignore_unused(const Ts &...)