ImpactX
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
impactx::diagnostics::NonlinearLensInvariants Struct Reference

#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...
 

Detailed Description

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.

Member Typedef Documentation

◆ PType

Constructor & Destructor Documentation

◆ NonlinearLensInvariants()

impactx::diagnostics::NonlinearLensInvariants::NonlinearLensInvariants ( amrex::ParticleReal const  alpha,
amrex::ParticleReal const  beta,
amrex::ParticleReal const  tn,
amrex::ParticleReal const  cn 
)
inline

Initialize the parameters for the invariants based on the beam distribution and parameters of the nonlinear insert element

Parameters
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])

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Data impactx::diagnostics::NonlinearLensInvariants::operator() ( amrex::ParticleReal const  x,
amrex::ParticleReal const  y,
amrex::ParticleReal const  px,
amrex::ParticleReal const  py 
) const
inline

This is a nonlinear invariant functor, so that a variable of this type can be used like a nonlinear invariant function.

Parameters
xparticle position in x
yparticle position in y
pxparticle momentum in x
pyparticle momentum in y

Member Data Documentation

◆ m_alpha

amrex::ParticleReal impactx::diagnostics::NonlinearLensInvariants::m_alpha
private

◆ m_beta

amrex::ParticleReal impactx::diagnostics::NonlinearLensInvariants::m_beta
private

Twiss alpha.

◆ m_cn

amrex::ParticleReal impactx::diagnostics::NonlinearLensInvariants::m_cn
private

dimensionless strength of the nonlinear insert

◆ m_tn

amrex::ParticleReal impactx::diagnostics::NonlinearLensInvariants::m_tn
private

Twiss beta (m)


The documentation for this struct was generated from the following file: