ImpactX
|
Functions | |
template<typename T_Element > | |
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) |
template<typename T_Element > | |
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) |
template<typename T_Element > | |
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) |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::integrators::symp2_integrate | ( | RefPart & | refpart, |
amrex::ParticleReal const | zin, | ||
amrex::ParticleReal const | zout, | ||
int const | nsteps, | ||
T_Element const & | element | ||
) |
A second-order symplectic integrator based on a Hamiltonian splitting H = H_1 + H_2. This is a generalization of the second- order leapfrog algorithm. For a detailed overview:
E. Hairer et al, Geometric Numerical Integration: Structure- Preserving Algorithms for Ordinary Differential Equations, 2nd ed, Springer, Berlin, 2006.
refpart | Reference particle data |
zin | Initial value of independent variable (z-location) |
zout | Final value of independent variable (z-location) |
nsteps | Number of integration steps |
element | Element defining the two maps associated with H_1 and H_2 |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::integrators::symp2_integrate_split3 | ( | RefPart & | refpart, |
amrex::ParticleReal const | zin, | ||
amrex::ParticleReal const | zout, | ||
int const | nsteps, | ||
T_Element const & | element | ||
) |
A second-order symplectic integrator based on a Hamiltonian splitting H = H_1 + H_2 + H_3. This is the result of applying the two-terms splitting of symp2_integrate twice in succession. The form shown here appears, for example, in:
R. D. Ryne, Computational Methods in Accelerator Physics, USPAS lecture notes, 2009.
refpart | Reference particle data |
zin | Initial value of independent variable (z-location) |
zout | Final value of independent variable (z-location) |
nsteps | Number of integration steps |
element | Element defining the two maps associated with H_1 and H_2 |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::integrators::symp4_integrate | ( | RefPart & | refpart, |
amrex::ParticleReal const | zin, | ||
amrex::ParticleReal const | zout, | ||
int const | nsteps, | ||
T_Element const & | element | ||
) |
A fourth-order symplectic integrator based on a Hamiltonian splitting H = H_1 + H_2. This is the result of applying the two-terms splitting of symp2_integrate together with the method of Yoshida.
H. Yoshida, Phys. Lett. A 150, 292-268 (1990).
The form shown here appears, for example, in:
E. Forest and R. D. Ruth, Physica D 43, 105-117 (1990).
refpart | Reference particle data |
zin | Initial value of independent variable (z-location) |
zout | Final value of independent variable (z-location) |
nsteps | Number of integration steps |
element | Element defining the two maps associated with H_1 and H_2 |