10#ifndef IMPACTX_INTEGRATORS_H_
11#define IMPACTX_INTEGRATORS_H_
37 template <
typename T_Element>
44 T_Element
const & element
58 for(
int j=0; j < nsteps; ++j)
60 element.map1(tau1,refpart,zeval);
61 element.map2(tau2,refpart,zeval);
62 element.map1(tau1,refpart,zeval);
80 template <
typename T_Element>
87 T_Element
const & element
102 for(
int j=0; j < nsteps; ++j)
104 element.map1(tau1,refpart,zeval);
105 element.map2(tau2,refpart,zeval);
106 element.map3(tau3,refpart,zeval);
107 element.map2(tau2,refpart,zeval);
108 element.map1(tau1,refpart,zeval);
129 template <
typename T_Element>
136 T_Element
const & element
153 for (
int j=0; j < nsteps; ++j)
155 element.map1(tau1,refpart,zeval);
156 element.map2(tau2,refpart,zeval);
157 element.map1(tau3,refpart,zeval);
158 element.map2(tau4,refpart,zeval);
159 element.map1(tau3,refpart,zeval);
160 element.map2(tau2,refpart,zeval);
161 element.map1(tau1,refpart,zeval);
180 template <
typename T_Real,
typename T_Element>
188 T_Element
const & element
202 for(
int j=0; j < nsteps; ++j)
204 element.map1(tau1,particle,zeval,refpart);
205 element.map2(tau2,particle,zeval,refpart);
206 element.map1(tau1,particle,zeval,refpart);
229 template <
typename T_Real,
typename T_Element>
237 T_Element
const & element
254 for (
int j=0; j < nsteps; ++j)
256 element.map1(tau1,particle,zeval,refpart);
257 element.map2(tau2,particle,zeval,refpart);
258 element.map1(tau3,particle,zeval,refpart);
259 element.map2(tau4,particle,zeval,refpart);
260 element.map1(tau3,particle,zeval,refpart);
261 element.map2(tau2,particle,zeval,refpart);
262 element.map1(tau1,particle,zeval,refpart);
290 template <
typename T_Real,
typename T_Element>
298 T_Element
const & element
323 for (
int j=0; j < nsteps; ++j)
325 element.map1(tau1,particle,zeval,refpart);
326 element.map2(tau2,particle,zeval,refpart);
327 element.map1(tau3,particle,zeval,refpart);
328 element.map2(tau4,particle,zeval,refpart);
329 element.map1(tau5,particle,zeval,refpart);
330 element.map2(tau6,particle,zeval,refpart);
331 element.map1(tau7,particle,zeval,refpart);
332 element.map2(tau8,particle,zeval,refpart);
333 element.map1(tau7,particle,zeval,refpart);
334 element.map2(tau6,particle,zeval,refpart);
335 element.map1(tau5,particle,zeval,refpart);
336 element.map2(tau4,particle,zeval,refpart);
337 element.map1(tau3,particle,zeval,refpart);
338 element.map2(tau2,particle,zeval,refpart);
339 element.map1(tau1,particle,zeval,refpart);
359 template <
typename T_Real,
typename T_Element>
367 T_Element
const & element
378 element.map1(tau1,particle,zeval,refpart);
379 element.map2(tau2,particle,zeval,refpart);
380 element.map3(tau3,particle,particle_spin,zeval,refpart);
381 element.map2(tau2,particle,zeval,refpart);
382 element.map1(tau1,particle,zeval,refpart);
402 template <
typename T_Real,
typename T_Element>
410 T_Element
const & element
446 template <
typename T_Real,
typename T_Element>
454 T_Element
const & element
491 template <
typename T_Real,
typename T_Element>
501 T_Element
const & element
513 for(
int j=0; j < nsteps; ++j)
515 if (int_order == 2) {
517 }
else if (int_order == 4) {
519 }
else if (int_order == 6) {
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
amrex_particle_real ParticleReal
SmallMatrix< T, N, 1, Order::F, StartIndex > SmallVector
Definition Integrators.H:21
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp2_integrate_particle(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:182
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp4_integrate(RefPart &refpart, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, T_Element const &element)
Definition Integrators.H:131
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp4_integrate_particle(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:231
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp_integrate_particle_spin(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::SmallVector< T_Real, 3, 1 > &particle_spin, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, int int_order, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:493
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp2_integrate_particle_spin_step(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::SmallVector< T_Real, 3, 1 > &particle_spin, amrex::ParticleReal const tau, amrex::ParticleReal &zeval, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:361
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp2_integrate(RefPart &refpart, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, T_Element const &element)
Definition Integrators.H:39
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp2_integrate_split3(RefPart &refpart, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, T_Element const &element)
Definition Integrators.H:82
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp6_integrate_particle_spin_step(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::SmallVector< T_Real, 3, 1 > &particle_spin, amrex::ParticleReal const tau, amrex::ParticleReal &zeval, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:448
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp4_integrate_particle_spin_step(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::SmallVector< T_Real, 3, 1 > &particle_spin, amrex::ParticleReal const tau, amrex::ParticleReal &zeval, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:404
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void symp6_integrate_particle(amrex::SmallVector< T_Real, 6, 1 > &particle, amrex::ParticleReal const zin, amrex::ParticleReal const zout, int const nsteps, RefPart const &refpart, T_Element const &element)
Definition Integrators.H:292
Definition ReferenceParticle.H:33