8#ifndef WARPX_PARTICLES_KINETIC_ENERGY_H_
9#define WARPX_PARTICLES_KINETIC_ENERGY_H_
34 template <
typename T = amrex::ParticleReal>
37 const amrex::ParticleReal ux,
const amrex::ParticleReal uy,
const amrex::ParticleReal uz,
const amrex::ParticleReal mass)
39 using namespace amrex;
41 constexpr auto one =
static_cast<T
>(1.0);
46 const auto u2 =
static_cast<T
>(ux*ux + uy*uy + uz*uz);
48 return one/(one + gamma)*
static_cast<T
>(mass)*u2;
62 const amrex::ParticleReal ux,
const amrex::ParticleReal uy,
const amrex::ParticleReal uz)
68 return me_c * std::sqrt(ux*ux + uy*uy + uz*uz);
#define AMREX_GPU_HOST_DEVICE
Definition KineticEnergy.H:20
AMREX_GPU_HOST_DEVICE AMREX_INLINE amrex::ParticleReal KineticEnergyPhotons(const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz)
Computes the kinetic energy of a photon.
Definition KineticEnergy.H:61
AMREX_GPU_HOST_DEVICE AMREX_INLINE T KineticEnergy(const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz, const amrex::ParticleReal mass)
Computes the kinetic energy of a particle. This method should not be used with photons.
Definition KineticEnergy.H:36
constexpr auto c
vacuum speed of light [m/s]
Definition constant.H:149
constexpr auto inv_c2_v
inverse of the square of the vacuum speed of light [s^2/m^2] (variable template)
Definition constant.H:146
constexpr auto m_e
electron mass [kg]
Definition constant.H:161