ImpactX
Namespaces | Classes | Typedefs | Functions | Variables
impactx Namespace Reference

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
 

Typedef Documentation

◆ KnownElements

Function Documentation

◆ do_omp_dynamic()

bool impactx::do_omp_dynamic ( )

◆ Push()

void impactx::Push ( ImpactXParticleContainer pc,
KnownElements element_variant,
int  step 
)

Push particles

Parameters
[in,out]pccontainer of the particles to push
[in,out]element_varianta single element to push the particles through
[in]stepglobal step for diagnostics

◆ push_all()

template<typename T_Element >
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.

Parameters
[in,out]pcparticle container to push
[in,out]elementthe beamline element
[in]stepglobal step for diagnostics
[in]omp_parallelallow threading via OpenMP for the particle iterator loop (note: if OMP backend is active)

Variable Documentation

◆ __author__

impactx.__author__ = cxx.__author__
private

◆ __doc__

impactx.__doc__ = cxx.__doc__
private

◆ __license__

impactx.__license__ = cxx.__license__
private

◆ __version__

impactx.__version__ = cxx.__version__
private

◆ load_file

impactx.load_file

◆ madx_file

impactx.madx_file

◆ nslice

impactx.nslice

◆ paths

impactx.paths = os.environ.get("PATH", "")

◆ pwd

impactx.pwd = __file__.rsplit(os.sep, 1)[0] + os.sep

◆ self

impactx.self