10 #ifndef IMPACTX_DISTRIBUTION_GAUSSIAN
11 #define IMPACTX_DISTRIBUTION_GAUSSIAN
37 amrex::ParticleReal sigx,
38 amrex::ParticleReal sigy,
39 amrex::ParticleReal sigt,
40 amrex::ParticleReal sigpx,
41 amrex::ParticleReal sigpy,
42 amrex::ParticleReal sigpt,
43 amrex::ParticleReal muxpx=0.0,
44 amrex::ParticleReal muypy=0.0,
45 amrex::ParticleReal mutpt=0.0
59 void initialize ([[maybe_unused]] amrex::ParticleReal bunch_charge, [[maybe_unused]]
RefPart const & ref)
84 amrex::ParticleReal & AMREX_RESTRICT x,
85 amrex::ParticleReal & AMREX_RESTRICT y,
86 amrex::ParticleReal & AMREX_RESTRICT t,
87 amrex::ParticleReal & AMREX_RESTRICT px,
88 amrex::ParticleReal & AMREX_RESTRICT py,
89 amrex::ParticleReal & AMREX_RESTRICT pt,
93 using namespace amrex::literals;
96 amrex::ParticleReal ln1,u1,u2;
97 amrex::ParticleReal root,a1,a2;
104 x = ln1*cos(2_prt*
pi*u2);
105 px = ln1*sin(2_prt*
pi*u2);
110 y = ln1*cos(2_prt*
pi*u2);
111 py = ln1*sin(2_prt*
pi*u2);
116 t = ln1*cos(2_prt*
pi*u2);
117 pt = ln1*sin(2_prt*
pi*u2);
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
static constexpr amrex::Real pi
constexpr std::enable_if_t< std::is_floating_point< T >::value, T > pi()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > log(const GpuComplex< T > &a_z) noexcept
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > sqrt(const GpuComplex< T > &a_z) noexcept
@ t
fixed t as the independent variable
Definition: ReferenceParticle.H:30
Definition: Gaussian.H:26
void initialize([[maybe_unused]] amrex::ParticleReal bunch_charge, [[maybe_unused]] RefPart const &ref)
Definition: Gaussian.H:59
amrex::ParticleReal m_sigmaPy
Definition: Gaussian.H:139
amrex::ParticleReal m_muypy
Definition: Gaussian.H:140
amrex::ParticleReal m_sigmaX
Definition: Gaussian.H:138
amrex::ParticleReal m_sigmaT
Definition: Gaussian.H:138
amrex::ParticleReal m_sigmaY
Definition: Gaussian.H:138
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, amrex::ParticleReal &AMREX_RESTRICT t, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, amrex::RandomEngine const &engine) const
Definition: Gaussian.H:83
amrex::ParticleReal m_muxpx
RMS momentum.
Definition: Gaussian.H:140
Gaussian(amrex::ParticleReal sigx, amrex::ParticleReal sigy, amrex::ParticleReal sigt, amrex::ParticleReal sigpx, amrex::ParticleReal sigpy, amrex::ParticleReal sigpt, amrex::ParticleReal muxpx=0.0, amrex::ParticleReal muypy=0.0, amrex::ParticleReal mutpt=0.0)
Definition: Gaussian.H:36
amrex::ParticleReal m_sigmaPt
Definition: Gaussian.H:139
amrex::ParticleReal m_sigmaPx
related RMS sizes (length)
Definition: Gaussian.H:139
void finalize()
Definition: Gaussian.H:68
amrex::ParticleReal m_mutpt
Definition: Gaussian.H:140