10#ifndef IMPACTX_INTEGRATORS_H_
11#define IMPACTX_INTEGRATORS_H_
34 template <
typename T_Element>
41 T_Element
const & element
55 for(
int j=0; j < nsteps; ++j)
57 element.map1(tau1,refpart,zeval);
58 element.map2(tau2,refpart,zeval);
59 element.map1(tau1,refpart,zeval);
77 template <
typename T_Element>
84 T_Element
const & element
99 for(
int j=0; j < nsteps; ++j)
101 element.map1(tau1,refpart,zeval);
102 element.map2(tau2,refpart,zeval);
103 element.map3(tau3,refpart,zeval);
104 element.map2(tau2,refpart,zeval);
105 element.map1(tau1,refpart,zeval);
126 template <
typename T_Element>
133 T_Element
const & element
150 for (
int j=0; j < nsteps; ++j)
152 element.map1(tau1,refpart,zeval);
153 element.map2(tau2,refpart,zeval);
154 element.map1(tau3,refpart,zeval);
155 element.map2(tau4,refpart,zeval);
156 element.map1(tau3,refpart,zeval);
157 element.map2(tau2,refpart,zeval);
158 element.map1(tau1,refpart,zeval);
176 template <
typename T_Real,
typename T_Element>
183 T_Element
const & element
197 for(
int j=0; j < nsteps; ++j)
199 element.map1(tau1,particle,zeval);
200 element.map2(tau2,particle,zeval);
201 element.map1(tau1,particle,zeval);
223 template <
typename T_Real,
typename T_Element>
230 T_Element
const & element
247 for (
int j=0; j < nsteps; ++j)
249 element.map1(tau1,particle,zeval);
250 element.map2(tau2,particle,zeval);
251 element.map1(tau3,particle,zeval);
252 element.map2(tau4,particle,zeval);
253 element.map1(tau3,particle,zeval);
254 element.map2(tau2,particle,zeval);
255 element.map1(tau1,particle,zeval);
282 template <
typename T_Real,
typename T_Element>
289 T_Element
const & element
314 for (
int j=0; j < nsteps; ++j)
316 element.map1(tau1,particle,zeval);
317 element.map2(tau2,particle,zeval);
318 element.map1(tau3,particle,zeval);
319 element.map2(tau4,particle,zeval);
320 element.map1(tau5,particle,zeval);
321 element.map2(tau6,particle,zeval);
322 element.map1(tau7,particle,zeval);
323 element.map2(tau8,particle,zeval);
324 element.map1(tau7,particle,zeval);
325 element.map2(tau6,particle,zeval);
326 element.map1(tau5,particle,zeval);
327 element.map2(tau4,particle,zeval);
328 element.map1(tau3,particle,zeval);
329 element.map2(tau2,particle,zeval);
330 element.map1(tau1,particle,zeval);
349 template <
typename T_Real,
typename T_Element>
356 T_Element
const & element
367 element.map1(tau1,particle,zeval);
368 element.map2(tau2,particle,zeval);
369 element.map3(tau3,particle,particle_spin,zeval);
370 element.map2(tau2,particle,zeval);
371 element.map1(tau1,particle,zeval);
390 template <
typename T_Real,
typename T_Element>
397 T_Element
const & element
432 template <
typename T_Real,
typename T_Element>
439 T_Element
const & element
475 template <
typename T_Real,
typename T_Element>
484 T_Element
const & element
496 for(
int j=0; j < nsteps; ++j)
498 if (int_order == 2) {
500 }
else if (int_order == 4) {
502 }
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:18
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, T_Element const &element)
Definition Integrators.H:392
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, T_Element const &element)
Definition Integrators.H:477
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, T_Element const &element)
Definition Integrators.H:351
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:128
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, T_Element const &element)
Definition Integrators.H:225
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:36
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:79
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, T_Element const &element)
Definition Integrators.H:284
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, T_Element const &element)
Definition Integrators.H:178
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, T_Element const &element)
Definition Integrators.H:434
Definition ReferenceParticle.H:33