10 #ifndef IMPACTX_DIPEDGE_H 11 #define IMPACTX_DIPEDGE_H 29 static constexpr
auto name =
"DipEdge";
46 DipEdge( amrex::ParticleReal
const psi, amrex::ParticleReal
const rc,
47 amrex::ParticleReal
const g, amrex::ParticleReal
const K2 )
53 using BeamOptic::operator();
66 PType& AMREX_RESTRICT p,
67 amrex::ParticleReal & AMREX_RESTRICT px,
68 amrex::ParticleReal & AMREX_RESTRICT py,
69 [[maybe_unused]] amrex::ParticleReal & AMREX_RESTRICT pt,
70 [[maybe_unused]]
RefPart const & refpart)
const {
72 using namespace amrex::literals;
75 amrex::ParticleReal
const x = p.pos(0);
76 amrex::ParticleReal
const y = p.pos(1);
81 amrex::ParticleReal
const R21 = tan(
m_psi)/
m_rc;
82 amrex::ParticleReal R43 = -R21;
83 amrex::ParticleReal vf = 0;
96 using Thin::operator();
107 #endif // IMPACTX_DIPEDGE_H
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(PType &AMREX_RESTRICT p, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] RefPart const &refpart) const
Definition: DipEdge.H:65
Definition: ImpactX.cpp:31
Definition: beamoptic.H:131
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
amrex::ParticleReal m_g
bend radius in m
Definition: DipEdge.H:101
static constexpr auto name
Definition: DipEdge.H:29
DipEdge(amrex::ParticleReal const psi, amrex::ParticleReal const rc, amrex::ParticleReal const g, amrex::ParticleReal const K2)
Definition: DipEdge.H:46
amrex::ParticleReal m_rc
pole face angle in rad
Definition: DipEdge.H:100
Particle< NStructReal, NStructInt > ParticleType
amrex::ParticleReal m_psi
Definition: DipEdge.H:99
Definition: ReferenceParticle.H:29
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE GpuComplex< T > pow(const GpuComplex< T > &a_z, const T &a_y) noexcept
amrex::ParticleReal m_K2
gap parameter in m
Definition: DipEdge.H:102