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

#include <Gaussian.H>

Public Member Functions

 Gaussian (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

◆ Gaussian()

impactx::distribution::Gaussian::Gaussian ( 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 Gaussian distribution

Return sampling from a 6D Gaussian 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::Gaussian::finalize ( )
inline

Close and deallocate all data and handles.

Nothing to do here.

◆ initialize()

void impactx::distribution::Gaussian::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::Gaussian::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::Gaussian::m_mutpt
private

◆ m_muxpx

amrex::ParticleReal impactx::distribution::Gaussian::m_muxpx
private

RMS momentum.

◆ m_muypy

amrex::ParticleReal impactx::distribution::Gaussian::m_muypy
private

◆ m_sigmaPt

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaPt
private

◆ m_sigmaPx

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaPx
private

related RMS sizes (length)

◆ m_sigmaPy

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaPy
private

◆ m_sigmaT

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaT
private

◆ m_sigmaX

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaX
private

◆ m_sigmaY

amrex::ParticleReal impactx::distribution::Gaussian::m_sigmaY
private

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