#include <ExactSbend.H>
|
| ExactSbend (amrex::ParticleReal const ds, amrex::ParticleReal const phi, amrex::ParticleReal const B, int const nslice) |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (PType &AMREX_RESTRICT p, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, RefPart const &refpart) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (RefPart &AMREX_RESTRICT refpart) const |
|
void | operator() (ImpactXParticleContainer &pc, int step) |
|
void | operator() (ImpactXParticleContainer::iterator &pti, RefPart &AMREX_RESTRICT ref_part) |
|
| Thick (amrex::ParticleReal const ds, int const nslice) |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int | nslice () const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal | ds () const |
|
void | finalize () |
|
|
amrex::ParticleReal | m_phi |
|
amrex::ParticleReal | m_B |
| bend angle in radians More...
|
|
◆ PType
◆ ExactSbend()
impactx::ExactSbend::ExactSbend |
( |
amrex::ParticleReal const |
ds, |
|
|
amrex::ParticleReal const |
phi, |
|
|
amrex::ParticleReal const |
B, |
|
|
int const |
nslice |
|
) |
| |
|
inline |
The body of an ideal sector bend, using the exact nonlinear transfer map. The map corresponds to the map described in: D. L. Bruhwiler et al, in Proc. of EPAC 98, pp. 1171-1173 (1998).
In the ultrarelativistic limit, this is equivalent to the map described in: E. Forest et al, Part. Accel. 45, pp. 65-94 (1994).
The model consists of a uniform bending field B_y with a hard edge. Pole faces are normal to the entry and exit velocity of the reference particle.
- Parameters
-
ds | Segment length in m. |
phi | Segment bend angle in degrees. |
B | Magnetic field strength in T. When B = 0 (default), the reference bending radius is defined by r0 = length / (angle in rad), corresponding to a magnetic field of B = rigidity / r0; otherwise the reference bending radius is defined by r0 = rigidity / B. |
nslice | number of slices used for the application of space charge |
◆ operator()() [1/2]
This is an ExactSbend functor, so that a variable of this type can be used like an ExactSbend function.
- Parameters
-
p | Particle AoS data for positions and cpu/id |
px | particle momentum in x |
py | particle momentum in y |
pt | particle momentum in t |
refpart | reference particle |
◆ operator()() [2/2]
This pushes the reference particle.
- Parameters
-
[in,out] | refpart | reference particle |
◆ degree2rad
◆ m_B
amrex::ParticleReal impactx::ExactSbend::m_B |
|
private |
◆ m_phi
amrex::ParticleReal impactx::ExactSbend::m_phi |
|
private |
◆ name
constexpr auto impactx::ExactSbend::name = "ExactSbend" |
|
staticconstexpr |
The documentation for this struct was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/23.12/src/particles/elements/ExactSbend.H