ImpactX
|
#include <NonlinearLensInvariants.H>
Classes | |
struct | Data |
Public Types | |
using | PType = ImpactXParticleContainer::ParticleType |
Public Member Functions | |
NonlinearLensInvariants (amrex::ParticleReal const alpha, amrex::ParticleReal const beta, amrex::ParticleReal const tn, amrex::ParticleReal const cn) | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Data | operator() (amrex::ParticleReal const x, amrex::ParticleReal const y, amrex::ParticleReal const px, amrex::ParticleReal const py) const |
Private Attributes | |
amrex::ParticleReal | m_alpha |
amrex::ParticleReal | m_beta |
Twiss alpha. More... | |
amrex::ParticleReal | m_tn |
Twiss beta (m) More... | |
amrex::ParticleReal | m_cn |
dimensionless strength of the nonlinear insert More... | |
Compute invariants within the nonlinear magnetic insert element
Invariants associated with a single short segment of the nonlinear magnetic insert described by V. Danilov and S. Nagaitsev, PRSTAB 13, 084002 (2010), Sect. V.A.
|
inline |
Initialize the parameters for the invariants based on the beam distribution and parameters of the nonlinear insert element
alpha | - Twiss alpha for the bare lattice |
beta | - Twiss beta for the bare lattice (m) |
tn | - dimensionless strength of the nonlinear insert |
cn | - scale parameter of the nonlinear insert (m^[1/2]) |
|
inline |
This is a nonlinear invariant functor, so that a variable of this type can be used like a nonlinear invariant function.
x | particle position in x |
y | particle position in y |
px | particle momentum in x |
py | particle momentum in y |
|
private |
|
private |
Twiss alpha.
|
private |
dimensionless strength of the nonlinear insert
|
private |
Twiss beta (m)