10 #ifndef IMPACTX_REFERENCE_PARTICLE_H 11 #define IMPACTX_REFERENCE_PARTICLE_H 30 amrex::ParticleReal
s = 0.0;
31 amrex::ParticleReal
x = 0.0;
32 amrex::ParticleReal
y = 0.0;
33 amrex::ParticleReal
z = 0.0;
34 amrex::ParticleReal
t = 0.0;
35 amrex::ParticleReal
px = 0.0;
36 amrex::ParticleReal
py = 0.0;
37 amrex::ParticleReal
pz = 0.0;
38 amrex::ParticleReal
pt = 0.0;
39 amrex::ParticleReal
mass = 0.0;
50 amrex::ParticleReal
const ref_gamma = -
pt;
62 using namespace amrex::literals;
64 amrex::ParticleReal
const ref_gamma = -
pt;
65 amrex::ParticleReal
const ref_beta =
sqrt(1.0_prt - 1.0_prt/
pow(ref_gamma,2));
77 using namespace amrex::literals;
79 amrex::ParticleReal
const ref_gamma = -
pt;
80 amrex::ParticleReal
const ref_betagamma =
sqrt(
pow(ref_gamma, 2) - 1.0_prt);
92 using namespace amrex::literals;
95 return amrex::ParticleReal(mass * inv_MeV_invc2);
106 using namespace amrex::literals;
109 "set_mass_MeV: Mass cannot be zero!");
117 pz =
sqrt(
pow(pt, 2) - 1.0_prt);
131 using namespace amrex::literals;
133 amrex::ParticleReal
const ref_gamma = -
pt;
134 amrex::ParticleReal
const ref_energy =
mass_MeV() * (ref_gamma - 1.0_prt);
146 using namespace amrex::literals;
149 "set_energy_MeV: Set mass first!");
153 pt = -energy /
mass_MeV() - 1.0_prt;
154 pz =
sqrt(
pow(pt, 2) - 1.0_prt);
167 using namespace amrex::literals;
170 return amrex::ParticleReal(charge * inv_qe);
181 using namespace amrex::literals;
196 return charge /
mass;
202 #endif // IMPACTX_REFERENCE_PARTICLE_H amrex::ParticleReal x
horizontal position x, in meters
Definition: ReferenceParticle.H:31
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal energy_MeV() const
Definition: ReferenceParticle.H:129
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal mass_MeV() const
Definition: ReferenceParticle.H:90
amrex::ParticleReal pz
momentum in z, normalized to proper velocity
Definition: ReferenceParticle.H:37
static constexpr auto q_e
amrex::ParticleReal z
longitudinal position y, in meters
Definition: ReferenceParticle.H:33
amrex::ParticleReal py
momentum in y, normalized to proper velocity
Definition: ReferenceParticle.H:36
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal charge_qe() const
Definition: ReferenceParticle.H:165
Definition: ImpactX.cpp:31
amrex::ParticleReal px
momentum in x, normalized to proper velocity
Definition: ReferenceParticle.H:35
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal qm_qeeV() const
Definition: ReferenceParticle.H:194
amrex::ParticleReal pt
energy deviation, normalized by rest energy
Definition: ReferenceParticle.H:38
#define AMREX_ASSERT_WITH_MESSAGE(EX, MSG)
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & set_charge_qe(amrex::ParticleReal const charge_qe)
Definition: ReferenceParticle.H:179
static constexpr auto MeV_invc2
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
amrex::ParticleReal t
clock time * c in meters
Definition: ReferenceParticle.H:34
amrex::ParticleReal s
integrated orbit path length, in meters
Definition: ReferenceParticle.H:30
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & set_mass_MeV(amrex::ParticleReal const massE)
Definition: ReferenceParticle.H:104
Definition: ReferenceParticle.H:28
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > pow(const GpuComplex< T > &a_z, const T &a_y) noexcept
amrex::ParticleReal mass
reference rest mass, in kg
Definition: ReferenceParticle.H:39
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & set_energy_MeV(amrex::ParticleReal const energy)
Definition: ReferenceParticle.H:144
amrex::ParticleReal charge
reference charge, in C
Definition: ReferenceParticle.H:40
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal beta_gamma() const
Definition: ReferenceParticle.H:75
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal beta() const
Definition: ReferenceParticle.H:60
amrex::ParticleReal y
vertical position y, in meters
Definition: ReferenceParticle.H:32
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > sqrt(const GpuComplex< T > &a_z) noexcept
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal gamma() const
Definition: ReferenceParticle.H:48