|
ImpactX
|
#include <alignment.H>
Public Member Functions | |
| 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 | |
| void | compute_constants (RefPart const &refpart) |
| template<typename T_Real> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | shift_in (T_Real &AMREX_RESTRICT x, T_Real &AMREX_RESTRICT y, T_Real &AMREX_RESTRICT px, T_Real &AMREX_RESTRICT py) const |
| template<typename T_Real> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | shift_out (T_Real &AMREX_RESTRICT x, T_Real &AMREX_RESTRICT y, T_Real &AMREX_RESTRICT px, T_Real &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] | |
| amrex::ParticleReal | m_rotation = 0 |
| vertical translation error [m] | |
Static Public Attributes | |
| static constexpr amrex::ParticleReal | degree2rad = ablastr::constant::math::pi / 180.0 |
Private Attributes | |
| amrex::ParticleReal | m_sin_rotation |
| rotation error in the transverse plane [rad] | |
| amrex::ParticleReal | m_cos_rotation |
| std::sin(m_rotation) | |
This is a helper class for lattice elements with horizontal/vertical alignment errors
|
inline |
A finite-length element
| dx | horizontal translation error in m |
| dy | vertical translation error in m |
| rotation_degree | rotation error in the transverse plane [degrees] |
|
default |
|
default |
|
default |
|
default |
|
inline |
Compute and cache the constants for the push.
In particular, used to pre-compute and cache variables that are independent of the individually tracked particle.
| refpart | reference particle |
|
inline |
Horizontal translation error
|
inline |
Vertical translation error
|
inline |
rotation error in the transverse plane
|
inline |
Shift the particle into the alignment error frame
The
| [in,out] | x | horizontal position relative to reference particle |
| [in,out] | y | vertical position relative to reference particle |
| [in,out] | px | horizontal momentum relative to reference particle |
| [in,out] | py | vertical momentum relative to reference particle |
|
inline |
Shift the particle out of the alignment error frame
The
| [in,out] | x | horizontal position relative to reference particle |
| [in,out] | y | vertical position relative to reference particle |
| [in,out] | px | horizontal momentum relative to reference particle |
| [in,out] | py | vertical momentum relative to reference particle |
|
staticconstexpr |
|
private |
std::sin(m_rotation)
| amrex::ParticleReal impactx::elements::mixin::Alignment::m_dx = 0 |
| amrex::ParticleReal impactx::elements::mixin::Alignment::m_dy = 0 |
horizontal translation error [m]
| amrex::ParticleReal impactx::elements::mixin::Alignment::m_rotation = 0 |
vertical translation error [m]
|
private |
rotation error in the transverse plane [rad]