#include <DipEdge.H>
|
| DipEdge (amrex::ParticleReal psi, amrex::ParticleReal rc, amrex::ParticleReal g, amrex::ParticleReal K2, amrex::ParticleReal dx=0, amrex::ParticleReal dy=0, amrex::ParticleReal rotation_degree=0) |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT t, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] uint64_t &AMREX_RESTRICT idcpu, [[maybe_unused]] RefPart const &refpart) const |
|
void | operator() (ImpactXParticleContainer &pc, int step) |
|
void | operator() (ImpactXParticleContainer::iterator &pti, RefPart &AMREX_RESTRICT ref_part) |
|
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 |
|
| Alignment (amrex::ParticleReal dx, amrex::ParticleReal dy, amrex::ParticleReal rotation_degree) |
|
| Alignment ()=default |
|
| Alignment (Alignment const &)=default |
|
Alignment & | operator= (Alignment const &)=default |
|
| Alignment (Alignment &&)=default |
|
Alignment & | operator= (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 |
|
void | finalize () |
|
|
amrex::ParticleReal | m_psi |
|
amrex::ParticleReal | m_rc |
| pole face angle in rad More...
|
|
amrex::ParticleReal | m_g |
| bend radius in m More...
|
|
amrex::ParticleReal | m_K2 |
| gap parameter in m More...
|
|
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...
|
|
◆ PType
◆ DipEdge()
impactx::DipEdge::DipEdge |
( |
amrex::ParticleReal |
psi, |
|
|
amrex::ParticleReal |
rc, |
|
|
amrex::ParticleReal |
g, |
|
|
amrex::ParticleReal |
K2, |
|
|
amrex::ParticleReal |
dx = 0 , |
|
|
amrex::ParticleReal |
dy = 0 , |
|
|
amrex::ParticleReal |
rotation_degree = 0 |
|
) |
| |
|
inline |
Edge focusing associated with bend entry or exit
This model assumes a first-order effect of nonzero gap. Here we use the linear fringe field map, given to first order in g/rc (gap / radius of curvature).
References: K. L. Brown, SLAC Report No. 75 (1982). K. Hwang and S. Y. Lee, PRAB 18, 122401 (2015).
- Parameters
-
psi | Pole face angle in rad. |
rc | Radius of curvature in m. |
g | Gap parameter in m. |
K2 | Fringe field integral (unitless). |
dx | horizontal translation error in m |
dy | vertical translation error in m |
rotation_degree | rotation error in the transverse plane [degrees] |
◆ operator()()
This is a dipedge functor, so that a variable of this type can be used like a dipedge function.
- Parameters
-
x | particle position in x |
y | particle position in y |
t | particle position in t |
px | particle momentum in x |
py | particle momentum in y |
pt | particle momentum in t (unchanged) |
idcpu | particle global index (unused) |
refpart | reference particle (unused) |
◆ m_g
amrex::ParticleReal impactx::DipEdge::m_g |
◆ m_K2
amrex::ParticleReal impactx::DipEdge::m_K2 |
◆ m_psi
amrex::ParticleReal impactx::DipEdge::m_psi |
◆ m_rc
amrex::ParticleReal impactx::DipEdge::m_rc |
◆ name
constexpr auto impactx::DipEdge::name = "DipEdge" |
|
staticconstexpr |
The documentation for this struct was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/particles/elements/DipEdge.H