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

#include <PRot.H>

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

Public Types

using PType = ImpactXParticleContainer::ParticleType
 

Public Member Functions

 PRot (amrex::ParticleReal phi_in, amrex::ParticleReal phi_out)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, amrex::ParticleReal &AMREX_RESTRICT t, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] uint64_t &AMREX_RESTRICT idcpu, RefPart const &refpart) const
 
- Public Member Functions inherited from impactx::elements::BeamOptic< PRot >
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 ()
 

Public Attributes

amrex::ParticleReal m_phi_in
 
amrex::ParticleReal m_phi_out
 normalized (max) RF voltage drop. More...
 

Static Public Attributes

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

Member Typedef Documentation

◆ PType

Constructor & Destructor Documentation

◆ PRot()

impactx::PRot::PRot ( amrex::ParticleReal  phi_in,
amrex::ParticleReal  phi_out 
)
inline

An exact pole face rotation in the x-z plane, from a frame in which the reference orbit has angle phi_in with the z-axis, to a frame in which the reference orbit has angle phi_out with the z-axis. The net rotation angle is phi_out - phi_in.

Parameters
phi_inInitial angle of reference trajectory w/r/t z (degrees)
phi_outFinal angle of reference trajectory w/r/t/ z (degrees)

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::PRot::operator() ( amrex::ParticleReal &AMREX_RESTRICT  x,
amrex::ParticleReal &AMREX_RESTRICT  y,
amrex::ParticleReal &AMREX_RESTRICT  t,
amrex::ParticleReal &AMREX_RESTRICT  px,
amrex::ParticleReal &AMREX_RESTRICT  py,
amrex::ParticleReal &AMREX_RESTRICT  pt,
[[maybe_unused] ] uint64_t &AMREX_RESTRICT  idcpu,
RefPart const &  refpart 
) const
inline

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

Parameters
xparticle position in x
yparticle position in y
tparticle position in t
pxparticle momentum in x
pyparticle momentum in y
ptparticle momentum in t
idcpuparticle global index (unused)
refpartreference particle

Member Data Documentation

◆ degree2rad

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

◆ m_phi_in

amrex::ParticleReal impactx::PRot::m_phi_in

◆ m_phi_out

amrex::ParticleReal impactx::PRot::m_phi_out

normalized (max) RF voltage drop.

◆ name

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

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