10 #ifndef IMPACTX_MULTIPOLE_H 11 #define IMPACTX_MULTIPOLE_H 25 static constexpr
auto name =
"Multipole";
35 amrex::ParticleReal
const K_normal,
36 amrex::ParticleReal
const K_skew )
42 for(
int n = 1;
n < m + 1;
n =
n + 1 ) {
58 PType& AMREX_RESTRICT p,
59 amrex::ParticleReal & AMREX_RESTRICT px,
60 amrex::ParticleReal & AMREX_RESTRICT py,
61 amrex::ParticleReal & AMREX_RESTRICT pt,
62 [[maybe_unused]]
RefPart const refpart)
const {
64 using namespace amrex::literals;
70 amrex::ParticleReal
const x = p.pos(0);
71 amrex::ParticleReal
const y = p.pos(1);
72 amrex::ParticleReal
const t = p.pos(2);
79 amrex::ParticleReal pxout = px;
80 amrex::ParticleReal pyout = py;
81 amrex::ParticleReal ptout = pt;
91 amrex::ParticleReal
const dpx = -1.0_prt*kick.m_real/
m_mfactorial;
92 amrex::ParticleReal
const dpy = kick.m_imag/
m_mfactorial;
117 [[maybe_unused]]
RefPart & AMREX_RESTRICT refpart)
const {
137 amrex::ParticleReal
ds ()
const 139 using namespace amrex::literals;
153 #endif // IMPACTX_MULTIPOLE_H
int m_multipole
Definition: Multipole.H:144
Definition: ImpactX.cpp:31
int m_mfactorial
multipole index
Definition: Multipole.H:145
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:57
Multipole(int const multipole, amrex::ParticleReal const K_normal, amrex::ParticleReal const K_skew)
Definition: Multipole.H:34
Definition: Multipole.H:23
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal ds() const
Definition: Multipole.H:137
amrex::ParticleReal m_Ks
integrated normal multipole coefficient
Definition: Multipole.H:147
Particle< NStructReal, NStructInt > ParticleType
Definition: ReferenceParticle.H:28
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > pow(const GpuComplex< T > &a_z, const T &a_y) noexcept
amrex::ParticleReal m_Kn
factorial of multipole index
Definition: Multipole.H:146
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int nslice() const
Definition: Multipole.H:127
static constexpr auto name
Definition: Multipole.H:25