10 #ifndef IMPACTX_MULTIPOLE_H
11 #define IMPACTX_MULTIPOLE_H
31 static constexpr
auto name =
"Multipole";
41 amrex::ParticleReal
const K_normal,
42 amrex::ParticleReal
const K_skew )
48 for(
int n = 1;
n < m + 1;
n =
n + 1 ) {
54 using BeamOptic::operator();
67 PType& AMREX_RESTRICT p,
68 amrex::ParticleReal & AMREX_RESTRICT px,
69 amrex::ParticleReal & AMREX_RESTRICT py,
70 amrex::ParticleReal & AMREX_RESTRICT pt,
71 [[maybe_unused]]
RefPart const & refpart)
const {
73 using namespace amrex::literals;
79 amrex::ParticleReal
const x = p.pos(
RealAoS::x);
80 amrex::ParticleReal
const y = p.pos(
RealAoS::y);
81 amrex::ParticleReal
const t = p.pos(
RealAoS::t);
88 amrex::ParticleReal pxout = px;
89 amrex::ParticleReal pyout = py;
90 amrex::ParticleReal ptout = pt;
100 amrex::ParticleReal
const dpx = -1.0_prt*kick.m_real/
m_mfactorial;
101 amrex::ParticleReal
const dpy = kick.m_imag/
m_mfactorial;
121 using Thin::operator();
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
T_ParticleType ParticleType
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > pow(const GpuComplex< T > &a_z, const T &a_y) noexcept
Definition: ImpactX.cpp:32
Definition: Multipole.H:30
Multipole(int const multipole, amrex::ParticleReal const K_normal, amrex::ParticleReal const K_skew)
Definition: Multipole.H:40
amrex::ParticleReal m_Kn
factorial of multipole index
Definition: Multipole.H:126
int m_mfactorial
multipole index
Definition: Multipole.H:125
ImpactXParticleContainer::ParticleType PType
Definition: Multipole.H:32
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(PType &AMREX_RESTRICT p, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] RefPart const &refpart) const
Definition: Multipole.H:66
amrex::ParticleReal m_Ks
integrated normal multipole coefficient
Definition: Multipole.H:127
static constexpr auto name
Definition: Multipole.H:31
int m_multipole
Definition: Multipole.H:124
@ x
position in x [m] (at fixed s OR fixed t)
Definition: ImpactXParticleContainer.H:42
@ y
position in y [m] (at fixed s OR fixed t)
Definition: ImpactXParticleContainer.H:43
@ t
c * time-of-flight [m] (at fixed s)
Definition: ImpactXParticleContainer.H:44
Definition: ReferenceParticle.H:30
Definition: beamoptic.H:135
Definition: nofinalize.H:22