10#ifndef IMPACTX_INITIALIZATION_INITDISTRIBUTION_H
11#define IMPACTX_INITIALIZATION_INITDISTRIBUTION_H
50 std::optional<amrex::ParticleReal> intensity = std::nullopt
66 template <
typename T_Distribution>
163 amrex::ParticleReal& lambdax, amrex::ParticleReal& lambday, amrex::ParticleReal& lambdat,
164 amrex::ParticleReal& lambdapx,amrex::ParticleReal& lambdapy, amrex::ParticleReal& lambdapt,
165 amrex::ParticleReal& muxpx, amrex::ParticleReal& muypy, amrex::ParticleReal& mutpt,
166 amrex::ParticleReal& meanx, amrex::ParticleReal& meany, amrex::ParticleReal& meant,
167 amrex::ParticleReal& meanpx, amrex::ParticleReal& meanpy, amrex::ParticleReal& meanpt,
168 amrex::ParticleReal& dispx, amrex::ParticleReal& disppx, amrex::ParticleReal& dispy, amrex::ParticleReal& disppy
201 amrex::ParticleReal& lambdax, amrex::ParticleReal& lambday, amrex::ParticleReal& lambdat,
202 amrex::ParticleReal& lambdapx,amrex::ParticleReal& lambdapy, amrex::ParticleReal& lambdapt,
203 amrex::ParticleReal& muxpx, amrex::ParticleReal& muypy, amrex::ParticleReal& mutpt,
204 amrex::ParticleReal& meanx, amrex::ParticleReal& meany, amrex::ParticleReal& meant,
205 amrex::ParticleReal& meanpx, amrex::ParticleReal& meanpy, amrex::ParticleReal& meanpt,
206 amrex::ParticleReal& dispx, amrex::ParticleReal& disppx, amrex::ParticleReal& dispy, amrex::ParticleReal& disppy
#define AMREX_FORCE_INLINE
std::variant< Empty, Gaussian, Kurth4D, Kurth6D, KVdist, Thermal, Triangle, Semigaussian, Waterbag > KnownDistributions
Definition All.H:28
Definition AmrCoreData.cpp:18
void set_distribution_parameters_from_phase_space_inputs(amrex::ParmParse const &pp_dist, amrex::ParticleReal &lambdax, amrex::ParticleReal &lambday, amrex::ParticleReal &lambdat, amrex::ParticleReal &lambdapx, amrex::ParticleReal &lambdapy, amrex::ParticleReal &lambdapt, amrex::ParticleReal &muxpx, amrex::ParticleReal &muypy, amrex::ParticleReal &mutpt, amrex::ParticleReal &meanx, amrex::ParticleReal &meany, amrex::ParticleReal &meant, amrex::ParticleReal &meanpx, amrex::ParticleReal &meanpy, amrex::ParticleReal &meanpt, amrex::ParticleReal &dispx, amrex::ParticleReal &disppx, amrex::ParticleReal &dispy, amrex::ParticleReal &disppy)
Definition InitDistribution.cpp:491
RefPart read_reference_particle(amrex::ParmParse const &pp_dist)
Definition InitDistribution.cpp:39
distribution::KnownDistributions read_distribution(amrex::ParmParse const &pp_dist)
Definition InitDistribution.cpp:79
Envelope create_envelope(distribution::KnownDistributions const &distr, std::optional< amrex::ParticleReal > intensity=std::nullopt)
Definition InitDistribution.cpp:222
void set_distribution_parameters_from_twiss_inputs(amrex::ParmParse const &pp_dist, amrex::ParticleReal &lambdax, amrex::ParticleReal &lambday, amrex::ParticleReal &lambdat, amrex::ParticleReal &lambdapx, amrex::ParticleReal &lambdapy, amrex::ParticleReal &lambdapt, amrex::ParticleReal &muxpx, amrex::ParticleReal &muypy, amrex::ParticleReal &mutpt, amrex::ParticleReal &meanx, amrex::ParticleReal &meany, amrex::ParticleReal &meant, amrex::ParticleReal &meanpx, amrex::ParticleReal &meanpy, amrex::ParticleReal &meanpt, amrex::ParticleReal &dispx, amrex::ParticleReal &disppx, amrex::ParticleReal &dispy, amrex::ParticleReal &disppy)
Definition InitDistribution.cpp:411
~InitSingleParticleData()=default
amrex::ParticleReal *const AMREX_RESTRICT m_part_px
Definition InitDistribution.H:127
amrex::ParticleReal *const AMREX_RESTRICT m_part_pt
Definition InitDistribution.H:129
amrex::ParticleReal *const AMREX_RESTRICT m_part_t
Definition InitDistribution.H:126
amrex::ParticleReal *const AMREX_RESTRICT m_part_py
Definition InitDistribution.H:128
InitSingleParticleData()=delete
amrex::ParticleReal *const AMREX_RESTRICT m_part_y
Definition InitDistribution.H:125
amrex::ParticleReal *const AMREX_RESTRICT m_part_x
Definition InitDistribution.H:124
InitSingleParticleData(InitSingleParticleData const &)=default
InitSingleParticleData(InitSingleParticleData &&)=default
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void operator()(amrex::Long i, amrex::RandomEngine const &engine) const
Definition InitDistribution.H:106
InitSingleParticleData(T_Distribution distribution, amrex::ParticleReal *AMREX_RESTRICT part_x, amrex::ParticleReal *AMREX_RESTRICT part_y, amrex::ParticleReal *AMREX_RESTRICT part_t, amrex::ParticleReal *AMREX_RESTRICT part_px, amrex::ParticleReal *AMREX_RESTRICT part_py, amrex::ParticleReal *AMREX_RESTRICT part_pt)
Definition InitDistribution.H:79
T_Distribution const m_distribution
Definition InitDistribution.H:123