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
78 using namespace amrex::literals;
91 Complex const zetaconj(xn, -yn);
92 Complex const re1(1.0_prt, 0.0_prt);
93 Complex const im1(0.0_prt, 1.0_prt);
101 Complex carcsin = im1*zeta + croot;
105 Complex Hpotential = zeta/croot;
106 Hpotential = Hpotential*carcsin;
109 Complex Ipotential = (zeta+zetaconj)/croot;
110 Ipotential = Ipotential*carcsin;
113 amrex::ParticleReal Hinv = Hpotential.
m_real;
114 amrex::ParticleReal Iinv = Ipotential.
m_real;
117 amrex::ParticleReal
const Jz = xn*pyn - yn*pxn;
118 Hinv = (
pow(xn,2) +
pow(yn,2) +
pow(pxn,2) +
pow(pyn,2))/2
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
T_ParticleType ParticleType
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
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > sqrt(const GpuComplex< T > &a_z) noexcept
Definition: DiagnosticOutput.cpp:26
Definition: NonlinearLensInvariants.H:38
amrex::ParticleReal I
second phase space function ("second invariant")
Definition: NonlinearLensInvariants.H:40
amrex::ParticleReal H
first phase space function (Hamiltonian)
Definition: NonlinearLensInvariants.H:39
Definition: NonlinearLensInvariants.H:30
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
ImpactXParticleContainer::ParticleType PType
Definition: NonlinearLensInvariants.H:31
amrex::ParticleReal m_beta
Twiss alpha.
Definition: NonlinearLensInvariants.H:128
NonlinearLensInvariants(amrex::ParticleReal const alpha, amrex::ParticleReal const beta, amrex::ParticleReal const tn, amrex::ParticleReal const cn)
Definition: NonlinearLensInvariants.H:52
amrex::ParticleReal m_tn
Twiss beta (m)
Definition: NonlinearLensInvariants.H:129
amrex::ParticleReal m_cn
dimensionless strength of the nonlinear insert
Definition: NonlinearLensInvariants.H:130
amrex::ParticleReal m_alpha
Definition: NonlinearLensInvariants.H:127