ImpactX
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
impactx::Aperture Struct Reference

#include <Aperture.H>

Inheritance diagram for impactx::Aperture:
impactx::elements::BeamOptic< Aperture > impactx::elements::Thin impactx::elements::NoFinalize

Public Types

enum  Shape { rectangular , elliptical }
 
using PType = ImpactXParticleContainer::ParticleType
 

Public Member Functions

 Aperture (amrex::ParticleReal xmax, amrex::ParticleReal ymax, Shape shape)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (PType &AMREX_RESTRICT p, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT px, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT py, [[maybe_unused]] amrex::ParticleReal &AMREX_RESTRICT pt, [[maybe_unused]] RefPart const &refpart) const
 
- Public Member Functions inherited from impactx::elements::BeamOptic< Aperture >
void operator() (ImpactXParticleContainer &pc, int step)
 
void operator() (ImpactXParticleContainer::iterator &pti, RefPart &AMREX_RESTRICT ref_part)
 
- Public Member Functions inherited from impactx::elements::Thin
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() ([[maybe_unused]] RefPart &AMREX_RESTRICT refpart) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int nslice () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal ds () const
 
- Public Member Functions inherited from impactx::elements::NoFinalize
void finalize ()
 

Static Public Attributes

static constexpr auto name = "Aperture"
 

Private Attributes

Shape m_shape
 
amrex::ParticleReal m_xmax
 aperture type (rectangular, elliptical) More...
 
amrex::ParticleReal m_ymax
 maximum horizontal coordinate More...
 

Member Typedef Documentation

◆ PType

Member Enumeration Documentation

◆ Shape

Enumerator
rectangular 
elliptical 

Constructor & Destructor Documentation

◆ Aperture()

impactx::Aperture::Aperture ( amrex::ParticleReal  xmax,
amrex::ParticleReal  ymax,
Shape  shape 
)
inline

A thin collimator element that applies a transverse aperture boundary. Particles outside the boundary are considered lost.

Parameters
shapeaperture shape
xmaxmaximum value of horizontal coordinate (m)
ymaxmaximum value of vertical coordinate (m)

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::Aperture::operator() ( PType &AMREX_RESTRICT  p,
[[maybe_unused] ] amrex::ParticleReal &AMREX_RESTRICT  px,
[[maybe_unused] ] amrex::ParticleReal &AMREX_RESTRICT  py,
[[maybe_unused] ] amrex::ParticleReal &AMREX_RESTRICT  pt,
[[maybe_unused] ] RefPart const &  refpart 
) const
inline

This is an aperture functor, so that a variable of this type can be used like an aperture function.

Parameters
pParticle AoS data for positions and cpu/id
pxparticle momentum in x
pyparticle momentum in y
ptparticle momentum in t
refpartreference particle (unused)

Member Data Documentation

◆ m_shape

Shape impactx::Aperture::m_shape
private

◆ m_xmax

amrex::ParticleReal impactx::Aperture::m_xmax
private

aperture type (rectangular, elliptical)

◆ m_ymax

amrex::ParticleReal impactx::Aperture::m_ymax
private

maximum horizontal coordinate

◆ name

constexpr auto impactx::Aperture::name = "Aperture"
staticconstexpr

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