ImpactX
|
Namespaces | |
data | |
detail | |
diagnostics | |
distribution | |
elements | |
initialization | |
integrators | |
madx_to_impactx | |
MADXParser | |
spacecharge | |
transformation | |
Classes | |
struct | Config |
struct | ConstF |
struct | DipEdge |
struct | Drift |
class | ImpactX |
class | ImpactXParticleContainer |
struct | IntSoA |
struct | Multipole |
struct | None |
struct | NonlinearLens |
class | ParConstIter |
class | ParIter |
struct | Programmable |
struct | Quad |
struct | Quad_field_data |
struct | RealAoS |
struct | RealSoA |
struct | RefPart |
struct | RF_field_data |
struct | RFCavity |
struct | Sbend |
struct | ShortRF |
struct | SoftQuadrupole |
struct | SoftSolenoid |
struct | Sol |
struct | Sol_field_data |
Typedefs | |
using | KnownElements = std::variant< None, ConstF, DipEdge, Drift, Multipole, NonlinearLens, diagnostics::BeamMonitor, Programmable, Quad, RFCavity, Sbend, ShortRF, Sol, SoftSolenoid, SoftQuadrupole > |
Functions | |
bool | do_omp_dynamic () |
void | Push (ImpactXParticleContainer &pc, KnownElements &element_variant, int step) |
template<typename T_Element > | |
void | push_all (ImpactXParticleContainer &pc, T_Element &element, [[maybe_unused]] int step, [[maybe_unused]] bool omp_parallel=true) |
Variables | |
pwd = __file__.rsplit(os.sep, 1)[0] + os.sep | |
paths = os.environ.get("PATH", "") | |
__version__ = cxx.__version__ | |
__doc__ = cxx.__doc__ | |
__license__ = cxx.__license__ | |
__author__ = cxx.__author__ | |
load_file | |
self | |
madx_file | |
nslice | |
using impactx::KnownElements = typedef std::variant< None, ConstF, DipEdge, Drift, Multipole, NonlinearLens, diagnostics::BeamMonitor, Programmable, Quad, RFCavity, Sbend, ShortRF, Sol, SoftSolenoid, SoftQuadrupole> |
bool impactx::do_omp_dynamic | ( | ) |
void impactx::Push | ( | ImpactXParticleContainer & | pc, |
KnownElements & | element_variant, | ||
int | step | ||
) |
Push particles
[in,out] | pc | container of the particles to push |
[in,out] | element_variant | a single element to push the particles through |
[in] | step | global step for diagnostics |
void impactx::push_all | ( | ImpactXParticleContainer & | pc, |
T_Element & | element, | ||
[[maybe_unused] ] int | step, | ||
[[maybe_unused] ] bool | omp_parallel = true |
||
) |
Push all particles in a particle container.
This element pushes first the reference particle, then all other particles. All particles are pushed independently with the same logic. Particles are relative to the reference particle.
[in,out] | pc | particle container to push |
[in,out] | element | the beamline element |
[in] | step | global step for diagnostics |
[in] | omp_parallel | allow threading via OpenMP for the particle iterator loop (note: if OMP backend is active) |
|
private |
|
private |
|
private |
|
private |
impactx.load_file |
impactx.madx_file |
impactx.nslice |
impactx.paths = os.environ.get("PATH", "") |
impactx.pwd = __file__.rsplit(os.sep, 1)[0] + os.sep |
impactx.self |