ImpactX
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
impactx::elements::Alignment Struct Reference

#include <alignment.H>

Inheritance diagram for impactx::elements::Alignment:
impactx::Aperture impactx::Buncher impactx::CFbend impactx::ChrAcc impactx::ChrDrift impactx::ChrPlasmaLens impactx::ChrQuad impactx::ConstF impactx::DipEdge impactx::Drift impactx::ExactDrift impactx::ExactSbend impactx::Kicker impactx::Multipole impactx::NonlinearLens impactx::Quad impactx::RFCavity impactx::Sbend impactx::ShortRF impactx::SoftQuadrupole impactx::SoftSolenoid impactx::Sol impactx::ThinDipole

Public Member Functions

 Alignment (amrex::ParticleReal dx, amrex::ParticleReal dy, amrex::ParticleReal rotation_degree)
 
 Alignment ()=default
 
 Alignment (Alignment const &)=default
 
Alignmentoperator= (Alignment const &)=default
 
 Alignment (Alignment &&)=default
 
Alignmentoperator= (Alignment &&rhs)=default
 
 ~Alignment ()=default
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void shift_in (amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void shift_out (amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal dx () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal dy () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal rotation () const
 

Public Attributes

amrex::ParticleReal m_dx = 0
 
amrex::ParticleReal m_dy = 0
 horizontal translation error [m] More...
 
amrex::ParticleReal m_rotation = 0
 vertical translation error [m] More...
 

Static Public Attributes

static constexpr amrex::ParticleReal degree2rad = ablastr::constant::math::pi / 180.0
 

Detailed Description

This is a helper class for lattice elements with horizontal/vertical alignment errors

Constructor & Destructor Documentation

◆ Alignment() [1/4]

impactx::elements::Alignment::Alignment ( amrex::ParticleReal  dx,
amrex::ParticleReal  dy,
amrex::ParticleReal  rotation_degree 
)
inline

A finite-length element

Parameters
dxhorizontal translation error in m
dyvertical translation error in m
rotation_degreerotation error in the transverse plane [degrees]

◆ Alignment() [2/4]

impactx::elements::Alignment::Alignment ( )
default

◆ Alignment() [3/4]

impactx::elements::Alignment::Alignment ( Alignment const &  )
default

◆ Alignment() [4/4]

impactx::elements::Alignment::Alignment ( Alignment &&  )
default

◆ ~Alignment()

impactx::elements::Alignment::~Alignment ( )
default

Member Function Documentation

◆ dx()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::elements::Alignment::dx ( ) const
inline

Horizontal translation error

Returns
horizontal translation error in m

◆ dy()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::elements::Alignment::dy ( ) const
inline

Vertical translation error

Returns
vertical translation error in m

◆ operator=() [1/2]

Alignment& impactx::elements::Alignment::operator= ( Alignment &&  rhs)
default

◆ operator=() [2/2]

Alignment& impactx::elements::Alignment::operator= ( Alignment const &  )
default

◆ rotation()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::elements::Alignment::rotation ( ) const
inline

rotation error in the transverse plane

Returns
rotation error in the transverse plane [degrees]

◆ shift_in()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::elements::Alignment::shift_in ( amrex::ParticleReal &AMREX_RESTRICT  x,
amrex::ParticleReal &AMREX_RESTRICT  y,
amrex::ParticleReal &AMREX_RESTRICT  px,
amrex::ParticleReal &AMREX_RESTRICT  py 
) const
inline

Shift the particle into the alignment error frame

Parameters
[in,out]xhorizontal position relative to reference particle
[in,out]yvertical position relative to reference particle
[in,out]pxhorizontal momentum relative to reference particle
[in,out]pyvertical momentum relative to reference particle

◆ shift_out()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::elements::Alignment::shift_out ( amrex::ParticleReal &AMREX_RESTRICT  x,
amrex::ParticleReal &AMREX_RESTRICT  y,
amrex::ParticleReal &AMREX_RESTRICT  px,
amrex::ParticleReal &AMREX_RESTRICT  py 
) const
inline

Shift the particle out of the alignment error frame

Parameters
[in,out]xhorizontal position relative to reference particle
[in,out]yvertical position relative to reference particle
[in,out]pxhorizontal momentum relative to reference particle
[in,out]pyvertical momentum relative to reference particle

Member Data Documentation

◆ degree2rad

constexpr amrex::ParticleReal impactx::elements::Alignment::degree2rad = ablastr::constant::math::pi / 180.0
staticconstexpr

◆ m_dx

amrex::ParticleReal impactx::elements::Alignment::m_dx = 0

◆ m_dy

amrex::ParticleReal impactx::elements::Alignment::m_dy = 0

horizontal translation error [m]

◆ m_rotation

amrex::ParticleReal impactx::elements::Alignment::m_rotation = 0

vertical translation error [m]


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