#include <RFCavity.H>
|
| RFCavity (amrex::ParticleReal const ds, amrex::ParticleReal const escale, amrex::ParticleReal const freq, amrex::ParticleReal const phase, int const mapsteps, 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, [[maybe_unused]] RefPart const &refpart) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (RefPart &AMREX_RESTRICT refpart) const |
|
std::tuple< amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal > AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE | RF_Efield (amrex::ParticleReal const zeval) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | map3 (amrex::ParticleReal const tau, RefPart &refpart, [[maybe_unused]] amrex::ParticleReal &zeval) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | map2 (amrex::ParticleReal const tau, RefPart &refpart, amrex::ParticleReal &zeval) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | map1 (amrex::ParticleReal const tau, RefPart &refpart, amrex::ParticleReal &zeval) const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int | nslice () const |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal | ds () const |
|
|
static constexpr auto | name = "RFCavity" |
|
◆ PType
◆ RFCavity()
impactx::RFCavity::RFCavity |
( |
amrex::ParticleReal const |
ds, |
|
|
amrex::ParticleReal const |
escale, |
|
|
amrex::ParticleReal const |
freq, |
|
|
amrex::ParticleReal const |
phase, |
|
|
int const |
mapsteps, |
|
|
int const |
nslice |
|
) |
| |
|
inline |
An RF cavity
- Parameters
-
ds | Segment length in m |
escale | Scaling factor for on-axis RF electric field in 1/m |
freq | RF frequency in Hz |
phase | RF driven phase in deg |
mapsteps | number of integration steps per slice used for map and reference particle push in applied fields |
nslice | number of slices used for the application of space charge |
◆ ds()
Return the segment length
- Returns
- value in meters
◆ map1()
This pushes the reference particle and the linear map matrix elements for an RF cavity through the symplectic map associated with H_1 in the Hamiltonian splitting H = H_1 + H_2 + H_3.
- Parameters
-
| tau | Map step size in m |
[in,out] | refpart | reference particle |
[in,out] | zeval | Longitudinal on-axis location in m |
◆ map2()
This pushes the reference particle and the linear map matrix elements for an RF cavity through the symplectic map associated with H_2 in the Hamiltonian splitting H = H_1 + H_2 + H_3.
- Parameters
-
| tau | Map step size in m |
[in,out] | refpart | reference particle |
[in,out] | zeval | Longitudinal on-axis location in m |
◆ map3()
This pushes the reference particle and the linear map matrix elements for an RF cavity through the symplectic map associated with H_3 in the Hamiltonian splitting H = H_1 + H_2 + H_3.
- Parameters
-
| tau | Map step size in m |
[in,out] | refpart | reference particle |
[in,out] | zeval | Longitudinal on-axis location in m |
◆ nslice()
Number of slices used for the application of space charge
- Returns
- positive integer
◆ operator()() [1/2]
This is an RF cavity functor, so that a variable of this type can be used like an RF cavity 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 |
◆ RF_Efield()
This evaluates the on-axis RF electric field at a fixed location z, together with certain required integrals and derivatives. The field returned is normalized to a peak value of 1.
- Parameters
-
zeval | Longitudinal on-axis location in m |
◆ m_ds
amrex::ParticleReal impactx::RFCavity::m_ds |
|
private |
◆ m_escale
amrex::ParticleReal impactx::RFCavity::m_escale |
|
private |
◆ m_freq
amrex::ParticleReal impactx::RFCavity::m_freq |
|
private |
scaling factor for RF electric field
◆ m_mapsteps
int impactx::RFCavity::m_mapsteps |
|
private |
◆ m_nslice
int impactx::RFCavity::m_nslice |
|
private |
number of map integration steps per slice
◆ m_phase
amrex::ParticleReal impactx::RFCavity::m_phase |
|
private |
◆ name
constexpr auto impactx::RFCavity::name = "RFCavity" |
|
static |
The documentation for this struct was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/23.01/src/particles/elements/RFCavity.H