10 #ifndef IMPACTX_ELEMENTS_MIXIN_ALIGNMENT_H
11 #define IMPACTX_ELEMENTS_MIXIN_ALIGNMENT_H
37 amrex::ParticleReal
dx,
38 amrex::ParticleReal
dy,
39 amrex::ParticleReal rotation_degree
62 amrex::ParticleReal & AMREX_RESTRICT x,
63 amrex::ParticleReal & AMREX_RESTRICT y,
64 amrex::ParticleReal & AMREX_RESTRICT px,
65 amrex::ParticleReal & AMREX_RESTRICT py
71 amrex::ParticleReal
const xc =
x -
m_dx;
72 amrex::ParticleReal
const yc = y -
m_dy;
73 x = xc * cos_rotation + yc * sin_rotation;
74 y = -xc * sin_rotation + yc * cos_rotation;
77 amrex::ParticleReal
const pxc = px;
78 amrex::ParticleReal
const pyc = py;
79 px = pxc * cos_rotation + pyc * sin_rotation;
80 py = -pxc * sin_rotation + pyc * cos_rotation;
92 amrex::ParticleReal & AMREX_RESTRICT x,
93 amrex::ParticleReal & AMREX_RESTRICT y,
94 amrex::ParticleReal & AMREX_RESTRICT px,
95 amrex::ParticleReal & AMREX_RESTRICT py
101 amrex::ParticleReal
const xc =
x;
102 amrex::ParticleReal
const yc = y;
103 x = xc * cos_rotation - yc * sin_rotation;
104 y = xc * sin_rotation + yc * cos_rotation;
109 amrex::ParticleReal
const pxc = px;
110 amrex::ParticleReal
const pyc = py;
111 px = pxc * cos_rotation - pyc * sin_rotation;
112 py = pxc * sin_rotation + pyc * cos_rotation;
120 amrex::ParticleReal
dx ()
const
130 amrex::ParticleReal
dy ()
const
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
static constexpr amrex::Real pi
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE std::pair< double, double > sincos(double x)
Definition: alignment.H:23
Definition: alignment.H:27
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
Definition: alignment.H:91
Alignment(Alignment &&)=default
Alignment & operator=(Alignment const &)=default
amrex::ParticleReal m_dx
Definition: alignment.H:145
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal dx() const
Definition: alignment.H:120
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal rotation() const
Definition: alignment.H:140
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
Definition: alignment.H:61
Alignment(Alignment const &)=default
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal dy() const
Definition: alignment.H:130
static constexpr amrex::ParticleReal degree2rad
Definition: alignment.H:28
Alignment(amrex::ParticleReal dx, amrex::ParticleReal dy, amrex::ParticleReal rotation_degree)
Definition: alignment.H:36
amrex::ParticleReal m_rotation
vertical translation error [m]
Definition: alignment.H:147
amrex::ParticleReal m_dy
horizontal translation error [m]
Definition: alignment.H:146