7 #ifndef WARPX_PARTICLES_PUSHER_PUSHSELECTOR_H_ 8 #define WARPX_PARTICLES_PUSHER_PUSHSELECTOR_H_ 48 amrex::ParticleReal&
ux,
49 amrex::ParticleReal& uy,
50 amrex::ParticleReal&
uz,
51 const amrex::ParticleReal Ex,
52 const amrex::ParticleReal Ey,
53 const amrex::ParticleReal Ez,
54 const amrex::ParticleReal Bx,
55 const amrex::ParticleReal By,
56 const amrex::ParticleReal Bz,
58 const amrex::ParticleReal m,
59 const amrex::ParticleReal q,
60 const int pusher_algo,
65 const amrex::Real t_chi_max,
69 if (do_copy) copyAttribs(i);
76 if (chi < t_chi_max) {
86 amrex::ParticleReal
x, y,
z;
87 GetPosition(i, x, y, z);
89 SetPosition(i, x, y, z);
94 amrex::ParticleReal
x, y,
z;
95 GetPosition(i, x, y, z);
97 SetPosition(i, x, y, z);
100 amrex::ParticleReal
qp = q;
101 if (ion_lev) { qp *= ion_lev; }
105 amrex::ParticleReal
x, y,
z;
106 GetPosition(i, x, y, z);
108 SetPosition(i, x, y, z);
111 amrex::ParticleReal
qp = q;
112 if (ion_lev) { qp *= ion_lev; }
116 amrex::ParticleReal
x, y,
z;
117 GetPosition(i, x, y, z);
119 SetPosition(i, x, y, z);
121 amrex::ParticleReal
qp = q;
122 if (ion_lev){ qp *= ion_lev; }
126 amrex::ParticleReal
x, y,
z;
127 GetPosition(i, x, y, z);
129 SetPosition(i, x, y, z);
131 amrex::ParticleReal
qp = q;
132 if (ion_lev){ qp *= ion_lev; }
136 amrex::ParticleReal
x, y,
z;
137 GetPosition(i, x, y, z);
139 SetPosition(i, x, y, z);
145 #endif // WARPX_PARTICLES_PUSHER_SELECTOR_H_
def x
Definition: read_lab_particles.py:26
def uz
Definition: read_lab_particles.py:30
int dt
Definition: Stencil.py:468
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, uy, uz
Definition: UpdateMomentumVay.H:20
Definition: WarpXAlgorithmSelection.H:58
def z
Definition: read_lab_particles.py:27
#define AMREX_FORCE_INLINE
Functor that creates copies of the current particle positions and momenta for later use...
Definition: CopyParticleAttribs.H:21
void Abort(const std::string &msg)
i
Definition: check_interp_points_and_weights.py:173
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
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdateMomentumHigueraCary(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, uy, uz
Definition: UpdateMomentumHigueraCary.H:22
Functor that can be used to extract the positions of the macroparticles inside a ParallelFor kernel...
Definition: GetAndSetPosition.H:52
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
Functor that can be used to modify the positions of the macroparticles, inside a ParallelFor kernel...
Definition: GetAndSetPosition.H:149
def ux
Definition: read_lab_particles.py:29
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdatePosition(amrex::ParticleReal &x, amrex::ParticleReal &y, amrex::ParticleReal &z, const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz, const amrex::Real dt)
Push the particle's positions over one timestep, given the value of its momenta ux, uy, uz
Definition: UpdatePosition.H:21
Definition: WarpXAlgorithmSelection.H:59
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, uy, uz
Definition: UpdateMomentumBoris.H:16
Definition: WarpXAlgorithmSelection.H:60
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void doParticlePush(const GetParticlePosition &GetPosition, const SetParticlePosition &SetPosition, const CopyParticleAttribs ©Attribs, const long i, 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 q, const int pusher_algo, const int do_crr, const int do_copy, const int do_sync, const amrex::Real t_chi_max, const amrex::Real dt)
Push position and momentum for a single particle.
Definition: PushSelector.H:44