ImpactX
Loading...
Searching...
No Matches
impactx::elements::mixin::PipeAperture Struct Reference

#include <pipeaperture.H>

Inheritance diagram for impactx::elements::mixin::PipeAperture:
impactx::elements::CFbend impactx::elements::ChrAcc impactx::elements::ChrDrift impactx::elements::ChrPlasmaLens impactx::elements::ChrQuad impactx::elements::ConstF impactx::elements::Drift impactx::elements::ExactCFbend impactx::elements::ExactDrift impactx::elements::ExactMultipole impactx::elements::ExactQuad impactx::elements::ExactSbend impactx::elements::Quad impactx::elements::RFCavity impactx::elements::Sbend impactx::elements::SoftQuadrupole impactx::elements::SoftSolenoid impactx::elements::Sol

Public Member Functions

 PipeAperture (amrex::ParticleReal aperture_x, amrex::ParticleReal aperture_y)
 
 PipeAperture ()=default
 
 PipeAperture (PipeAperture const &)=default
 
PipeApertureoperator= (PipeAperture const &)=default
 
 PipeAperture (PipeAperture &&)=default
 
PipeApertureoperator= (PipeAperture &&rhs)=default
 
 ~PipeAperture ()=default
 
template<typename T_Real = amrex::ParticleReal, typename T_IdCpu = uint64_t>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void apply_aperture (T_Real &AMREX_RESTRICT x, T_Real &AMREX_RESTRICT y, T_IdCpu &AMREX_RESTRICT idcpu) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal aperture_x () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal aperture_y () const
 

Public Attributes

amrex::ParticleReal m_inv_aperture_x = 0
 
amrex::ParticleReal m_inv_aperture_y = 0
 inverse of the horizontal aperture size [1/m]
 

Detailed Description

This is a helper class for applying a transverse aperture restriction to thick lattice elements

Constructor & Destructor Documentation

◆ PipeAperture() [1/4]

impactx::elements::mixin::PipeAperture::PipeAperture ( amrex::ParticleReal aperture_x,
amrex::ParticleReal aperture_y )
inline

A finite-length element with a constant elliptical aperture over s.

Parameters
aperture_xhorizontal half-aperture size [m]
aperture_yvertical half-aperture size [m]

◆ PipeAperture() [2/4]

impactx::elements::mixin::PipeAperture::PipeAperture ( )
default

◆ PipeAperture() [3/4]

impactx::elements::mixin::PipeAperture::PipeAperture ( PipeAperture const & )
default

◆ PipeAperture() [4/4]

impactx::elements::mixin::PipeAperture::PipeAperture ( PipeAperture && )
default

◆ ~PipeAperture()

impactx::elements::mixin::PipeAperture::~PipeAperture ( )
default

Member Function Documentation

◆ aperture_x()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::elements::mixin::PipeAperture::aperture_x ( ) const
inline

Horizontal aperture size

Returns
horizontal aperture size [m]

◆ aperture_y()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::elements::mixin::PipeAperture::aperture_y ( ) const
inline

Vertical aperture size

Returns
vertical aperture size [m]

◆ apply_aperture()

template<typename T_Real = amrex::ParticleReal, typename T_IdCpu = uint64_t>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::elements::mixin::PipeAperture::apply_aperture ( T_Real &AMREX_RESTRICT x,
T_Real &AMREX_RESTRICT y,
T_IdCpu &AMREX_RESTRICT idcpu ) const
inline

Apply the transverse aperture

Parameters
[in,out]xhorizontal position relative to reference particle
[in,out]yvertical position relative to reference particle
idcpuparticle global index

◆ operator=() [1/2]

PipeAperture & impactx::elements::mixin::PipeAperture::operator= ( PipeAperture && rhs)
default

◆ operator=() [2/2]

PipeAperture & impactx::elements::mixin::PipeAperture::operator= ( PipeAperture const & )
default

Member Data Documentation

◆ m_inv_aperture_x

amrex::ParticleReal impactx::elements::mixin::PipeAperture::m_inv_aperture_x = 0

◆ m_inv_aperture_y

amrex::ParticleReal impactx::elements::mixin::PipeAperture::m_inv_aperture_y = 0

inverse of the horizontal aperture size [1/m]


The documentation for this struct was generated from the following file: