ImpactX
Public Member Functions | Private Attributes | List of all members
impactx::distribution::KVdist Struct Reference

#include <KVdist.H>

Public Member Functions

 KVdist (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)
 
void initialize ([[maybe_unused]] amrex::ParticleReal bunch_charge, [[maybe_unused]] 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
 

Private 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 More...
 
amrex::ParticleReal m_lambdaPy
 
amrex::ParticleReal m_lambdaPt
 
amrex::ParticleReal m_muxpx
 related momentum axis intercepts of the phase space ellipse More...
 
amrex::ParticleReal m_muypy
 
amrex::ParticleReal m_mutpt
 

Constructor & Destructor Documentation

◆ KVdist()

impactx::distribution::KVdist::KVdist ( 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 
)
inline

A K-V distribution transversely + a uniform distribution in t + a Gaussian distribution in pt

Return sampling from a K-V + uniform distribution.

Parameters
lambdax,lambday,lambdatfor zero correlation, these are the related RMS sizes (in meters)
lambdapx,lambdapy,lambdaptRMS momentum
muxpx,muypy,mutptcorrelation length-momentum

Member Function Documentation

◆ finalize()

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

Close and deallocate all data and handles.

Nothing to do here.

◆ initialize()

void impactx::distribution::KVdist::initialize ( [[maybe_unused] ] amrex::ParticleReal  bunch_charge,
[[maybe_unused] ] 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::KVdist::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_lambdaPt

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaPt
private

◆ m_lambdaPx

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaPx
private

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

◆ m_lambdaPy

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaPy
private

◆ m_lambdaT

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaT
private

◆ m_lambdaX

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaX
private

◆ m_lambdaY

amrex::ParticleReal impactx::distribution::KVdist::m_lambdaY
private

◆ m_mutpt

amrex::ParticleReal impactx::distribution::KVdist::m_mutpt
private

◆ m_muxpx

amrex::ParticleReal impactx::distribution::KVdist::m_muxpx
private

related momentum axis intercepts of the phase space ellipse

◆ m_muypy

amrex::ParticleReal impactx::distribution::KVdist::m_muypy
private

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