10 #ifndef IMPACTX_INVARIANTS_H 11 #define IMPACTX_INVARIANTS_H 39 amrex::ParticleReal
H;
40 amrex::ParticleReal
I;
53 amrex::ParticleReal
const alpha,
54 amrex::ParticleReal
const beta,
55 amrex::ParticleReal
const tn,
56 amrex::ParticleReal
const cn )
71 amrex::ParticleReal
const x,
72 amrex::ParticleReal
const y,
73 amrex::ParticleReal
const px,
74 amrex::ParticleReal
const py )
const 77 using namespace amrex::literals;
100 Complex carcsin = im1*zeta + croot;
104 Complex Hpotential = zeta/croot;
105 Hpotential = Hpotential*carcsin;
108 Complex Ipotential = (zeta+zetaconj)/croot;
109 Ipotential = Ipotential*carcsin;
112 amrex::ParticleReal Hinv = Hpotential.m_real;
113 amrex::ParticleReal Iinv = Ipotential.m_real;
116 amrex::ParticleReal Jz = xn*pyn - yn*pxn;
117 Hinv = (
pow(xn,2) +
pow(yn,2) +
pow(pxn,2) +
pow(pyn,2))/2
135 #endif // IMPACTX_INVARIANTS_H amrex::ParticleReal m_cn
dimensionless strength of the nonlinear insert
Definition: NonlinearLensInvariants.H:129
Definition: NonlinearLensInvariants.H:29
amrex::ParticleReal I
second phase space function ("second invariant")
Definition: NonlinearLensInvariants.H:40
Definition: DiagnosticOutput.cpp:22
amrex::ParticleReal m_alpha
Definition: NonlinearLensInvariants.H:126
amrex::ParticleReal H
first phase space function (Hamiltonian)
Definition: NonlinearLensInvariants.H:39
#define AMREX_FORCE_INLINE
amrex::ParticleReal m_tn
Twiss beta (m)
Definition: NonlinearLensInvariants.H:128
#define AMREX_GPU_HOST_DEVICE
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
Definition: NonlinearLensInvariants.H:70
amrex::ParticleReal m_beta
Twiss alpha.
Definition: NonlinearLensInvariants.H:127
Particle< NStructReal, NStructInt > ParticleType
Definition: NonlinearLensInvariants.H:38
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > log(const GpuComplex< T > &a_z) noexcept
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > pow(const GpuComplex< T > &a_z, const T &a_y) noexcept
NonlinearLensInvariants(amrex::ParticleReal const alpha, amrex::ParticleReal const beta, amrex::ParticleReal const tn, amrex::ParticleReal const cn)
Definition: NonlinearLensInvariants.H:52
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > sqrt(const GpuComplex< T > &a_z) noexcept