|
| | SpinMap (Vector3 const &v, Map3x6 const &A, amrex::ParticleReal ds=0, amrex::ParticleReal dx=0, amrex::ParticleReal dy=0, amrex::ParticleReal rotation_degree=0, std::optional< std::string > name=std::nullopt) |
| |
| void | reverse () |
| |
| template<typename T_Real = amrex::ParticleReal, typename T_IdCpu = uint64_t> |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (T_Real &AMREX_RESTRICT x, T_Real &AMREX_RESTRICT y, T_Real &AMREX_RESTRICT t, T_Real &AMREX_RESTRICT px, T_Real &AMREX_RESTRICT py, T_Real &AMREX_RESTRICT pt, T_IdCpu &AMREX_RESTRICT idcpu, RefPart const &AMREX_RESTRICT refpart) const |
| |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (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 |
| |
| template<typename T_Real = amrex::ParticleReal, typename T_IdCpu = uint64_t> |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | spin_and_phasespace_push (T_Real &AMREX_RESTRICT x, T_Real &AMREX_RESTRICT y, T_Real &AMREX_RESTRICT t, T_Real &AMREX_RESTRICT px, T_Real &AMREX_RESTRICT py, T_Real &AMREX_RESTRICT pt, T_Real &AMREX_RESTRICT sx, T_Real &AMREX_RESTRICT sy, T_Real &AMREX_RESTRICT sz, T_IdCpu &AMREX_RESTRICT idcpu, RefPart const &AMREX_RESTRICT refpart) const |
| |
| AMREX_GPU_HOST AMREX_FORCE_INLINE Map6x6 | transport_map (RefPart const &AMREX_RESTRICT refpart) const |
| |
| AMREX_GPU_HOST void | set_name (std::string const &new_name) |
| |
| AMREX_GPU_HOST | Named (std::optional< std::string > name) |
| |
| AMREX_GPU_HOST_DEVICE | ~Named () |
| |
| AMREX_GPU_HOST | Named (Named const &other) |
| |
| AMREX_GPU_HOST Named & | operator= (Named const &other) |
| |
| AMREX_GPU_HOST_DEVICE | Named (Named &&other) noexcept |
| |
| AMREX_GPU_HOST_DEVICE Named & | operator= (Named &&other) noexcept |
| |
| AMREX_FORCE_INLINE std::string | name () const |
| |
| AMREX_FORCE_INLINE bool | has_name () const |
| |
| void | operator() (ImpactXParticleContainer &pc, int step, int period) |
| |
| void | operator() (ImpactXParticleContainer::iterator &pti, RefPart &AMREX_RESTRICT ref_part, bool spin) |
| |
| AMREX_GPU_HOST AMREX_FORCE_INLINE void | operator() (Map6x6 &AMREX_RESTRICT cm, RefPart const &AMREX_RESTRICT ref) 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 |
| |
| 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 |
| |
| template<typename T_Real = amrex::ParticleReal> |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | rotate_spin (T_Real const &AMREX_RESTRICT lambdax, T_Real const &AMREX_RESTRICT lambday, T_Real const &AMREX_RESTRICT lambdaz, T_Real &AMREX_RESTRICT sx, T_Real &AMREX_RESTRICT sy, T_Real &AMREX_RESTRICT sz) const |
| |
| template<typename T_Real = amrex::ParticleReal> |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | tbmt_precession_vector (T_Real const &AMREX_RESTRICT x, T_Real const &AMREX_RESTRICT ux, T_Real const &AMREX_RESTRICT uy, T_Real const &AMREX_RESTRICT uz, T_Real const &AMREX_RESTRICT gamma, amrex::ParticleReal const &AMREX_RESTRICT h, amrex::ParticleReal const &AMREX_RESTRICT gyro_anomaly, T_Real const &AMREX_RESTRICT Bx, T_Real const &AMREX_RESTRICT By, T_Real const &AMREX_RESTRICT Bz, T_Real const &AMREX_RESTRICT Ex, T_Real const &AMREX_RESTRICT Ey, T_Real const &AMREX_RESTRICT Ez, T_Real &AMREX_RESTRICT Omegax, T_Real &AMREX_RESTRICT Omegay, T_Real &AMREX_RESTRICT Omegaz) const |
| |
| void | finalize () |
| |
A thin element that applies a user-provided spin map M to the spin 3-vector (sx, sy, sz). The map M is an orthogonal transformation expressed in Lie-algebraic (axis-angle) form, whose Lie generators may depend linearly on the phase space (orbit) variables (x,px,y,py,t,pt).
- Parameters
-
| v | user-provided 3-vector describing spin rotation at the design point |
| A | user-provided 3x6 spin-orbit coupling matrix |
| ds | Segment length in m |
| dx | horizontal translation error in m |
| dy | vertical translation error in m |
| rotation_degree | rotation error in the transverse plane [degrees] |
| name | a user defined and not necessarily unique name of the element |