10 #ifndef IMPACTX_PARTICLE_CONTAINER_H 11 #define IMPACTX_PARTICLE_CONTAINER_H 26 #include <unordered_map> 49 static constexpr
auto names_t = {
"position_x",
"position_y",
"position_z" };
51 static constexpr
auto names_s = {
"position_x",
"position_y",
"position_ct" };
52 static_assert(names_t.size() ==
nattribs);
53 static_assert(names_s.size() ==
nattribs);
72 static constexpr
auto names_t = {
"momentum_x",
"momentum_y",
"momentum_z",
"qmm",
"weighting" };
74 static constexpr
auto names_s = {
"momentum_x",
"momentum_y",
"momentum_t",
"qmm",
"weighting" };
75 static_assert(names_t.size() ==
nattribs);
76 static_assert(names_s.size() ==
nattribs);
101 ParIter (ContainerType& pc,
int level);
160 AddNParticles (
int lev,
167 amrex::ParticleReal
const & qm,
168 amrex::ParticleReal
const & bchchg);
175 SetRefParticle (
RefPart const refpart);
189 GetRefParticle ()
const;
194 void SetRefParticleEdge ();
207 void SetParticleShape ();
217 void SetParticleShape (
int const order);
224 amrex::ParticleReal, amrex::ParticleReal,
225 amrex::ParticleReal, amrex::ParticleReal,
226 amrex::ParticleReal, amrex::ParticleReal>
227 MinAndMaxPositions ();
234 amrex::ParticleReal, amrex::ParticleReal,
235 amrex::ParticleReal, amrex::ParticleReal,
236 amrex::ParticleReal, amrex::ParticleReal>
237 MeanAndStdPositions ();
249 DepositCharge (std::unordered_map<int, amrex::MultiFab> & rho,
264 #endif // IMPACTX_PARTICLE_CONTAINER_H charge to mass ratio, in q_e/m_e (q_e/eV) TODO: rename to qm_m
Definition: ImpactXParticleContainer.H:66
momentum in z, scaled by the magnitude of the reference momentum [unitless] (at fixed t) OR energy de...
Definition: ImpactXParticleContainer.H:65
Definition: ImpactXParticleContainer.H:95
particle weight, unitless
Definition: ImpactXParticleContainer.H:67
momentum in y, scaled by the magnitude of the reference momentum [unitless] (at fixed t or s) ...
Definition: ImpactXParticleContainer.H:64
Definition: ImpactX.cpp:31
the number of attributes above (always last)
Definition: ImpactXParticleContainer.H:45
momentum in x, scaled by the magnitude of the reference momentum [unitless] (at fixed t or s) ...
Definition: ImpactXParticleContainer.H:63
Definition: ImpactXParticleContainer.H:38
position in y [m] (at fixed t OR fixed s)
Definition: ImpactXParticleContainer.H:43
int GetParticleShape() const
Definition: ImpactXParticleContainer.H:199
static constexpr auto names_t
named labels for fixed t
Definition: ImpactXParticleContainer.H:49
static constexpr auto names_s
named labels for fixed s
Definition: ImpactXParticleContainer.H:51
Definition: ImpactXParticleContainer.H:111
std::optional< int > m_particle_shape
the particle shape
Definition: ImpactXParticleContainer.H:258
Definition: ReferenceParticle.H:29
position in x [m] (at fixed t OR fixed s)
Definition: ImpactXParticleContainer.H:42
Definition: ImpactXParticleContainer.H:126
RefPart m_refpart
the reference particle for the beam in the particle container
Definition: ImpactXParticleContainer.H:255
Definition: ImpactXParticleContainer.H:82
position in z [m] (at fixed t) OR time-of-flight ct [m] (at fixed s)
Definition: ImpactXParticleContainer.H:44
Definition: ImpactXParticleContainer.H:59