|
ImpactX
|
#include <PRot.H>
Public Types | |
| using | PType = ImpactXParticleContainer::ParticleType |
Public Attributes | |
| amrex::ParticleReal | m_phi_in |
| amrex::ParticleReal | m_phi_out |
| normalized (max) RF voltage drop. | |
Static Public Attributes | |
| static constexpr auto | type = "PRot" |
| static constexpr amrex::ParticleReal | degree2rad = ablastr::constant::math::pi / 180.0 |
Static Public Attributes inherited from impactx::elements::mixin::LinearTransport< PRot > | |
| static constexpr bool | has_linear_transport |
Static Public Attributes inherited from amrex::simd::Vectorized< amrex::simd::native_simd_size_particlereal > | |
| static constexpr int | simd_width |
Private Attributes | |
| amrex::ParticleReal | m_inv_beta |
| RF wavenumber in 1/m. | |
| amrex::ParticleReal | m_sin_theta |
| amrex::ParticleReal | m_cos_theta |
| amrex::ParticleReal | m_sin_phi_in |
| amrex::ParticleReal | m_cos_phi_in |
|
inline |
An exact pole face rotation in the x-z plane, from a frame in which the reference orbit has angle phi_in with the z-axis, to a frame in which the reference orbit has angle phi_out with the z-axis. The net rotation angle is phi_out - phi_in.
| phi_in | Initial angle of reference trajectory w/r/t z (degrees) |
| phi_out | Final angle of reference trajectory w/r/t/ z (degrees) |
| name | a user defined and not necessarily unique name of the element |
|
inline |
Compute and cache the constants for the push.
In particular, used to pre-compute and cache variables that are independent of the individually tracked particle.
| refpart | reference particle |
|
inline |
This is a prot functor, so that a variable of this type can be used like a prot function.
The
| x | particle position in x |
| y | particle position in y |
| t | particle position in t |
| px | particle momentum in x |
| py | particle momentum in y |
| pt | particle momentum in t |
| idcpu | particle global index (unused) |
| refpart | reference particle (unused) |
|
inline |
Reverse the element (swap phi_in and phi_out)
|
inline |
This function returns the linear transport map.
Jacobian at the reference trajectory of the exact pole-face rotation implemented by
The (y, py) sub-block is the identity: pole-face rotation in the x-z plane does not mix the vertical plane at linear order.
Reference: MaryLie 3.0 Users' Manual, Sect. 6.5 ("Plane Rotation"); A. J. Dragt, Lie Methods for Nonlinear Dynamics with Applications to Accelerator Physics, v. Nov. 2020, Appendix V ("PROT without and in the Presence of a Magnetic Field").
Ideal behavior only: alignment and rotation errors are ignored; the linearization is at (x, y, t) = (0, 0, 0) and (px, py, pt) = (0, 0, 0).
| [in] | refpart | reference particle (used for beta) |
|
staticconstexpr |
|
private |
|
private |
|
private |
RF wavenumber in 1/m.
| amrex::ParticleReal impactx::elements::PRot::m_phi_in |
| amrex::ParticleReal impactx::elements::PRot::m_phi_out |
normalized (max) RF voltage drop.
|
private |
|
private |
|
staticconstexpr |