WarpX
Public Member Functions | Private Attributes | List of all members
QuantumSynchrotronPhotonEmission Class Reference

#include <QuantumSyncEngineWrapper.H>

Public Member Functions

 QuantumSynchrotronPhotonEmission ()=default
 
 QuantumSynchrotronPhotonEmission (const QS_phot_em_table_view table_view)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE bool operator() (amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz, const amrex::ParticleReal ex, const amrex::ParticleReal ey, const amrex::ParticleReal ez, const amrex::ParticleReal bx, const amrex::ParticleReal by, const amrex::ParticleReal bz, amrex::ParticleReal &g_ux, amrex::ParticleReal &g_uy, amrex::ParticleReal &g_uz, amrex::RandomEngine const &engine) const noexcept
 

Private Attributes

QS_phot_em_table_view m_table_view
 

Detailed Description

Functor to generate a photon via the Quantum Synchrotron process and to update momentum accordingly

Constructor & Destructor Documentation

◆ QuantumSynchrotronPhotonEmission() [1/2]

QuantumSynchrotronPhotonEmission::QuantumSynchrotronPhotonEmission ( )
default

Default constructor: it leaves the functor in a non-initialized state.

◆ QuantumSynchrotronPhotonEmission() [2/2]

QuantumSynchrotronPhotonEmission::QuantumSynchrotronPhotonEmission ( const QS_phot_em_table_view  table_view)
inline

Constructor acquires pointers to control parameters and lookup tables data. lookup_table uses non-owning vectors under the hood. So no new data allocations should be triggered on GPU

Parameters
[in]table_viewa view of a QS_phot_em_table lookup table

Member Function Documentation

◆ operator()()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE bool QuantumSynchrotronPhotonEmission::operator() ( amrex::ParticleReal &  ux,
amrex::ParticleReal &  uy,
amrex::ParticleReal &  uz,
const amrex::ParticleReal  ex,
const amrex::ParticleReal  ey,
const amrex::ParticleReal  ez,
const amrex::ParticleReal  bx,
const amrex::ParticleReal  by,
const amrex::ParticleReal  bz,
amrex::ParticleReal &  g_ux,
amrex::ParticleReal &  g_uy,
amrex::ParticleReal &  g_uz,
amrex::RandomEngine const &  engine 
) const
inlinenoexcept

Generates photons according to Quantum Synchrotron process. It can be used on GPU.

Parameters
[in,out]ux,uy,uzgamma*v components of the lepton. They are modified (SI units)
[in]ex,ey,ezelectric field components (SI units)
[in]bx,by,bzmagnetic field components (SI units)
[out]g_ux,g_uy,g_uzgamma*v components of the generated photon (SI units)
[in]enginerandom number generator engine
Returns
a flag which is 1 if chi_photon was out of table

Member Data Documentation

◆ m_table_view

QS_phot_em_table_view QuantumSynchrotronPhotonEmission::m_table_view
private

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