10 #ifndef IMPACTX_KICKER_H
11 #define IMPACTX_KICKER_H
31 static constexpr
auto name =
"Kicker";
48 amrex::ParticleReal ykick,
55 using BeamOptic::operator();
68 PType& AMREX_RESTRICT p,
69 amrex::ParticleReal & AMREX_RESTRICT px,
70 amrex::ParticleReal & AMREX_RESTRICT py,
71 amrex::ParticleReal & AMREX_RESTRICT pt,
72 [[maybe_unused]]
RefPart const & refpart)
const
74 using namespace amrex::literals;
77 amrex::ParticleReal
const x = p.pos(
RealAoS::x);
78 amrex::ParticleReal
const y = p.pos(
RealAoS::y);
79 amrex::ParticleReal
const t = p.pos(
RealAoS::t);
82 amrex::ParticleReal dpx =
m_xkick;
83 amrex::ParticleReal dpy =
m_ykick;
84 if (
m_unit == UnitSystem::Tm) {
85 dpx /= refpart.rigidity_Tm();
86 dpy /= refpart.rigidity_Tm();
90 amrex::ParticleReal pxout = px;
91 amrex::ParticleReal pyout = py;
92 amrex::ParticleReal ptout = pt;
111 using Thin::operator();
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
T_ParticleType ParticleType
Definition: ImpactX.cpp:32
amrex::ParticleReal m_ykick
horizontal kick strength
Definition: Kicker.H:115
UnitSystem
Definition: Kicker.H:35
@ Tm
in units of the magnetic rigidity of the reference particle
Definition: Kicker.H:37
@ dimensionless
Definition: Kicker.H:36
static constexpr auto name
Definition: Kicker.H:31
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: Kicker.H:67
UnitSystem m_unit
vertical kick strength
Definition: Kicker.H:116
amrex::ParticleReal m_xkick
Definition: Kicker.H:114
ImpactXParticleContainer::ParticleType PType
Definition: Kicker.H:32
Kicker(amrex::ParticleReal xkick, amrex::ParticleReal ykick, UnitSystem unit)
Definition: Kicker.H:47
@ 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