ImpactX
Loading...
Searching...
No Matches
impactx::distribution::Waterbag Struct Reference

#include <Waterbag.H>

Public Member Functions

 Waterbag (amrex::ParticleReal lambdax, amrex::ParticleReal lambday, amrex::ParticleReal lambdat, amrex::ParticleReal lambdapx, amrex::ParticleReal lambdapy, amrex::ParticleReal lambdapt, amrex::ParticleReal muxpx=0.0, amrex::ParticleReal muypy=0.0, amrex::ParticleReal mutpt=0.0, amrex::ParticleReal meanx=0.0, amrex::ParticleReal meany=0.0, amrex::ParticleReal meant=0.0, amrex::ParticleReal meanpx=0.0, amrex::ParticleReal meanpy=0.0, amrex::ParticleReal meanpt=0.0, amrex::ParticleReal dispx=0.0, amrex::ParticleReal disppx=0.0, amrex::ParticleReal dispy=0.0, amrex::ParticleReal disppy=0.0)
 
void initialize (amrex::ParticleReal bunch_charge, RefPart const &ref)
 
void finalize ()
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (amrex::ParticleReal &AMREX_RESTRICT x, amrex::ParticleReal &AMREX_RESTRICT y, amrex::ParticleReal &AMREX_RESTRICT t, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, amrex::RandomEngine const &engine) const
 

Public Attributes

amrex::ParticleReal m_lambdaX
 
amrex::ParticleReal m_lambdaY
 
amrex::ParticleReal m_lambdaT
 
amrex::ParticleReal m_lambdaPx
 related position axis intercepts (length) of the phase space ellipse
 
amrex::ParticleReal m_lambdaPy
 
amrex::ParticleReal m_lambdaPt
 
amrex::ParticleReal m_muxpx
 related momentum axis intercepts of the phase space ellipse
 
amrex::ParticleReal m_muypy
 
amrex::ParticleReal m_mutpt
 
amrex::ParticleReal m_meanx
 correlation length-momentum
 
amrex::ParticleReal m_meany
 
amrex::ParticleReal m_meant
 
amrex::ParticleReal m_meanpx
 spatial coordinates of centroid offset
 
amrex::ParticleReal m_meanpy
 
amrex::ParticleReal m_meanpt
 
amrex::ParticleReal m_dispx
 momentum coordinates of centroid offset
 
amrex::ParticleReal m_disppx
 
amrex::ParticleReal m_dispy
 
amrex::ParticleReal m_disppy
 

Constructor & Destructor Documentation

◆ Waterbag()

impactx::distribution::Waterbag::Waterbag ( amrex::ParticleReal lambdax,
amrex::ParticleReal lambday,
amrex::ParticleReal lambdat,
amrex::ParticleReal lambdapx,
amrex::ParticleReal lambdapy,
amrex::ParticleReal lambdapt,
amrex::ParticleReal muxpx = 0.0,
amrex::ParticleReal muypy = 0.0,
amrex::ParticleReal mutpt = 0.0,
amrex::ParticleReal meanx = 0.0,
amrex::ParticleReal meany = 0.0,
amrex::ParticleReal meant = 0.0,
amrex::ParticleReal meanpx = 0.0,
amrex::ParticleReal meanpy = 0.0,
amrex::ParticleReal meanpt = 0.0,
amrex::ParticleReal dispx = 0.0,
amrex::ParticleReal disppx = 0.0,
amrex::ParticleReal dispy = 0.0,
amrex::ParticleReal disppy = 0.0 )
inline

A Waterbag distribution

Return sampling from a 6D Waterbag distribution.

Parameters
lambdax,lambday,lambdatfor zero correlation, these are the related RMS sizes (in meters)
lambdapx,lambdapy,lambdaptRMS momentum
muxpx,muypy,mutptcorrelation length-momentum
meanx,meany,meantoffsets of the mean (centroid) positions from those of the reference particle
meanpx,meanpy,meanptoffsets of the mean (centroid) momenta from those of the reference particle
dispx,disppx,dispy,disppydispersion and its derivative in horizontal and vertical directions

Member Function Documentation

◆ finalize()

void impactx::distribution::Waterbag::finalize ( )
inline

Close and deallocate all data and handles.

Nothing to do here.

◆ initialize()

void impactx::distribution::Waterbag::initialize ( amrex::ParticleReal bunch_charge,
RefPart const & ref )
inline

Initialize the distribution.

Nothing to do here.

Parameters
bunch_chargecharge of the beam in C
refthe reference particle

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::distribution::Waterbag::operator() ( amrex::ParticleReal &AMREX_RESTRICT x,
amrex::ParticleReal &AMREX_RESTRICT y,
amrex::ParticleReal &AMREX_RESTRICT t,
amrex::ParticleReal &AMREX_RESTRICT px,
amrex::ParticleReal &AMREX_RESTRICT py,
amrex::ParticleReal &AMREX_RESTRICT pt,
amrex::RandomEngine const & engine ) const
inline

Return 1 6D particle coordinate

Parameters
xparticle position in x
yparticle position in y
tparticle position in t
pxparticle momentum in x
pyparticle momentum in y
ptparticle momentum in t
enginea random number engine (with associated state)

Member Data Documentation

◆ m_disppx

amrex::ParticleReal impactx::distribution::Waterbag::m_disppx

◆ m_disppy

amrex::ParticleReal impactx::distribution::Waterbag::m_disppy

◆ m_dispx

amrex::ParticleReal impactx::distribution::Waterbag::m_dispx

momentum coordinates of centroid offset

◆ m_dispy

amrex::ParticleReal impactx::distribution::Waterbag::m_dispy

◆ m_lambdaPt

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaPt

◆ m_lambdaPx

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaPx

related position axis intercepts (length) of the phase space ellipse

◆ m_lambdaPy

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaPy

◆ m_lambdaT

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaT

◆ m_lambdaX

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaX

◆ m_lambdaY

amrex::ParticleReal impactx::distribution::Waterbag::m_lambdaY

◆ m_meanpt

amrex::ParticleReal impactx::distribution::Waterbag::m_meanpt

◆ m_meanpx

amrex::ParticleReal impactx::distribution::Waterbag::m_meanpx

spatial coordinates of centroid offset

◆ m_meanpy

amrex::ParticleReal impactx::distribution::Waterbag::m_meanpy

◆ m_meant

amrex::ParticleReal impactx::distribution::Waterbag::m_meant

◆ m_meanx

amrex::ParticleReal impactx::distribution::Waterbag::m_meanx

correlation length-momentum

◆ m_meany

amrex::ParticleReal impactx::distribution::Waterbag::m_meany

◆ m_mutpt

amrex::ParticleReal impactx::distribution::Waterbag::m_mutpt

◆ m_muxpx

amrex::ParticleReal impactx::distribution::Waterbag::m_muxpx

related momentum axis intercepts of the phase space ellipse

◆ m_muypy

amrex::ParticleReal impactx::distribution::Waterbag::m_muypy

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