|
ImpactX
|
Namespaces | |
| namespace | detail |
Classes | |
| struct | Alignment |
| struct | BeamOptic |
| struct | HostOnly |
| struct | IncludesCollectiveEffects |
| struct | LinearTransport |
| struct | LinearTransport< T_Element, false > |
| struct | Named |
| struct | NoFinalize |
| struct | ParticlePush |
| struct | PipeAperture |
| struct | SpinTransport |
| struct | SynchrotronRadiation |
| struct | Thick |
| struct | Thin |
Variables | |
| template<typename T> | |
| constexpr bool | is_host_only_v = std::is_base_of_v<HostOnly, std::remove_cvref_t<T>> |
| template<typename T_Element> | |
| constexpr bool | is_thick_v = std::is_base_of_v<Thick, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | is_thin_v = std::is_base_of_v<Thin, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | is_named_v = std::is_base_of_v<Named, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | has_alignment_v = std::is_base_of_v<Alignment, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | has_pipe_aperture_v = std::is_base_of_v<PipeAperture, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | has_spin_transport_v = std::is_base_of_v<SpinTransport, std::decay_t<T_Element>> |
| template<typename T_Element> | |
| constexpr bool | has_synchrotron_radiation_v |
| template<typename T_Element> | |
| constexpr bool | has_includes_collective_effects_flag_v |
| template<typename T_Element> | |
| constexpr bool | has_settable_ds_v |
| template<typename T_Element> | |
| constexpr bool | has_settable_nslice_v |
| template<typename T_Element> | |
| constexpr bool | can_slice_v = is_thick_v<T_Element> |
|
inlineconstexpr |
Can this element be subdivided by overriding its slice count?
True exactly for the elements that derive their per-push transport length from their own nslice() at push time, i.e. everything deriving from
This is deliberately narrower than
|
inlineconstexpr |
Does this element support alignment errors (
|
inlineconstexpr |
Does this element carry the includes_collective_effects flag (
|
inlineconstexpr |
Does this element support a transverse beam pipe aperture (
|
inlineconstexpr |
Can this element's segment length be set?
True for all finite-length elements: everything deriving from
The !is_thin_v term is load-bearing and not redundant with the member detection: ThinDipole is a zero-length element (
|
inlineconstexpr |
Can this element's slice count be set?
True for everything deriving from
|
inlineconstexpr |
Does this element support spin transport (
|
inlineconstexpr |
Does this element emit synchrotron radiation (
|
inlineconstexpr |
True if T carries host-only state
|
inlineconstexpr |
Does this element carry a user-settable name (
|
inlineconstexpr |
Does this element have a finite length (