ImpactX
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
impactx::ThinDipole Struct Reference

#include <ThinDipole.H>

Inheritance diagram for impactx::ThinDipole:
impactx::elements::BeamOptic< ThinDipole > impactx::elements::Thin impactx::elements::NoFinalize

Public Types

using PType = ImpactXParticleContainer::ParticleType
 

Public Member Functions

 ThinDipole (amrex::ParticleReal const theta, amrex::ParticleReal const rc)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (PType &AMREX_RESTRICT p, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, RefPart const &refpart) const
 
- Public Member Functions inherited from impactx::elements::BeamOptic< ThinDipole >
void operator() (ImpactXParticleContainer &pc, int step)
 
void operator() (ImpactXParticleContainer::iterator &pti, RefPart &AMREX_RESTRICT ref_part)
 
- Public Member Functions inherited from impactx::elements::Thin
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() ([[maybe_unused]] RefPart &AMREX_RESTRICT refpart) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int nslice () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal ds () const
 
- Public Member Functions inherited from impactx::elements::NoFinalize
void finalize ()
 

Static Public Attributes

static constexpr auto name = "ThinDipole"
 
static constexpr amrex::ParticleReal degree2rad = ablastr::constant::math::pi / 180.0
 

Private Attributes

amrex::ParticleReal m_theta
 
amrex::ParticleReal m_rc
 dipole bending angle (rad) More...
 

Member Typedef Documentation

◆ PType

Constructor & Destructor Documentation

◆ ThinDipole()

impactx::ThinDipole::ThinDipole ( amrex::ParticleReal const  theta,
amrex::ParticleReal const  rc 
)
inline

A general thin-kick dipole element with chromatic effects

This model is equivalent to the model described in Section 3.1 of G. Ripken, F. Schmidt, "A Symplectic Six-Dimensional Thin-Lens Formalism for Tracking," CERN/SL/95-12 (AP), 1995. It is intended to replicate the thin-lens dipole model in MAD-X.

Parameters
theta- the total bending angle (degrees)
rc- the curvature radius (m)

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::ThinDipole::operator() ( PType &AMREX_RESTRICT  p,
amrex::ParticleReal &AMREX_RESTRICT  px,
amrex::ParticleReal &AMREX_RESTRICT  py,
amrex::ParticleReal &AMREX_RESTRICT  pt,
RefPart const &  refpart 
) const
inline

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

Parameters
pParticle AoS data for positions and cpu/id
pxparticle momentum in x
pyparticle momentum in y
ptparticle momentum in t
refpartreference particle

Member Data Documentation

◆ degree2rad

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

◆ m_rc

amrex::ParticleReal impactx::ThinDipole::m_rc
private

dipole bending angle (rad)

◆ m_theta

amrex::ParticleReal impactx::ThinDipole::m_theta
private

◆ name

constexpr auto impactx::ThinDipole::name = "ThinDipole"
staticconstexpr

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