WarpX
Functions
PushSelector.H File Reference
#include "Particles/Pusher/UpdatePosition.H"
#include "Particles/Pusher/UpdateMomentumBoris.H"
#include "Particles/Pusher/UpdateMomentumVay.H"
#include "Particles/Pusher/UpdateMomentumBorisWithRadiationReaction.H"
#include "Particles/Pusher/UpdateMomentumHigueraCary.H"
#include "Particles/WarpXParticleContainer.H"
#include <AMReX_REAL.H>
#include <limits>

Go to the source code of this file.

Functions

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void doParticlePush (const GetParticlePosition &GetPosition, const SetParticlePosition &SetPosition, const CopyParticleAttribs &copyAttribs, 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::Real m, const amrex::Real 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. More...
 

Function Documentation

◆ doParticlePush()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void doParticlePush ( const GetParticlePosition GetPosition,
const SetParticlePosition SetPosition,
const CopyParticleAttribs copyAttribs,
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::Real  m,
const amrex::Real  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.

/param GetPosition : A functor for returning the particle position. /param GetPosition : A functor for setting the particle position. /param copyAttribs : A functor for storing the old u and x /param i : The index of the particle to work on

Parameters
ux,uy,uz: Particle momentum
Ex,Ey,Ez: Electric field on particles.
Bx,By,Bz: Magnetic field on particles.
ion_lev: Ionization level of this particle (0 if ioniziation not on)
m: Mass of this species.
q: Charge of this species.
pusher_algo: 0: Boris, 1: Vay, 2: HigueraCary
do_crr: Whether to do the classical radiation reaction
do_crr: Whether to copy the old x and u for the BTD
do_sync: Whether to include quantum synchrotron radiation (QSR)
t_chi_max: Cutoff chi for QSR
dt: Time step size