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

#include <KVdist.H>

Public Member Functions

 KVdist (amrex::ParticleReal sigx, amrex::ParticleReal sigy, amrex::ParticleReal sigt, amrex::ParticleReal sigpx, amrex::ParticleReal sigpy, amrex::ParticleReal sigpt, 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_sigmaX
 
amrex::ParticleReal m_sigmaY
 
amrex::ParticleReal m_sigmaT
 
amrex::ParticleReal m_sigmaPx
 related RMS sizes (length) More...
 
amrex::ParticleReal m_sigmaPy
 
amrex::ParticleReal m_sigmaPt
 
amrex::ParticleReal m_muxpx
 RMS momentum. More...
 
amrex::ParticleReal m_muypy
 
amrex::ParticleReal m_mutpt
 

Constructor & Destructor Documentation

◆ KVdist()

impactx::distribution::KVdist::KVdist ( amrex::ParticleReal  sigx,
amrex::ParticleReal  sigy,
amrex::ParticleReal  sigt,
amrex::ParticleReal  sigpx,
amrex::ParticleReal  sigpy,
amrex::ParticleReal  sigpt,
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
sigx,sigy,sigtfor zero correlation, these are the related RMS sizes (in meters)
sigpx,sigpy,sigptRMS 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_mutpt

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

◆ m_muxpx

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

RMS momentum.

◆ m_muypy

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

◆ m_sigmaPt

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaPt
private

◆ m_sigmaPx

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaPx
private

related RMS sizes (length)

◆ m_sigmaPy

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaPy
private

◆ m_sigmaT

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaT
private

◆ m_sigmaX

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaX
private

◆ m_sigmaY

amrex::ParticleReal impactx::distribution::KVdist::m_sigmaY
private

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